介绍
在当今的数字时代,WhatsApp 已不仅仅是一款消息应用程序;它是全球企业的关键沟通工具。 WhatsApp 拥有超过 20 亿活跃用户,其巨大的影响力和受欢迎程度使其成为企业与受众进行有效联系的不可或缺的平台。
了解这一点后,我们在本博客中的目标是提供有关利用 WhatsApp 通过其 API 发送消息的全面指南。这种做法是现代商业沟通策略的重要组成部分,涉及向众多客户提供重要更新、促销内容或其他相关信息。我们将学习如何在 python 中使用 Whatsapp API 发送消息。然后,我们将深入研究 WhatsApp 功能的复杂性,特别是其业务 API,它提供了有效处理消息传递的高级功能。
此外,我们将探索这些消息传递功能与工作流程自动化的集成。在效率和速度至关重要的商业环境中,自动执行消息发送等重复性任务可以显着提高生产力。 Nanonets Workflows 等工具在这方面发挥着至关重要的作用。它们使企业能够简化运营,减少体力劳动并更多地关注战略任务。
Whatsapp 商业平台
WhatsApp Business Platform 专为大中型企业设计,提供了一种与客户大规模互动的方式。它可以快速启动对话、发送有关护理或购买的通知、提供个性化服务以及通过客户首选的沟通渠道为客户提供支持。
该平台围绕三个关键 API 构建:
- 云端API:它由 Meta 托管,为企业与客户建立联系提供了一种简单且易于维护的方式。
- 本地 API:企业需要自己托管。
- 业务管理API:此 API 对于管理您的 WhatsApp Business 帐户和消息模板至关重要。
要与 WhatsApp 用户进行通信,企业必须使用云 API 或本地 API。云 API 由于其简单性和较低的维护要求而通常受到青睐。但是,无论您选择哪个 API,业务管理 API 都是管理您的帐户和模板的必备 API。
Whatsapp 云 API 简介
WhatsApp 的云 API 是 Meta 蓝图的一部分,允许企业与客户进行大规模沟通,而无需托管自己的服务器。该服务是 WhatsApp Business Platform 的云托管版本,可轻松扩展和实施。
概述
WhatsApp Business API 专为中型和大型企业设计,用于与客户进行自动和手动通信。它支持与各种后端系统(如 CRM 和营销平台)集成。企业可以在本地和云 API 选项之间进行选择,由于其简单性,通常建议使用后者。
默认吞吐量为每秒 80 条消息 (mps),可升级至 1,000 mps。
使用API
要发送消息,Python 中的 API 调用如下所示:
import requests url = 'https://graph.facebook.com/v18.0/FROM_PHONE_NUMBER_ID/messages' headers = { 'Authorization': 'ACCESS_TOKEN'
} data = { 'messaging_product': 'whatsapp', 'to': '1650XXXXXXX', 'text': {'body': 'hi'}
} response = requests.post(url, headers=headers, json=data) print(response.text)
入门
从云 API 开始:
- 单击“创建应用程序”。
- 在用例部分选择“其他”。
- 选择“商业”作为应用程序类型。
- 添加应用程序详细信息,然后单击“创建应用程序”。
- 向下滚动并点击 Whatsapp 卡上的“设置”。
- 如果您有元商业帐户 (MBA),系统会要求您在此过程中关联它。如果没有,系统将指导您创建一个。
- 链接您的 MBA 后,您将被引导至如下所示的仪表板。您现在可以开始测试。
所有这一切最终让您的应用程序能够 –
- 如果您还没有元商业帐户,请设置一个。
- 自动生成测试 WhatsApp Business 帐户,该帐户可免费发送消息,但有使用限制。
- 创建一个与您的 WhatsApp Business 帐户关联的测试企业电话号码,使您能够向最多五个不同的电话号码发送免费消息。
- 生成一系列预先批准的消息传递模板。
- 添加收件人号码
要发送测试消息,您需要添加有效的 WhatsApp 号码。
转到应用程序仪表板,导航至 WhatsApp > API 设置,然后在消息发送部分下查找“收件人”字段来管理您的电话号码列表。
您可以输入任何有效的 WhatsApp 号码来接收消息。该号码将通过 WhatsApp 获得确认码以进行验证。
验证后,收件人号码即可使用。按照此方法,您最多可以添加五个数字。
- 发送测试消息
要发送测试消息,请使用仪表板上预先批准的“hello_world”模板。
import requests url = "https://graph.facebook.com/v17.0/206324309221106/messages" headers = { 'Authorization': 'Bearer YOUR_TEMPORARY_ACCESS_TOKEN', 'Content-Type': 'application/json'
} data = { "messaging_product": "whatsapp", "to": "RECEPIENT_PHONE_NUMBER", "type": "template", "template": { "name": "hello_world", "language": { "code": "en_US" } }
} response = requests.post(url, headers=headers, json=data) print(response.text)
在 WhatsApp 下的 API 设置中:
- 确保您的测试公司号码位于“发件人”字段中。
- 确保在“收件人”字段中选择所需收件人的号码。如果添加的话,您可以向多个号码发送消息。
- 使用 API 面板发送消息,或者使用提供的 python 代码。
您将使用的命令表明您正在发送一条模板消息,指定“hello_world”模板。收件人电话号码上应显示如下所示的消息。
- 添加真实的公司号码(供以后使用)
在开发应用程序时,您可以使用测试业务号码和帐户,无需支付任何发送消息的费用。
当您准备好与客户互动时,您可以在 API 设置中添加真实的企业电话号码(将从中发送消息)并创建官方 WhatsApp Business 帐户。我们稍后会讨论这个问题。
Whatsapp 业务管理 API 要点
业务管理 API 与主云 API(用于发送消息等)一起工作。它专为身份验证功能和管理 WhatsApp 业务相关资产(例如 WhatsApp Business 帐户和消息模板)而设计。
访问令牌
支持不同类型的访问令牌:
- 系统用户访问令牌:这些是代表您的企业或组织的不会过期的代币,对于解决方案合作伙伴与新客户共享信用额度至关重要。
- 业务集成系统用户访问令牌:这些令牌是技术提供商和解决方案合作伙伴的理想选择,专门针对已加入的客户数据,并支持自动化操作,无需用户输入或重新身份验证。
- 用户访问令牌:通常用于初始应用程序测试,它们很快就会过期,不太适合持续开发。 该令牌在上面发送的测试消息中使用。
系统用户访问令牌
系统用户令牌分为两种类型:
- 员工系统用户:需要访问个人 WhatsApp Business 帐户,并且适合有限的帐户访问。
- 管理系统用户:默认拥有对所有 WhatsApp Business 帐户和资产的完全访问权限,可满足更广泛的访问要求。
创建系统用户
创建系统用户:
- 登录到 元商务套房.
- 在左上角的下拉菜单中找到您的企业帐户,然后单击其 个人设置 (齿轮)图标。
- 点击 业务设定.
- 导航 用户 > 系统用户.
- 点击 地址 按钮并创建一个 管理员 or 雇员 系统用户。
生成系统用户访问令牌
创建系统用户后生成系统用户访问令牌:
- 登录到 元商务套房.
- 在左上角的下拉菜单中找到您的企业帐户,然后单击其 个人设置 (齿轮)图标。
- 点击 业务设定.
- 导航 用户 > 系统用户.
- 从系统用户列表中选择适当的系统用户。
- 点击 生成新令牌 按钮。
- 选择将使用令牌的应用程序。
- 选择应用程序正常运行所需的任何权限并生成令牌。
业务集成系统用户访问令牌
这些令牌是通过嵌入式注册生成的,并且适用于单个入职客户。它们对于在客户 WhatsApp Business 帐户上执行自动化操作的应用程序至关重要。 了解更多信息。
速率限制
API 对每小时的调用次数施加限制。这些限制根据呼叫类型和 WhatsApp Business 帐户的状态而有所不同。
使用由 Nanonets 为您和您的团队设计的人工智能驱动的工作流程,自动化 Whatsapp 消息传递活动。
使用 Whatsapp Cloud API 发送消息
您可以发送自由格式的消息或使用消息模板。让我们来探讨一下两者。
通过 WhatsApp Cloud API,您可以发送各种类型的自由格式消息,包括:
- 文本
- 反应
- 媒体(图像、视频等)
- 地理位置
- 联系我们
- 互动留言
- 地址消息
发送消息的请求语法
要发送消息,请使用对 WhatsApp Business 电话号码端点的 POST 请求:
POST /<WHATSAPP_BUSINESS_PHONE_NUMBER>/messages
消息有效负载结构
消息有效负载具有标准格式,根据消息类型的不同而有所不同:
{ "messaging_product": "whatsapp", "recipient_type": "individual", "to": "<TO>", "type": "<TYPE>", // Specific payload depending on message type
}
<TO>
:收件人的 WhatsApp ID 或电话号码(例如 +16315551234)。<TYPE>
:消息类型(例如“文本”、“图像”等)。
响应包含一个消息 ID,可用于发送回复/反应,以及通过响应中的状态代码检查不成功的请求(典型约定,其中状态代码 200 表示成功调用)。
{ "messaging_product": "whatsapp", "contacts": [{ "input": "<PHONE_NUMBER>", "wa_id": "<WHATSAPP_ID>", }], "messages": [{ "id": "<wamid.ID>", }]
}
短信
要发送短信:
import requests
import json url = 'https://graph.facebook.com/v18.0/<FROM_PHONE_NUMBER_ID>/messages'
headers = { 'Authorization': 'Bearer <ACCESS_TOKEN>', 'Content-Type': 'application/json'
}
payload = { 'messaging_product': 'whatsapp', 'recipient_type': 'individual', 'to': '<PHONE_NUMBER>', 'type': 'text', 'text': { 'preview_url': False, 'body': '<MESSAGE_CONTENT>' }
} response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.text)
反应信息
用于发送反应消息:
import requests
import json url = 'https://graph.facebook.com/v18.0/<FROM_PHONE_NUMBER_ID>/messages' headers = { 'Authorization': 'Bearer <ACCESS_TOKEN>', 'Content-Type': 'application/json'
} data = { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "<PHONE_NUMBER>", "type": "reaction", "reaction": { "message_id": "wamid.HBgLM...", "emoji": "uD83DuDE00" }
} response = requests.post(url, headers=headers, data=json.dumps(data)) print(response.text)
媒体留言
使用 type
属性来指示媒体资产的类型(audio
, document
, image
, sticker
或 video
)和任一 id
or link
属性来指示其 ID(您必须生成)或在公共服务器上的位置。
如果使用 id
,您必须先 上传您的媒体资产 到 Whatsapp 服务器并捕获返回的媒体 ID。如果使用 link
,您的资产必须位于可公开访问的服务器上,否则消息将无法发送。
使用链接
import requests url = 'https://graph.facebook.com/v18.0/<FROM-PHONE-NUMBER-ID>/messages' headers = { 'Authorization': 'Bearer <ACCESS_TOKEN>', 'Content-Type': 'application/json',
} data = { 'messaging_product': 'whatsapp', 'recipient_type': 'individual', 'to': '<PHONE-NUMBER>', 'type': 'image', 'image': { 'link': '<IMAGE_URL>' }
} response = requests.post(url, headers=headers, json=data)
print(response.text)
使用身份证
import requests url = 'https://graph.facebook.com/v18.0/FROM-PHONE-NUMBER-ID/messages' headers = { 'Authorization': 'Bearer ACCESS_TOKEN', 'Content-Type': 'application/json'
} data = { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "PHONE-NUMBER", "type": "image", "image": { "id": "MEDIA-OBJECT-ID" }
} response = requests.post(url, json=data, headers=headers)
print(response.text)
位置信息
要发送位置消息,请创建 POST
拨电至 /PHONE_NUMBER_ID/messages
并附上 message
对象与 type=location
。然后,添加位置对象。
import requests url = 'https://graph.facebook.com/v18.0/<FROM_PHONE_NUMBER_ID>/messages'
headers = { 'Authorization': 'Bearer <ACCESS_TOKEN>', 'Content-Type': 'application/json'
}
data = { "messaging_product": "whatsapp", "to": "<PHONE_NUMBER>", "type": "location", "location": { "longitude": <LONG_NUMBER>, "latitude": <LAT_NUMBER>, "name": "<LOCATION_NAME>", "address": "<LOCATION_ADDRESS>" }
} response = requests.post(url, headers=headers, json=data)
print(response.text)
联系方式 留言
发送联系人消息:
import requests
import json url = 'https://graph.facebook.com/v18.0/FROM_PHONE_NUMBER_ID/messages' headers = { 'Authorization': 'ACCESS_TOKEN', 'Content-Type': 'application/json',
} data = { "messaging_product": "whatsapp", "to": "PHONE_NUMBER", "type": "contacts", "contacts": [{ "addresses": [{ "street": "STREET", "city": "CITY", "state": "STATE", "zip": "ZIP", "country": "COUNTRY", "country_code": "COUNTRY_CODE", "type": "HOME" }, { "street": "STREET", "city": "CITY", "state": "STATE", "zip": "ZIP", "country": "COUNTRY", "country_code": "COUNTRY_CODE", "type": "WORK" }], "birthday": "YEAR_MONTH_DAY", "emails": [{ "email": "EMAIL", "type": "WORK" }, { "email": "EMAIL", "type": "HOME" }], "name": { "formatted_name": "NAME", "first_name": "FIRST_NAME", "last_name": "LAST_NAME", "middle_name": "MIDDLE_NAME", "suffix": "SUFFIX", "prefix": "PREFIX" }, "org": { "company": "COMPANY", "department": "DEPARTMENT", "title": "TITLE" }, "phones": [{ "phone": "PHONE_NUMBER", "type": "HOME" }, { "phone": "PHONE_NUMBER", "type": "WORK", "wa_id": "PHONE_OR_WA_ID" }], "urls": [{ "url": "URL", "type": "WORK" }, { "url": "URL", "type": "HOME" }] }]
} response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)
更换 <CONTACT_PAYLOAD>
包含联系方式的 JSON 结构。
互动留言
交互式消息包括列表消息、回复按钮和点击操作 URL 按钮。要发送交互式消息,请对 /PHONE_NUMBER_ID/messages 进行 POST 调用并附加 type=interactive 的消息对象。然后,添加一个交互式对象。
对于列表消息:
import requests
import json url = 'https://graph.facebook.com/v18.0/FROM_PHONE_NUMBER_ID/messages'
headers = { 'Authorization': 'Bearer ACCESS_TOKEN', 'Content-Type': 'application/json'
}
data = { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "PHONE_NUMBER", "type": "interactive", "interactive": { "type": "list", "header": { "type": "text", "text": "HEADER_TEXT" }, "body": { "text": "BODY_TEXT" }, "footer": { "text": "FOOTER_TEXT" }, "action": { "button": "BUTTON_TEXT", "sections": [ { "title": "SECTION_1_TITLE", "rows": [ { "id": "SECTION_1_ROW_1_ID", "title": "SECTION_1_ROW_1_TITLE", "description": "SECTION_1_ROW_1_DESCRIPTION" }, { "id": "SECTION_1_ROW_2_ID", "title": "SECTION_1_ROW_2_TITLE", "description": "SECTION_1_ROW_2_DESCRIPTION" } ] }, { "title": "SECTION_2_TITLE", "rows": [ { "id": "SECTION_2_ROW_1_ID", "title": "SECTION_2_ROW_1_TITLE", "description": "SECTION_2_ROW_1_DESCRIPTION" }, { "id": "SECTION_2_ROW_2_ID", "title": "SECTION_2_ROW_2_TITLE", "description": "SECTION_2_ROW_2_DESCRIPTION" } ] } ] } }
} response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)
对于回复按钮:
import requests url = 'https://graph.facebook.com/v18.0/FROM_PHONE_NUMBER_ID/messages'
headers = { 'Authorization': 'Bearer ACCESS_TOKEN', 'Content-Type': 'application/json'
}
data = { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "PHONE_NUMBER", "type": "interactive", "interactive": { "type": "button", "body": { "text": "BUTTON_TEXT" }, "action": { "buttons": [ { "type": "reply", "reply": { "id": "UNIQUE_BUTTON_ID_1", "title": "BUTTON_TITLE_1" } }, { "type": "reply", "reply": { "id": "UNIQUE_BUTTON_ID_2", "title": "BUTTON_TITLE_2" } } ] } }
} response = requests.post(url, headers=headers, json=data)
print(response.text)
对于使用 CTA URL 按钮发送消息:
import requests
import json # Replace these variables with your actual data
access_token = '<ACCESS_TOKEN>'
business_phone_number_id = '<BUSINESS_PHONE_NUMBER_ID>'
customer_phone_number = '<CUSTOMER_PHONE_NUMBER>' url = f'https://graph.facebook.com/v18.0/{business_phone_number_id}/messages'
headers = { 'Authorization': f'Bearer {access_token}', 'Content-Type': 'application/json'
}
data = { "messaging_product": "whatsapp", "recipient_type": "individual", "to": customer_phone_number, "type": "interactive", "interactive": { "type": "button", "body": { "text": "BUTTON_TEXT" }, "action": { "buttons": [ { "type": "reply", "reply": { "id": "UNIQUE_BUTTON_ID_1", "title": "BUTTON_TITLE_1" } }, { "type": "reply", "reply": { "id": "UNIQUE_BUTTON_ID_2", "title": "BUTTON_TITLE_2" } } ] } }
} response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)
发送回复
通过在对话中添加前一条消息的 ID,可以发送一条消息作为对对话中前一条消息的响应。 context
目的。这样,收件人就可以收到带有上下文气泡的新消息,其中显示了先前消息的内容。
import requests url = 'https://graph.facebook.com/v18.0/<FROM_PHONE_NUMBER_ID>/messages' headers = { 'Authorization': 'Bearer <ACCESS_TOKEN>', 'Content-Type': 'application/json'
} data = { "messaging_product": "whatsapp", "context": { "message_id": "<MESSAGE_ID>" }, "to": "<PHONE_NUMBER_OR_WA_ID>", "type": "text", "text": { "preview_url": False, "body": "<YOUR_TEXT_MESSAGE_CONTENT>" }
} response = requests.post(url, headers=headers, json=data) print(response.text)
发送地址消息
仅印度和新加坡支持地址消息类型。 在这里阅读更多内容。
发送消息模板
WhatsApp 消息模板是预先创建的特定消息格式,企业使用它来向选择接收通知的用户发送通知或客户服务消息。消息可以包括预约提醒、运输信息、问题解决或付款更新。
在发送模板消息之前,您需要创建一个模板。
- 在MyCAD中点击 软件更新 业务经理 并选择您的业务。
- 打开菜单并单击 WhatsApp管理器.
- 单击“管理消息模板”。
现在,您可以使用预先批准的模板之一,也可以使用所需的框架创建模板并获得 Meta 的批准。
看看这里提供的预先批准的模板 - https://www.facebook.com/business/help/722393685250070
您可以直接开始使用它们。
例如 -
1. 发送目录模板消息
本节介绍如何在 WhatsApp 消息中发送目录模板,假设您的元电子商务目录中有库存连接到您的 WhatsApp Business 帐户。
岗位要求
- 库存已上传至 Meta。您可以使用创建它 本指南.
- 连接到 WhatsApp Business 帐户的电子商务目录。
设置
下一步是创建将用于发送消息的目录模板。使用 本指南 在几分钟内创建目录模板。
请求语法
使用 WhatsApp Business 电话号码 > 消息端点。
请求示例
假设我们创建一个名为 intro_catalog_offer 的模板。
import requests url = 'https://graph.facebook.com/v17.0/<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/messages'
headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer <YOUR_ACCESS_TOKEN>'
}
data = { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "+16505551234", "type": "template", "template": { "name": "intro_catalog_offer", "language": { "code": "en_US" }, "components": [ { "type": "body", "parameters": [ { "type": "text", "text": "100" }, { "type": "text", "text": "400" }, { "type": "text", "text": "3" } ] }, { "type": "button", "sub_type": "CATALOG", "index": 0, "parameters": [ { "type": "action", "action": { "thumbnail_product_retailer_id": "2lc20305pt" } } ] } ] }
} response = requests.post(url, json=data, headers=headers)
print(response.json())
2. 发送轮播模板
本节介绍在 WhatsApp 消息中发送轮播模板的过程。
请求语法
与目录模板类似,使用 WhatsApp Business 电话号码 > 消息端点。
下面是调度轮播模板的示例请求,其中包含需要输入两个不同变量的消息气泡。它包括两张轮播卡,每张都有一个图像标题,并且需要输入正文中的文本以及与按钮相关的变量。
设置
下一步是创建轮播模板,用于发送消息。您可以使用以下命令在几秒钟内创建一个 本指南.
请求示例
import requests
import json url = 'https://graph.facebook.com/v18.0/106540352242922/messages'
headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer EAAJB...'
}
data = { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "16505555555", "type": "template", "template": { "name": "summer_carousel_promo_2023", "language": { "code": "en_US" }, "components": [ { "type": "BODY", "parameters": [ {"type": "TEXT", "text": "20OFF"}, {"type": "TEXT", "text": "20%"} ] }, { "type": "CAROUSEL", "cards": [ { "card_index": 0, "components": [ { "type": "HEADER", "parameters": [{"type": "IMAGE", "image": {"id": "24230790383178626"}}] }, { "type": "BODY", "parameters": [ {"type": "TEXT", "text": "10OFF"}, {"type": "TEXT", "text": "10%"} ] }, { "type": "BUTTON", "sub_type": "QUICK_REPLY", "index": "0", "parameters": [{"type": "PAYLOAD", "payload": "59NqSd"}] }, { "type": "button", "sub_type": "URL", "index": "1", "parameters": [{"type": "payload", "payload": "last_chance_2023"}] } ] }, { "card_index": 1, "components": [ { "type": "HEADER", "parameters": [{"type": "IMAGE", "image": {"id": "1690627074790615"}}] }, { "type": "BODY", "parameters": [ {"type": "TEXT", "text": "30OFF"}, {"type": "TEXT", "text": "30%"} ] }, { "type": "BUTTON", "sub_type": "QUICK_REPLY", "index": "0", "parameters": [{"type": "PAYLOAD", "payload": "7C4xhY"}] }, { "type": "BUTTON", "sub_type": "URL", "index": "1", "parameters": [{"type": "payload", "payload": "summer_blues_2023"}] } ] } ] } ] }
} response = requests.post(url, headers=headers, json=data)
print(response.text)
使用以下指南来进一步熟悉消息模板 – https://business.facebook.com/business/help/2055875911147364?id=2129163877102343
Whatsapp 消息传递工作流程
在本节中,我们将以 Whatsapp 营销活动为例,并尝试使用 Python 中的 Whatsapp API 使其自动化。我们将深入研究如何自动化通过其 API 从 HubSpot 提取每日潜在客户的过程,然后通过 WhatsApp 的 API 向这些潜在客户发送自动消息。我们将使用 HubSpot 字段根据各种属性创建动态消息。
从 HubSpot 获取每日潜在客户的脚本
首先,让我们编写一个 Python 脚本来从 HubSpot 获取每日潜在客户。该脚本将使用 HubSpot API 根据自定义字段获取潜在客户,例如 Date_Created
,过滤过去 24 小时内创建的潜在客户。
import requests
from datetime import datetime, timedelta # HubSpot API details
HUBSPOT_API_KEY = 'your_hubspot_api_key'
HUBSPOT_CONTACTS_URL = 'https://api.hubapi.com/crm/v3/objects/contacts' # Calculate yesterday's date
yesterday = (datetime.now() - timedelta(days=1)).strftime('%Y-%m-%d') # Query parameters for the API call
params = { 'hapikey': HUBSPOT_API_KEY, 'limit': 100, # Adjust the limit as needed 'properties': ['firstname', 'lastname', 'phone', 'email', 'Date_Created'], 'filters': [{ 'propertyName': 'Date_Created', 'operator': 'GTE', 'value': yesterday }]
} # API call to get contacts
response = requests.get(HUBSPOT_CONTACTS_URL, params=params)
leads = response.json() # Extract relevant information
daily_leads = [{'name': f"{lead['properties']['firstname']} {lead['properties']['lastname']}", 'phone': lead['properties']['phone'], 'email': lead['properties']['email']} for lead in leads['results']] # Print the leads
print(daily_leads)
通过 WhatsApp API 发送自动消息
一旦我们获得每日潜在客户列表,下一步就是通过 WhatsApp 向他们发送个性化消息。我们将使用 WhatsApp Cloud API 并根据其他 HubSpot 字段动态创建消息,例如 firstname
, lastname
,以及任何其他相关数据。
import requests
import json # WhatsApp API details
WHATSAPP_API_URL = 'https://graph.facebook.com/v18.0/YOUR_PHONE_NUMBER_ID/messages'
ACCESS_TOKEN = 'your_whatsapp_access_token' # Function to send message
def send_whatsapp_message(phone_number, message): headers = { 'Authorization': f'Bearer {ACCESS_TOKEN}', 'Content-Type': 'application/json' } payload = { 'messaging_product': 'whatsapp', 'recipient_type': 'individual', 'to': phone_number, 'type': 'text', 'text': {'body': message} } response = requests.post(WHATSAPP_API_URL, headers=headers, json=payload) return response.json() # Loop through the leads and send messages
for lead in daily_leads: # Custom message based on HubSpot fields message = f"Hello {lead['name']}, we have exciting updates for you! Check your email at {lead['email']} for more details." # Send message send_response = send_whatsapp_message(lead['phone'], message) print(f"Message sent to {lead['name']}: {send_response}")
在这个脚本中,我们首先定义一个函数 send_whatsapp_message
它接受电话号码和消息作为输入,并使用 WhatsApp API 发送消息。然后,我们循环遍历每个线索,创建个性化消息,并使用该函数发送消息。
该工作流程自动执行从 HubSpot 提取每日潜在客户,然后通过个性化 WhatsApp 消息与他们互动的过程。我们根据潜在客户的信息和偏好定制消息,以确保有效的沟通。
使用由 Nanonets 为您和您的团队设计的人工智能驱动的工作流程,自动化 Whatsapp 消息传递活动。
使用 Nanonet 实现工作流程自动化
您可以使用由 Nanonets 提供支持的工作流程自动化在几秒钟内自动化上述工作流程。
我们以自然语言提示的形式提供工作流程的要求,工作流程构建器会在几秒钟内启动工作流程。
我们验证了 Hubspot 和 Whatsapp 帐户,然后准备部署工作流程并使其上线。
个人和组织都可以创建许多有用的工作流程来简化沟通、自动化任务并提高生产力。以下是此类工作流程的三个实际示例:
销售线索通知工作流程
- 涉及的应用程序:WhatsApp、Salesforce、Google 表格
- 工作流程:
- 触发端口:潜在客户向公司的 WhatsApp 号码发送消息,表达对产品或服务的兴趣。
- 1行动:潜在客户的详细信息(姓名、联系信息、兴趣)会自动登录到 Salesforce 中的新潜在客户条目下。
- 2行动:同样的信息也被添加到 Google 表格中,用于跟踪所有传入的潜在客户,以进行进一步分析和跟进。
- 3行动:使用 Whatsapp 目录模板创建的自动介绍性消息作为 Whatsapp 回复发送。
预约提醒和确认工作流程
- 涉及的应用程序:WhatsApp、谷歌日历、Trello
- 工作流程:
- 触发端口:Google 日历中的日历活动(约会)即将到来(例如,预定时间前 24 小时)。
- 1行动:自动提醒消息会发送到客户的 WhatsApp 号码,要求确认或重新安排。
- 2行动:在 WhatsApp 上收到客户的确认回复后,会在企业的项目管理委员会中自动创建或更新 Trello 卡,以表示已确认的预约。
客户支持票证和后续工作流程
- 涉及的应用程序: WhatsApp、Zendesk、Slack、Gmail、Trello
- 工作流程:
- 触发: 客户向企业的 WhatsApp 号码发送一条消息,消息正文中包含特定关键字(例如“帮助”或“支持”)。
- 行动1: 该消息会触发在 Zendesk 中创建新的支持票证。
- 行动2: 票证信息以及客户的原始消息会自动转发到专用的 Slack 频道(例如#customer_support),供支持团队查看和讨论。
- 行动3: 自动生成电子邮件并发送给支持团队的 Gmail 帐户,其中包括客户的消息和后续联系详细信息。此电子邮件还包含指向新创建的 Zendesk 票证的链接。
- 行动4: Trello 卡片是在指定的看板和列表中创建的(例如,“支持”板上的“新工单”列表),捕获客户的问题详细信息。该卡用于跟踪故障单各个解决阶段的进度。
- 行动5: 一旦支持票证在 Zendesk 中标记为已解决,系统就会通过 WhatsApp 向客户发回一条自动消息,确认问题已解决并请求任何进一步的帮助。
这些工作流程旨在提高沟通效率,确保及时响应,并跟踪不同平台上的重要交互和任务。它们可以根据特定的组织需求进行定制,并且可以显着简化各种业务流程。
使用 Nanonet 实现工作流程自动化
在当今快节奏的商业环境中,工作流程自动化作为一项关键创新脱颖而出,为各种规模的公司提供竞争优势。 将自动化工作流程集成到日常业务运营中不仅是一种趋势,而且是一种趋势。 这是战略需要。 除此之外,法学硕士的出现为手动任务和流程的自动化提供了更多机会。
欢迎来到 Nanonets 工作流程自动化,人工智能驱动的技术使您和您的团队能够自动执行手动任务并在几分钟内构建高效的工作流程。 利用自然语言轻松创建和管理与所有文档、应用程序和数据库无缝集成的工作流程。
我们的平台不仅提供用于统一工作流程的无缝应用程序集成,而且还能够构建和利用自定义大型语言模型应用程序,以便在您的应用程序中进行复杂的文本编写和回复发布。 确保数据安全始终是我们的首要任务,严格遵守 GDPR、SOC 2 和 HIPAA 合规标准。
为了更好地了解 Nanonets 工作流程自动化的实际应用,让我们深入研究一些现实世界的示例。
- 自动化的客户支持和参与流程
- 票证创建 – Zendesk:当客户在 Zendesk 中提交新的支持票证时,会触发工作流程,表明他们需要产品或服务的帮助。
- 票务更新 – Zendesk:票证创建后,Zendesk 中会立即记录自动更新,表明票证已收到并正在处理,为客户提供票证号码以供参考。
- 信息检索 – Nanonets 浏览:同时,Nanonets 浏览功能会搜索所有知识库页面,以查找与客户问题相关的相关信息和可能的解决方案。
- 客户历史记录访问 – HubSpot:同时,查询 HubSpot 以检索客户之前的交互记录、购买历史记录和任何过去的票证,以便为支持团队提供上下文。
- 票务处理 – Nanonets AI:根据现有的相关信息和客户历史记录,Nanonets AI 可以处理票证,对问题进行分类,并根据过去的类似案例提出潜在的解决方案。
- 通知 – Slack:最后,通过 Slack 通知负责的支持团队或个人,其中包含一条消息,其中包含票证详细信息、客户历史记录和建议的解决方案,从而促使他们做出快速、知情的响应。
- 自动问题解决流程
- 初始触发器 – Slack 消息:当客户服务代表在 Slack 上的专用通道中收到一条新消息,表明需要解决的客户问题时,工作流程就开始了。
- 分类 – Nanonets AI:一旦检测到消息,Nanonets AI 就会根据消息内容和过去的分类数据(来自 Airtable 记录)对消息进行分类。 使用法学硕士,它将其归类为错误并确定紧急程度。
- 记录创造——Airtable:分类后,工作流程会自动在云协作服务 Airtable 中创建新记录。 此记录包括客户消息中的所有相关详细信息,例如客户 ID、问题类别和紧急级别。
- 团队分配 – Airtable:创建记录后,Airtable 系统会指派一个团队来处理该问题。 根据 Nanonets AI 所做的分类,系统会选择最合适的团队(技术支持、计费、客户成功等)来接管问题。
- 通知 – Slack:最后,通过 Slack 通知指定的团队。 自动消息会发送到团队的频道,提醒他们有新问题,提供指向 Airtable 记录的直接链接,并提示及时响应。
- 自动会议安排流程
- 初步联系 – LinkedIn:当专业联系人在 LinkedIn 上发送一条表示有兴趣安排会议的新消息时,工作流程就会启动。 如果 LLM 认为消息是潜在求职者的会议请求,则它会解析传入消息并触发工作流程。
- 文档检索 – Google Drive:初次联系后,工作流程自动化系统会从 Google Drive 检索预先准备的文档,其中包含有关会议议程、公司概况或任何相关简报材料的信息。
- 日程安排 – Google 日历:接下来,系统与 Google 日历交互以获取会议的可用时间。 它会检查日历中是否有与工作时间(基于从 LinkedIn 个人资料解析的位置)一致的空缺时段以及之前设置的会议首选项。
- 确认消息作为回复 – LinkedIn:一旦找到合适的时间段,工作流程自动化系统就会通过 LinkedIn 发回一条消息。 此消息包括建议的会议时间、对从 Google 云端硬盘检索到的文档的访问权限以及确认或替代建议的请求。
- 应付帐款中的发票处理
- 发票收据 – Gmail:发票通过电子邮件收到或上传到系统。
- 数据提取 – Nanonets OCR:系统自动提取相关数据(如供应商详细信息、金额、到期日)。
- 数据验证 – Quickbooks: Nanonets 工作流程根据采购订单和收据验证提取的数据。
- 批准路由 – Slack:发票将根据预定义的阈值和规则发送给相应的经理进行批准。
- 付款处理 – Brex:一旦获得批准,系统将根据供应商的条款安排付款并更新财务记录。
- 归档 – Quickbooks:已完成的交易将被存档以供将来参考和审计跟踪。
- 内部知识库协助
- 初步询问 – Slack:团队成员 Smith 在 #chat-with-data Slack 频道中询问有关 QuickBooks 集成遇到问题的客户。
- 自动数据聚合 – Nanonets 知识库:
- 票务查询 – Zendesk:Slack 中的 Zendesk 应用程序会自动提供今天票据的摘要,这表明某些客户将发票数据导出到 QuickBooks 时存在问题。
- 松弛搜索 – Slack:同时,Slack 应用程序通知频道,团队成员 Patrick 和 Rachel 正在另一个频道中积极讨论 QuickBooks 导出错误的解决方案,修复计划将于下午 4 点上线。
- 票务追踪 – JIRA:JIRA 应用程序更新了有关 Emily 创建的标题为“QB Desktop 集成的 QuickBooks 导出失败”的票证的频道,这有助于跟踪问题的状态和解决进度。
- 参考文档 – Google 云端硬盘:Drive 应用提到存在一个用于修复与 QuickBooks 集成相关的错误的运行手册,可以参考该运行手册来了解故障排除和解决方案的步骤。
- 持续沟通和解决方案确认 – Slack:随着对话的进展,Slack 频道将充当实时论坛,用于讨论更新、共享操作手册中的发现以及确认错误修复的部署。 团队成员使用该渠道进行协作、分享见解并提出后续问题,以确保全面了解问题及其解决方案。
- 决议文档和知识共享:实施修复后,团队成员会使用新的发现以及解决问题所采取的任何其他步骤来更新 Google 云端硬盘中的内部文档。 事件摘要、解决方案和任何经验教训已在 Slack 频道中共享。 因此,团队的内部知识库会自动增强以供将来使用。
商业效率的未来
Nanonets Workflows 是一个安全、多用途的工作流程自动化平台,可自动执行您的手动任务和工作流程。 它提供了易于使用的用户界面,使个人和组织都可以使用它。
首先,您可以安排与我们的一位 AI 专家通话,他们可以根据您的特定用例提供个性化的 Nanonets 工作流程演示和试用。
设置完成后,您可以使用自然语言来设计和执行由法学硕士支持的复杂应用程序和工作流程,与您的应用程序和数据无缝集成。
使用 Nanonets 工作流程增强您的团队,使他们能够专注于真正重要的事情。
使用由 Nanonets 为您和您的团队设计的人工智能驱动的工作流程,自动化 Whatsapp 消息传递活动。
- :具有
- :是
- :不是
- :在哪里
- $UP
- 000
- 06
- 07
- 08
- 09
- 1
- 10
- 100
- 150
- 1930
- 20
- 200
- 2000
- 24
- 28
- 36
- 400
- 51
- 7
- 80
- 900
- a
- 对,能力--
- 关于
- 以上
- ACCESS
- 无障碍
- 根据
- 账号管理
- 账户
- 认识的
- 横过
- 操作
- 行动
- 要积极。
- 积极地
- 实际
- 加
- 添加
- 添加
- 增加
- 额外
- 地址
- 解决
- 地址
- 遵守
- 高级
- 来临
- 后
- 驳
- 年龄
- 议程
- 聚合
- AI
- 致力
- 对齐
- 所有类型
- 允许
- 允许
- 允许
- 沿
- 已经
- 还
- 替代
- 量
- an
- 分析
- 和
- 另一个
- 任何
- API
- APIs
- 应用
- 出现
- 应用领域
- 应用领域
- 约定
- 接近
- 适当
- 批准
- 批准
- 应用
- 保健
- 围绕
- AS
- 问
- 问
- 财富
- 办公室文员:
- 分配
- 帮助
- 相关
- At
- 连接
- 属性
- 听众
- 审计
- 认证
- 认证
- 授权
- 自动化
- 自动化
- 自动化
- 自动
- 自动化
- 自动化和干细胞工程
- 可使用
- 背部
- 后端
- 基地
- 基于
- BE
- 持票人
- 很
- before
- 开始
- 作为
- 如下。
- 更好
- 之间
- 计费
- 亿
- 博客
- 蓝图
- 板
- 身体
- 都
- 简报
- 更广泛
- 浏览
- 泡沫
- 问题
- 虫子
- 建立
- 建设者
- 建
- 商业
- 企业
- 但是
- 按键
- by
- 计算
- 日历
- 呼叫
- 被称为
- 呼叫
- 营销活动
- 活动
- CAN
- 候选人
- 能力
- 捕获
- 捕获
- 卡
- 牌
- 关心
- 旋转木马
- 案件
- 例
- 检索目录
- 分类
- 产品类别
- 渠道
- 查
- 检查
- 支票
- 选择
- 城市
- 分类
- 分类
- 点击
- 客户
- 云端技术
- 码
- 合作
- 合作
- 购买的订单均
- 通信
- 沟通
- 通信
- 公司
- 公司
- 公司的
- 竞争的
- 完成
- 复杂
- 符合
- 组件
- 全面
- 确认
- CONFIRMED
- 分享链接
- 已联繫
- 地都
- 建设
- CONTACT
- 联系
- 包含
- 内容
- 上下文
- 上下文
- 谈话
- 对话
- 价格
- 可以
- 国家
- 盖
- 创建信息图
- 创建
- 创建
- 创造
- 创建
- 信用
- 客户关系管理
- 关键
- 习俗
- 顾客
- 客户数据
- 客户服务
- 客户成功
- 客户支持
- 合作伙伴
- 每天
- XNUMX月XNUMX日
- data
- 数据安全
- 数据库
- 日期
- 重要日期
- 日期时间
- 专用
- 默认
- 定义
- 钻研
- 演示
- 问题类型
- 根据
- 部署
- 部署
- 描述
- 设计
- 指定
- 设计
- 期望
- 通过电脑捐款
- 详情
- 检测
- 确定
- 发展
- 研发支持
- 不同
- 数字
- 数字时代
- 直接
- 直接
- 讨论
- 讨论
- 不同
- 文件
- 文件
- 文件
- 不
- 完成
- 向下
- 驾驶
- 两
- ,我们将参加
- 动态
- 动态
- e
- 每
- 此前
- 易
- 易于使用
- 电子商务
- 边缘
- 有效
- 只
- 效率
- 高效
- 有效
- 努力
- 费力
- 或
- 邮箱地址
- 电子邮件解析
- 电子邮件
- 嵌入式
- 出现
- 如虎添翼
- enable
- 使
- 使
- 端点
- 从事
- 订婚
- 从事
- 提高
- 增强
- 确保
- 保证
- 输入
- 条目
- 环境
- 必要
- 等
- 甚至
- 活动
- 终于
- 例子
- 例子
- 令人兴奋的
- 执行
- 存在
- 经历
- 专家
- 介绍
- 探索
- 出口
- 提取
- 萃取
- 提取物
- 失败
- 失败
- false
- 快节奏
- 专栏
- 特征
- 特色
- 部分
- 字段
- 过滤
- 过滤器
- 终于
- 金融
- 找到最适合您的地方
- 发现
- 姓氏:
- 五
- 固定
- 专注焦点
- 聚焦
- 以下
- 针对
- 格式
- 论坛
- 发现
- 骨架
- Free
- 止
- ,
- 功能
- 功能
- 进一步
- 未来
- 《通用数据保护条例》(GDPR)
- 婴儿车
- 通常
- 生成
- 产生
- 得到
- GIF
- Go
- 谷歌
- 指南
- 制导
- 手
- 处理
- 处理
- 有
- 头
- 帮助
- 帮助
- 此处
- hi
- 历史
- 主页
- 主持人
- 托管
- 托管
- 小时
- HOURS
- 创新中心
- How To
- 但是
- HTTPS
- HubSpot
- ICON
- ID
- 理想
- if
- 图片
- 图片
- 立即
- 履行
- 实施
- 进口
- 重要
- in
- 事件
- 包括
- 包括
- 包含
- 来电
- 结合
- 指数
- 印度
- 表明
- 表示
- 个人
- 个人
- 信息
- 通知
- 初始
- 启动
- 創新
- 输入
- 输入
- 查询
- 可行的洞见
- 整合
- 整合
- 积分
- 集成
- 相互作用
- 互动
- 互动
- 交互
- 兴趣
- 接口
- 内部
- 成
- 错综复杂
- 介绍
- 介绍
- 库存
- 发票
- 参与
- 问题
- 问题
- IT
- 它的
- 工作
- JPG
- JSON
- 只是
- 保持
- 键
- 知识
- 景观
- 语言
- 大
- 名:
- 后来
- 铅
- 信息
- 学习用品
- 知道
- 减
- 教训
- 经验教训
- 让
- Level
- 借力
- 喜欢
- 极限
- 限制
- 有限
- 范围
- 线
- 友情链接
- 链接
- LinkedIn个人资料
- 清单
- 生活
- ll
- LLM
- 圖書分館的位置
- 记录
- 看
- LOOKS
- 查找
- 降低
- 保养
- 使
- 制作
- 管理
- 颠覆性技术
- 经理
- 管理的
- 手册
- 标
- 营销
- 大规模
- 物料
- 问题
- 事项
- 媒体
- 中等
- 会议
- 会议
- 会员
- 成员
- 提到
- 菜单
- 的话
- 条未读消息
- 消息
- 通讯应用
- 元
- 方法
- 分钟
- 模型
- 现代
- 更多
- 最先进的
- 多
- 必须
- 姓名
- 自然
- 导航
- 必须
- 必要性
- 需求
- 打印车票
- 需要
- 全新
- 新
- 下页
- 没有
- 通知
- 通知
- 现在
- 数
- 数字
- 众多
- 对象
- 目标
- of
- 最多线路
- 提供
- 优惠精选
- 官方
- on
- 一旦
- 一
- 正在进行
- 仅由
- 打开
- 打开
- 运营
- 操作者
- 机会
- 附加选项
- or
- 订单
- 组织
- 组织
- 组织
- 原版的
- 其他名称
- 我们的
- 输出
- 超过
- 简介
- 己
- 网页
- 面板
- 参数
- 最重要的
- 部分
- 尤其
- 伙伴
- 过去
- 帕特里克
- 付款
- 员工
- 为
- 执行
- 权限
- 个性化你的
- 电话
- 手机
- 关键的
- 平台
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 播放
- pm
- 声望
- 可能
- 帖子
- 潜力
- 供电
- 实用
- 在练习上
- 预
- 前
- 喜好
- 首选
- 当下
- 以前
- 先前
- 小学
- 打印
- 优先
- 过程
- 处理
- 过程
- 处理
- 产品
- 生产率
- 所以专业
- 本人简介
- 进展
- 项目
- 项目管理
- 促销
- 正确
- 财产
- 建议
- 提供
- 提供
- 供应商
- 提供
- 优
- 国家
- 公然
- 采购
- 购买
- 蟒蛇
- 有疑问吗?
- 快速
- 的Quickbooks
- 很快
- RE
- 达到
- 达
- 反应
- 准备
- 真实
- 真实的世界
- 实时的
- 收
- 接收
- 收到
- 接收
- 接收
- 建议
- 记录
- 记录
- 减少
- 参考
- 有关
- 相应
- 遗迹
- 提醒
- 重复的
- 更换
- 一个回复
- 代表
- 代表
- 请求
- 要求
- 必须
- 岗位要求
- 分辨率
- 解决
- 解决
- 响应
- 回复
- 提供品牌战略规划
- 成果
- 回报
- 角色
- 路由
- 定位、竞价/采购和分析/优化数字媒体采购,但算法只不过是解决问题的操作和规则。
- s
- Salesforce的
- 同
- 对工资盗窃
- 鳞片
- 缩放
- 始你
- 预定
- 调度
- 脚本
- 无缝的
- 无缝
- 搜索
- 其次
- 秒
- 部分
- 部分
- 安全
- 保安
- 选择
- 提交
- 发送
- 发送
- 发送
- 系列
- 服务器
- 服务器
- 服务
- 服务
- 特色服务
- 集
- 格局
- Share
- 共用的,
- 共享
- 片
- 配送服务
- 应该
- 陈列宣传
- 显著
- 表示
- 表示
- 类似
- 简单
- 同时
- 新加坡
- 尺寸
- 松弛
- 插槽
- 插槽
- 方案,
- 解决方案
- 一些
- 极致
- 具体的
- 速度
- 自旋
- 实习
- 标准
- 看台
- 开始
- 开始
- 州/领地
- Status
- 步
- 步骤
- 简单的
- 善用
- 策略
- 精简
- 街头
- 监督
- 结构体
- 成功
- 成功
- 这样
- 合适的
- 概要
- SUPPORT
- 支持
- 支持
- 支持
- 肯定
- SWIFT的
- 句法
- 系统
- 产品
- 裁缝
- 量身定制
- 采取
- 拍摄
- 需要
- 任务
- 团队
- 团队成员
- 队
- 科技
- 专业技术
- 模板
- 模板
- 条款
- test
- 测试
- 文本
- 比
- 这
- 其
- 他们
- 他们自己
- 然后
- 那里。
- 博曼
- 他们
- Free Introduction
- 三
- 通过
- 吞吐量
- 从而
- 票
- 门票
- 次
- 及时
- 时
- 标题
- 标题
- 至
- 今晚
- 象征
- 令牌
- 工具
- 工具
- 最佳
- 跟踪时
- 跟踪
- 交易
- 趋势
- 试用
- 触发
- 引发
- 真正
- 尝试
- 二
- 类型
- 类型
- 普遍
- 下
- 理解
- 理解
- 统一
- 更新
- 更新
- 最新动态
- 上传
- 上
- 急
- 网址
- us
- 用法
- 使用
- 用例
- 用过的
- 用户
- 用户界面
- 用户
- 运用
- 利用
- 有效
- 折扣值
- 各个
- 供应商
- 企业验证
- 专利
- 版本
- 通过
- 视频
- 查看
- VIMEO
- 是
- 方法..
- we
- 什么是
- ,尤其是
- 这
- 而
- WHO
- 将
- 中
- 也完全不需要
- 工作
- 工作流程
- 工作流程
- 合作
- 全世界
- 写
- 写作
- 昨天
- 完全
- 您一站式解决方案
- YouTube的
- Zendesk
- 和风网
- 压缩