8
n8n 中文网amn8n.com

使用 Twilio 进行 AI 驱动的预订提醒电话

中级

这是一个Support Chatbot, Multimodal AI领域的自动化工作流,包含 12 个节点。主要使用 Wait, Twilio, GoogleSheets, ManualTrigger, SplitInBatches 等节点。 餐厅预订提醒电话,使用Grok-4和Twilio

前置要求
  • Google Sheets API 凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "qO5iIv005Wh8MNjr",
  "meta": {
    "instanceId": "a4bfc93e975ca233ac45ed7c9227d84cf5a2329310525917adaf3312e10d5462",
    "templateCredsSetupCompleted": true
  },
  "name": "使用 Twilio 进行 AI 驱动的预订提醒电话",
  "tags": [],
  "nodes": [
    {
      "id": "7f2c26e5-a2da-44c5-8ec3-bc23a2893d14",
      "name": "当点击“执行工作流”时",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        176,
        1088
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "cfdab910-984d-49bb-9835-03486d5fa4d9",
      "name": "定时触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        176,
        912
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 11
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "2345492b-8fa2-4fcc-8756-33da030bc6a2",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        144,
        464
      ],
      "parameters": {
        "width": 680,
        "height": 224,
        "content": "## 步骤 1"
      },
      "typeVersion": 1
    },
    {
      "id": "c31a610e-5c11-43c1-ba93-aef36f4b9730",
      "name": "秘书代理",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        928,
        992
      ],
      "parameters": {
        "text": "=Details booking appointment:\nName: {{ $json.NAME }}\nTime: {{ $json.TIME }}\nN. People: {{ $json['N. PEOPLE'] }}",
        "options": {
          "systemMessage": "=You are the secretary of the restaurant \"Bella Napoli\" and your task is to create a conversation for a phone call to remind a customer about their reservation today. You will be provided with the reservation name, time, and number of people.\n\nHere are the details of the reservation:\n<reservation>\nName: {{ $json.NAME }}\nTime: {{ $json.TIME }}\nN. People: {{ $json['N. PEOPLE'] }}\n</reservation>\n\nCreate a polite and friendly conversation for the phone call. The conversation should include:\n1. A greeting and introduction\n2. A reminder of the reservation details (name, time, number of people)\n\nOnly Write the message without any tags.\n\nHere's an example of how your output should be structured:\n\nGood morning, Mr. Paolo. I'm the secretary at Bella Napoli restaurant. I'm calling to remind you of your reservation for today at 8:00 PM for four people. Have a nice day!\n\nRemember to use the provided reservation details in your conversation. Create a natural and friendly message that a real restaurant secretary might have with a customer."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.8
    },
    {
      "id": "bacd0bad-93be-4643-b76d-a232372d8652",
      "name": "遍历项目",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        640,
        976
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "568a49f4-653f-45e1-8515-22742ac0f18a",
      "name": "等待",
      "type": "n8n-nodes-base.wait",
      "position": [
        1424,
        1200
      ],
      "webhookId": "05cc7627-e604-4052-a2ec-998a975dd7b6",
      "parameters": {
        "unit": "minutes",
        "amount": 2
      },
      "typeVersion": 1.1
    },
    {
      "id": "f3b319f4-8c5e-4ef9-b633-bcefa9a1bb04",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        144,
        720
      ],
      "parameters": {
        "width": 688,
        "height": 128,
        "content": "## 步骤 2"
      },
      "typeVersion": 1
    },
    {
      "id": "c4a2fcfb-0875-4607-a874-0b34d4f24785",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        144,
        256
      ],
      "parameters": {
        "color": 3,
        "width": 672,
        "content": "## 使用 Twilio 进行 AI 驱动的预订提醒电话"
      },
      "typeVersion": 1
    },
    {
      "id": "7ed94873-766a-43a3-82f4-882b3d482e83",
      "name": "Grok 4",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        896,
        1200
      ],
      "parameters": {
        "model": "x-ai/grok-4",
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "id": "pb06rfB4xmxzVe3Q",
          "name": "OpenRouter"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2142042a-0d66-4053-8c6c-a6008b269e8d",
      "name": "获取每日预订",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        432,
        976
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "CALLED"
            },
            {
              "lookupValue": "={{ $now.format('yyyy-LL-dd') }}",
              "lookupColumn": "DATE"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1lQh-199bQe-HKwmVI_6cS-Xv1OiGo1B4-OpR6kbNg7E/edit#gid=0",
          "cachedResultName": "Foglio1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1lQh-199bQe-HKwmVI_6cS-Xv1OiGo1B4-OpR6kbNg7E",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1lQh-199bQe-HKwmVI_6cS-Xv1OiGo1B4-OpR6kbNg7E/edit?usp=drivesdk",
          "cachedResultName": "Booking appointments"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "JYR6a64Qecd6t8Hb",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "80d0ebf7-0e19-452b-ad25-993e77ced577",
      "name": "拨打电话",
      "type": "n8n-nodes-base.twilio",
      "position": [
        1424,
        992
      ],
      "parameters": {
        "to": "=+{{ $('Get daily reservations').item.json.PHONE }}",
        "from": "+177526xxxxxx",
        "twiml": true,
        "message": "=<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Response>\n  <Say voice=\"alice\" language=\"it-IT\">\n    {{ $json.output }}\n  </Say>\n</Response>\n",
        "options": {},
        "resource": "call"
      },
      "credentials": {
        "twilioApi": {
          "id": "95OhsphktdjbbK8i",
          "name": "Twilio account (info@n3w.it)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "fadf15c5-c652-4ec2-9e21-0a61f4046532",
      "name": "更新预订",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1104,
        1200
      ],
      "parameters": {
        "columns": {
          "value": {
            "CALLED": "x",
            "row_number": "={{ $('Get daily reservations').item.json.row_number }}"
          },
          "schema": [
            {
              "id": "DATE",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "DATE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "TIME",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "TIME",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "NAME",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "NAME",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "N. PEOPLE",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "N. PEOPLE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "PHONE",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "PHONE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "CALLED",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "CALLED",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1lQh-199bQe-HKwmVI_6cS-Xv1OiGo1B4-OpR6kbNg7E/edit#gid=0",
          "cachedResultName": "Foglio1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1lQh-199bQe-HKwmVI_6cS-Xv1OiGo1B4-OpR6kbNg7E",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1lQh-199bQe-HKwmVI_6cS-Xv1OiGo1B4-OpR6kbNg7E/edit?usp=drivesdk",
          "cachedResultName": "Booking appointments"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "JYR6a64Qecd6t8Hb",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "dda55711-3ade-40ea-bddf-618aa56f6650",
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Grok 4": {
      "ai_languageModel": [
        [
          {
            "node": "Secretary Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Make a call": {
      "main": [
        [
          {
            "node": "Update reservation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Secretary Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Secretary Agent": {
      "main": [
        [
          {
            "node": "Make a call",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get daily reservations",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update reservation": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get daily reservations": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Execute workflow’": {
      "main": [
        [
          {
            "node": "Get daily reservations",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

中级 - 客服机器人, 多模态 AI

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
中级
节点数量12
分类2
节点类型9
难度说明

适合有一定经验的用户,包含 6-15 个节点的中等复杂度工作流

作者

Full-stack Web Developer based in Italy specialising in Marketing & AI-powered automations. For business enquiries, send me an email at info@n3w.it or add me on Linkedin.com/in/davideboizza

外部链接
在 n8n.io 查看

分享此工作流