自动化沟通对于任何成长中的企业都至关重要,而从 Google 表格发送短信的能力可以为营销、通知和客户服务解锁强大的工作流程。这篇全面的指南将引导您完成整个过程,利用 Google Apps Script 的强大功能和 MySMSGate 可靠且经济高效的短信网关,将您的电子表格转变为强大的通信中心。

无论您是发送预约提醒、订单更新还是个性化营销信息,您都会发现直接从 Google 表格数据自动化发送短信是多么简单和经济,无需复杂的 инфраструктура 或昂贵的第三方服务。

第一步:了解基础知识 – 为什么要从 Google 表格自动化发送短信?

Google 表格不仅仅是一个电子表格;它还是许多小型企业和初创公司的多功能数据库。直接从您的表格集成短信发送功能具有众多优势:

  • 效率: 自动化重复性任务,如发送批量通知或个性化消息。
  • 数据驱动的沟通: 利用表格中现有的客户数据触发有针对性的短信。
  • 成本效益: 避免手动发送,减少错误,并选择像 MySMSGate 这样经济实惠的短信网关。
  • 可访问性: 从一个熟悉且广泛可用的平台管理您的联系人和通信。
  • 用例: 预约提醒、配送通知、营销活动、OTP(一次性密码)、内部警报、客户支持跟进等等。

通过将 Google 表格与 MySMSGate 等短信网关连接,您可以直接从浏览器将数据转化为可操作的通信。

第二步:开始使用 MySMSGate:您的经济实惠短信网关

在我们深入编码之前,您需要一个能够处理您的消息的短信网关。MySMSGate 提供了一种独特且极具成本效益的解决方案,它将您现有的 Android 手机转变为强大的短信发送设备。这种方法绕过了昂贵的传统短信聚合器,并消除了对 10DLC 等复杂发件人注册的需求。

  1. 创建您的账户: 前往 MySMSGate.net 并注册一个免费账户。过程快速,无需预付信用卡。
  2. 连接您的 Android 手机: 登录后,您将在仪表板中找到一个二维码。在您选择的 Android 手机上从 Google Play 商店下载 MySMSGate Android 应用。打开应用并扫描仪表板中的二维码。您的手机将立即连接,准备发送和接收消息。您可以将无限数量的手机连接到一个账户,如果需要,还可以利用双 SIM 卡支持。
  3. 找到您的 API 密钥: 为了让 Google Apps Script 与 MySMSGate 通信,您需要唯一的 API 密钥。您可以在 MySMSGate 仪表板的“API”部分找到此密钥。请妥善保管,因为它用于验证您的请求。
  4. 为您的账户充值: MySMSGate 采用即用即付模式,没有月费或合同。短信费用仅为每条短信 $0.03,并提供套餐(例如,100 条短信 $3,500 条短信 $12,1000 条短信 $20)。为您的账户充值以确保无缝发送。失败的短信将自动退款。

MySMSGate 作为 小型企业最便宜的短信 API 脱颖而出,为开发者提供强大的 REST API,并为非技术用户提供用户友好的网页仪表板。

第三步:准备您的 Google 表格以发送短信

您的 Google 表格的结构至关重要。您需要为收件人的电话号码和消息内容设置列。考虑添加更多列用于个性化或跟踪。

让我们设置一个包含三列的简单表格:

  • 电话号码: 收件人的完整国际号码(例如,+12345678900)。
  • 消息: 短信的文本内容。
  • 状态: 用于跟踪短信是否成功发送的列(可选,但强烈建议用于调试和跟踪)。

以下是您的表格可能的样子:

电话号码消息状态
+12345678900嗨 John,您的预约是明天下午 2 点。
+19876543210提醒:您的发票将于 3 月 20 日到期。
+11122334455专为您提供的特别优惠!使用代码 SAVE10。

确保您的电话号码使用国际拨号代码(例如,+1、+44、+91)正确格式化,这对于可靠投递至关重要。

第四步:访问 Google Apps Script

Google Apps Script 是一个基于 JavaScript 的平台,可让您扩展 Google Workspace 应用程序,如 Sheets、Docs 和 Forms。我们将在其中编写代码,将您的表格连接到 MySMSGate。

  1. 打开您的 Google 表格。
  2. 转到菜单栏,点击扩展程序 > Apps Script
  3. 将打开一个新浏览器标签页,显示 Google Apps Script 编辑器。您可能会看到一个名为 Code.gs 的默认文件,其中包含一个空函数 myFunction()

我们将在在这里编写自定义的 JavaScript 代码。

第五步:编写 Google Apps Script 代码

现在,让我们编写 JavaScript 代码,它将从您的 Google 表格中读取数据并将其发送到 MySMSGate API。我们将创建一个函数,它遍历行,构建 API 请求,并发送消息。

function sendSmsFromSheet() {
  const SHEET_NAME = 'Sheet1'; // Replace with your sheet name
  const API_KEY = 'YOUR_MY_SMS_GATE_API_KEY'; // Replace with your MySMSGate API Key
  const API_ENDPOINT = 'https://mysmsgate.net/api/v1/send';
  
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
  const dataRange = sheet.getDataRange();
  const values = dataRange.getValues();
  
  // Assuming headers are in the first row, start from the second row
  for (let i = 1; i < values.length; i++) {
    const row = values[i];
    const phoneNumber = row[0]; // Phone number from the first column
    const messageText = row[1]; // Message from the second column
    let statusCell = sheet.getRange(i + 1, 3); // Status in the third column (row index + 1, column index)

    // Skip if phone number or message is empty, or if status is already 'Sent'
    if (!phoneNumber || !messageText || statusCell.getValue() === 'Sent') {
      continue;
    }

    try {
      const payload = {
        'api_key': API_KEY,
        'number': phoneNumber,
        'message': messageText
        // 'device_id': 'YOUR_DEVICE_ID' // Optional: Specify a connected Android device ID
        // 'sim_slot': 1 // Optional: Specify SIM slot (1 or 2) if dual SIM
      };

      const options = {
        'method': 'post',
        'contentType': 'application/json',
        'payload': JSON.stringify(payload)
      };

      const response = UrlFetchApp.fetch(API_ENDPOINT, options);
      const responseData = JSON.parse(response.getContentText());

      if (responseData.success) {
        statusCell.setValue('Sent');
        Logger.log('SMS sent successfully to ' + phoneNumber);
      } else {
        statusCell.setValue('Failed: ' + responseData.message);
        Logger.log('Failed to send SMS to ' + phoneNumber + ': ' + responseData.message);
      }
    } catch (e) {
      statusCell.setValue('Error: ' + e.message);
      Logger.log('Error sending SMS to ' + phoneNumber + ': ' + e.message);
    }
    
    // Optional: Add a small delay to avoid hitting API rate limits if sending many messages
    // Utilities.sleep(1000); 
  }
}

代码解释:

  • SHEET_NAME: 确保这与您的 Google 表格标签页的精确名称匹配(例如,'Sheet1', 'SMS List')。
  • API_KEY: 重要:'YOUR_MY_SMS_GATE_API_KEY' 替换为您 MySMSGate 仪表板中的实际 API 密钥。
  • API_ENDPOINT: 这是 MySMSGate 用于发送消息的 API 端点。
  • sheet.getDataRange().getValues(): 这会从您的活动表格中获取所有数据。
  • 遍历行: for 循环从 i = 1 开始,以跳过标题行。
  • phoneNumbermessageText: 这些变量从每行的第一列(索引 0)和第二列(索引 1)提取数据。如果您的列不同,请调整这些索引。
  • statusCell: 这获取了当前行第三列(索引 2)中单元格的引用,我们将在其中更新状态。
  • payload: 此 JSON 对象包含 MySMSGate API 所需的数据:您的 api_keynumbermessage。如果您连接了多个设备或双 SIM 卡手机并希望指定使用哪个设备,您可以选择包含 device_idsim_slot
  • UrlFetchApp.fetch(): 这是 Google Apps Script 用于发出 HTTP 请求的方法。我们正在发送带有 JSON 负载的 POST 请求。
  • 响应处理: 脚本解析 API 响应并相应地更新“状态”列,指示“已发送”或“失败”以及错误消息。

有关 API 参数的更多详细信息,请参阅 MySMSGate API 文档

第六步:配置和测试您的短信发送器

将代码粘贴到 Apps Script 编辑器后,您需要保存它并授予必要的权限。

  1. 保存脚本: 点击软盘图标(保存项目)或 文件 > 保存
  2. 选择函数: 在代码编辑器上方的工具栏中,有一个下拉菜单(可能显示“myFunction”或“sendSmsFromSheet”)。选择 sendSmsFromSheet
  3. 运行脚本: 点击“运行”图标(一个向右的三角形)。
  4. 授权权限: 首次运行访问外部服务或您的电子表格的脚本时,Google 将要求您授权。请按照以下步骤操作:
    1. 点击“审查权限”。
    2. 选择您的 Google 账户。
    3. 审查请求的权限(例如,“查看、编辑、创建和删除您的所有 Google 表格”、“连接到外部服务”)。
    4. 点击“允许”。
  5. 检查您的表格: 成功授权后,脚本将运行。返回您的 Google 表格。您应该会看到“状态”列已更新,成功发送的消息显示“已发送”,失败的消息显示错误信息。
  6. 检查您的手机: 验证您连接的 Android 手机是否发送了消息。

如果您遇到错误,请在 Apps Script 编辑器中检查“执行”标签页以获取日志和错误详细信息。常见问题包括 API 密钥不正确、电话号码格式错误或消息为空。

第七步:使用触发器自动化短信发送

手动运行脚本用于测试是可以的,但 Google 表格短信自动化的真正强大之处在于触发器。您可以设置脚本根据各种事件自动运行:

  • 时间驱动: 每小时、每天、每周等运行脚本,以处理新行。
  • 表单提交时: 如果您的表格是通过 Google 表单填充的,则在新表单提交后立即发送短信。
  • 编辑时: 当特定单元格或范围被编辑时触发脚本。

以下是设置时间驱动触发器的方法:

  1. 在 Apps Script 编辑器中,点击左侧边栏上的“触发器”图标(一个时钟)。
  2. 点击“+ 添加触发器”在右下角。
  3. 配置触发器:
    • 选择要运行的函数: sendSmsFromSheet
    • 选择要运行的部署: Head
    • 选择事件源: 时间驱动
    • 选择基于时间的触发器类型: 例如,小时计时器
    • 选择小时间隔: 例如,每小时
  4. 点击“保存”。

现在,您的 Google 表格将按照您指定的时间间隔自动检查要发送的新消息,使您的短信营销活动真正实现免提操作。您还可以将 MySMSGate 与 Zapier, Make.com 或 n8n 等工具集成,以实现更复杂的自动化工作流程,详细信息请参阅我们的 集成指南

第八步:高级技巧和用例

一旦您掌握了从 Google 表格发送短信的基础知识,请考虑以下高级技巧以最大化您的自动化:

  • 个性化: 在您的表格中添加更多列(例如,客户姓名、订单号),并在脚本中将它们动态插入到您的消息文本中。
  • 双向通信: MySMSGate 会自动将所有收到的短信转发到您的网页仪表板。然后您可以使用 Web Conversations 界面进行回复,直接从浏览器获得类似聊天的体验。
  • 错误处理和日志记录: 增强您的脚本以记录更详细的成功/失败消息,也许记录到一个单独的“日志”表格中,以便更好地监控。
  • 成本管理: 凭借 MySMSGate 透明的 $0.03/短信定价,您可以轻松计算成本。与 Twilio ($0.05-$0.08/短信,外加电话号码和 10DLC 注册的额外费用) 等竞争对手相比,MySMSGate 提供了显著的节省,特别是对于小型企业或发送大量消息的用户。
  • 专用设备/SIM 卡: 如果您连接了多部 Android 手机到 MySMSGate,您可以指定使用哪个 device_idsim_slot 来发送某些消息,从而实现多分支管理或不同的发件人身份。
  • 安排消息: 虽然 Google Apps Script 触发器可以安排,但为了更精确的安排,您可以在表格中管理消息队列,并让脚本仅在达到预定时间时发送消息。

通过利用这些功能,您的 Google 表格可以成为您业务强大、集成的通信平台。

常见问题

我可以使用 Google 表格发送个性化短信吗?

是的,当然可以!通过在您的 Google 表格中添加用于个性化数据(如客户姓名、订单号或特定日期)的列,您可以轻松修改 Google Apps Script,将这些信息动态插入到您的短信中。这使得您可以与收件人进行高度相关且引人入胜的沟通。

从 Google 表格发送短信费用昂贵吗?

费用取决于您使用的短信网关。使用 MySMSGate,从 Google 表格发送短信非常经济实惠,每条短信仅需 $0.03,没有月费或合同。这比许多传统短信 API(如 Twilio)要便宜得多,后者通常每条短信收取 $0.05-$0.08,外加电话号码和合规性费用。MySMSGate 使用您自己的 Android 手机的模型有助于降低成本。

我需要编码技能才能从 Google 表格自动化发送短信吗?

对于本教程中概述的方法,熟悉复制粘贴代码以及理解 JavaScript(Google Apps Script)中的简单变量会有所帮助。您无需成为专业的开发者。提供的代码片段只需稍作修改(API 密钥、表格名称)即可使用。对于非技术用户,MySMSGate 还提供了一个网页仪表板用于直接发送短信,或者与 Zapier, Make.com 和 n8n 进行无代码集成,这些工具无需编写自定义代码即可连接到 Google 表格。

如何从 Google 表格跟踪短信投递状态?

在本教程中,我们在您的 Google 表格中包含了一个“状态”列,在 MySMSGate API 响应后会直接更新为“已发送”或“失败”。为了更详细的实时投递跟踪,MySMSGate 提供 webhooks,可以将投递状态更新推送到您自己的系统,更高级的 Google Apps Script 可能会处理这些更新并在您的表格或其他数据库中进行更新。

Google 表格短信发送的 MySMSGate 替代方案有哪些?

尽管 MySMSGate 提供了一种独特且经济高效的解决方案,但其他替代方案包括传统的短信 API,如 Twilio, Vonage 或 Plivo,它们也可以与 Google Apps Script 集成。然而,这些通常伴随着更高的每条消息成本、月费,并且需要在美国进行 10DLC 注册等合规流程。MySMSGate 使用您自己的 Android 手机的方法消除了这些复杂性和成本,使其成为许多小型企业和开发者的卓越 Twilio 替代方案