Changement de statut de la commande Airtable vers la notification SMS Twilio

Intermédiaire

Ceci est unSupport Chatbotworkflow d'automatisation du domainecontenant 12 nœuds.Utilise principalement des nœuds comme If, Set, Merge, Twilio, Airtable. Notification par SMS Twilio lors du changement d'état de la commande Airtable

Prérequis
  • Clé API Airtable
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "meta": {
    "instanceId": "c8c9ba5d3eb26ae47a06d24ff164a01c0d73ed4753a74903c2bb609d434a0f6b",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "0f9a301c-3c4e-4b93-9acb-aaac7dc71767",
      "name": "Surveiller les changements de statut de commande",
      "type": "n8n-nodes-base.airtableTrigger",
      "position": [
        560,
        240
      ],
      "parameters": {
        "baseId": {
          "__rl": true,
          "mode": "url",
          "value": "https://airtable.com/appaeASO1AZV62pLI/tblOkTpwjGgApgnDD/viw5KFPiq3xMvzrrq"
        },
        "tableId": {
          "__rl": true,
          "mode": "url",
          "value": "https://airtable.com/appaeASO1AZV62pLI/tblOkTpwjGgApgnDD/viw5KFPiq3xMvzrrq?blocks=hide"
        },
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerField": "Created",
        "authentication": "airtableTokenApi",
        "additionalFields": {}
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "lkxZWCd27TyEahCT",
          "name": "Airtable Personal Access Token account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b3fd2c55-69bb-4deb-960b-4fce09c97a6a",
      "name": "Config",
      "type": "n8n-nodes-base.set",
      "position": [
        768,
        240
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e60a21c7-574a-4579-9e7f-57cf6b9f50c9",
              "name": "orders_table_url",
              "type": "string",
              "value": "https://airtable.com/appaeASO1AZV62pLI/tblhBgneMJ0mEPHKy/viw2ySMTX32PaQmXn?blocks=hide"
            },
            {
              "id": "d40b4f55-a7e1-4735-9d6f-d5d3f88ba8ec",
              "name": "notifications_table_url",
              "type": "string",
              "value": "https://airtable.com/appaeASO1AZV62pLI/tblOkTpwjGgApgnDD/viw5KFPiq3xMvzrrq?blocks=hide"
            },
            {
              "id": "bad7583e-9699-4fec-a6f9-697f595c093e",
              "name": "scripts_table_url",
              "type": "string",
              "value": "https://airtable.com/appaeASO1AZV62pLI/tbltfdPxUeOVGbb1l/viwFwsRKskE2F5b67?blocks=hide"
            },
            {
              "id": "e39b8ae5-c53a-4186-9ec5-6c352cd1d7e4",
              "name": "from_number",
              "type": "string",
              "value": "+18565883517"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "4be3c39c-6be2-49cd-81bc-368a501eb9cd",
      "name": "Combiner Config avec les données de commande",
      "type": "n8n-nodes-base.merge",
      "position": [
        1328,
        16
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.2
    },
    {
      "id": "70b22256-8e20-4eb5-99df-eef81da8ef12",
      "name": "Préparer le contenu du SMS",
      "type": "n8n-nodes-base.set",
      "position": [
        1520,
        16
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "463668f7-11f7-48d2-91c3-635a78637c7f",
              "name": "Message",
              "type": "string",
              "value": "=Hi {{ $json.fields['First Name (from Order)'][0] }}, Your order status changed to: {{ $json.fields['Order Status'] }}. Any questions, call us!"
            },
            {
              "id": "3ddbf667-aa74-4ddb-b12e-6bf1294fdaa3",
              "name": "To",
              "type": "string",
              "value": "={{ $json.fields['Customer Phone Number (from Order)'][0] }}"
            },
            {
              "id": "609250bc-7ae0-4213-9611-a60b3ac63eaa",
              "name": "From",
              "type": "string",
              "value": "={{ $json.from_number }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a4a0103e-9fe8-4076-bee8-6c8c34a3fae6",
      "name": "Envoyer le SMS de statut de commande",
      "type": "n8n-nodes-base.twilio",
      "onError": "continueRegularOutput",
      "position": [
        1728,
        16
      ],
      "parameters": {
        "to": "={{ $json.To }}",
        "from": "={{ $json.From }}",
        "message": "={{ $json.Message }}",
        "options": {}
      },
      "credentials": {
        "twilioApi": {
          "id": "JgMpoxsNKUfVKqN1",
          "name": "Twilio account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "cd039e97-d4f4-4d67-bc1b-f972d79ba2d5",
      "name": "Vérifier la livraison du SMS",
      "type": "n8n-nodes-base.if",
      "position": [
        1936,
        16
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "3f814939-8cea-4114-aed8-9f4202c7eb80",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ !$json.error }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "d85bf204-a0b4-4f00-aa04-2704ea7787af",
      "name": "Filtrer les notifications en attente",
      "type": "n8n-nodes-base.if",
      "position": [
        944,
        240
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "223f9988-650a-4fcc-9a65-2f240c4b3dce",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.fields['Message Status'] }}",
              "rightValue": "To send"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b079226c-e475-438e-8fa8-46b82d129a21",
      "name": "Marquer la notification comme en cours d'envoi",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1184,
        192
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $('Config').item.json.notifications_table_url }}"
        },
        "table": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $('Config').item.json.notifications_table_url }}"
        },
        "columns": {
          "value": {
            "id": "={{ $('Config').item.json.id }}",
            "Message Status": "Sending..."
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Order Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "New",
                  "value": "New"
                },
                {
                  "name": "Confirmed",
                  "value": "Confirmed"
                },
                {
                  "name": "Shipped",
                  "value": "Shipped"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Order Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Order",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Order",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Message Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "To send",
                  "value": "To send"
                },
                {
                  "name": "Sending...",
                  "value": "Sending..."
                },
                {
                  "name": "Success",
                  "value": "Success"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Message Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Created",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "lkxZWCd27TyEahCT",
          "name": "Airtable Personal Access Token account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "eff63937-f30e-4d03-8c14-07091abb0bbc",
      "name": "Marquer la notification comme réussie",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2176,
        -80
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $('Config').item.json.notifications_table_url }}"
        },
        "table": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $('Config').item.json.notifications_table_url }}"
        },
        "columns": {
          "value": {
            "id": "={{ $('Config').item.json.id }}",
            "Message Status": "Success"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Order Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "New",
                  "value": "New"
                },
                {
                  "name": "Confirmed",
                  "value": "Confirmed"
                },
                {
                  "name": "Shipped",
                  "value": "Shipped"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Order Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Order",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Order",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Message Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "To send",
                  "value": "To send"
                },
                {
                  "name": "Sending...",
                  "value": "Sending..."
                },
                {
                  "name": "Success",
                  "value": "Success"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Message Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Created",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "lkxZWCd27TyEahCT",
          "name": "Airtable Personal Access Token account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "35bb7ae7-8b76-4eb4-8be3-c9f270887039",
      "name": "Marquer la notification comme échouée",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2176,
        128
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $('Config').item.json.notifications_table_url }}"
        },
        "table": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $('Config').item.json.notifications_table_url }}"
        },
        "columns": {
          "value": {
            "id": "={{ $('Config').item.json.id }}",
            "Message Status": "Error"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Order Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "New",
                  "value": "New"
                },
                {
                  "name": "Confirmed",
                  "value": "Confirmed"
                },
                {
                  "name": "Shipped",
                  "value": "Shipped"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Order Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Order",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Order",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Message Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "To send",
                  "value": "To send"
                },
                {
                  "name": "Sending...",
                  "value": "Sending..."
                },
                {
                  "name": "Success",
                  "value": "Success"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Message Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Created",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "lkxZWCd27TyEahCT",
          "name": "Airtable Personal Access Token account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "c42f9334-652d-485b-aab2-08380db4af6f",
      "name": "Assistant de configuration",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        64
      ],
      "parameters": {
        "width": 272,
        "content": "## Configure here 👇👇\nUpdate these URLs to match your Airtable base:\n- orders_table_url\n- notifications_table_url\n- scripts_table_url (optional)\n- from_number (your Twilio number)"
      },
      "typeVersion": 1
    },
    {
      "id": "doc-note-1759930148724",
      "name": "Description du workflow",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -140,
        -250
      ],
      "parameters": {
        "width": 600,
        "height": 1100,
        "content": "## Workflow Overview\n\nThis workflow automatically sends personalized SMS notifications to customers when their order status changes in Airtable. Perfect for e-commerce businesses, this automation monitors your order management base and instantly notifies customers about status updates like \"Confirmed\" or \"Shipped.\"\n\nWhen an order status changes in your Orders table, a notification record is created in a Status Notifications table. The workflow monitors this table every minute, prepares personalized messages using the customer's name and order status, sends the SMS via Twilio, and updates the delivery status back to Airtable for complete tracking.\n\n### First Setup\n\n1. **Duplicate the Airtable Base**: Copy the [Order Management Base template](https://airtable.com/appaeASO1AZV62pLI/shrBP0lmBNXk0G7Vf) to your Airtable workspace\n2. **Connect Airtable**: Add your Airtable Personal Access Token credentials to the workflow nodes\n3. **Set up Twilio**: Create a [Twilio account](https://www.twilio.com) (free trial available) and obtain your Account SID, Auth Token, and Twilio phone number\n4. **Connect Twilio**: Add your Twilio credentials to the \"Send Order Status SMS\" node\n\n### Configuration\n\nIn the **Config** node, update these values with your own:\n- `notifications_table_url`: URL of your duplicated Status Notifications table\n- `orders_table_url`: URL of your Orders table (optional, for reference)\n- `scripts_table_url`: URL of your scripts table (optional)\n- `from_number`: Your Twilio phone number\n\nCustomize the SMS message template in the \"Prepare SMS Content\" node to match your brand voice and include additional order details as needed."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {
    "Monitor Order Status Changes": [
      {
        "id": "rec5IBu6cQyupk23H",
        "fields": {
          "Order": [
            "recLG83ejiTyKDS33"
          ],
          "Created": "2025-09-17T14:41:08.000Z",
          "Order Status": "Shipped",
          "Message Status": "To send",
          "First Name (from Order)": [
            "Maria"
          ],
          "Customer Phone Number (from Order)": [
            "+36303679742"
          ]
        },
        "createdTime": "2025-09-17T14:41:08.000Z"
      }
    ]
  },
  "connections": {
    "b3fd2c55-69bb-4deb-960b-4fce09c97a6a": {
      "main": [
        [
          {
            "node": "d85bf204-a0b4-4f00-aa04-2704ea7787af",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cd039e97-d4f4-4d67-bc1b-f972d79ba2d5": {
      "main": [
        [
          {
            "node": "eff63937-f30e-4d03-8c14-07091abb0bbc",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "35bb7ae7-8b76-4eb4-8be3-c9f270887039",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "70b22256-8e20-4eb5-99df-eef81da8ef12": {
      "main": [
        [
          {
            "node": "a4a0103e-9fe8-4076-bee8-6c8c34a3fae6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a4a0103e-9fe8-4076-bee8-6c8c34a3fae6": {
      "main": [
        [
          {
            "node": "cd039e97-d4f4-4d67-bc1b-f972d79ba2d5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d85bf204-a0b4-4f00-aa04-2704ea7787af": {
      "main": [
        [
          {
            "node": "4be3c39c-6be2-49cd-81bc-368a501eb9cd",
            "type": "main",
            "index": 0
          },
          {
            "node": "b079226c-e475-438e-8fa8-46b82d129a21",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b079226c-e475-438e-8fa8-46b82d129a21": {
      "main": [
        [
          {
            "node": "4be3c39c-6be2-49cd-81bc-368a501eb9cd",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "0f9a301c-3c4e-4b93-9acb-aaac7dc71767": {
      "main": [
        [
          {
            "node": "b3fd2c55-69bb-4deb-960b-4fce09c97a6a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4be3c39c-6be2-49cd-81bc-368a501eb9cd": {
      "main": [
        [
          {
            "node": "70b22256-8e20-4eb5-99df-eef81da8ef12",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Intermédiaire - Chatbot de support

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds12
Catégorie1
Types de nœuds7
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Auteur
Milan Vasarhelyi - SmoothWork

Milan Vasarhelyi - SmoothWork

@vasarmilan

We help you eliminate the busywork by building compact business tools tailored to your processes. 📞: https://smoothwork.ai/book-a-call ▶️: https://www.youtube.com/@vasarmilan

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34