AutomationFlowsData & Sheets › Config Phone Workflow

Config Phone Workflow

Config Phone Workflow. Uses httpRequest, googleSheets. Webhook trigger; 9 nodes.

Webhook trigger★★★★☆ complexity9 nodesHTTP RequestGoogle Sheets
Data & Sheets Trigger: Webhook Nodes: 9 Complexity: ★★★★☆ Added:

This workflow follows the Google Sheets → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Config Phone Workflow",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "2b091cb3-0f71-4f23-b4de-e5456b1e0a36",
        "options": {
          "responseMode": "responseNode"
        }
      },
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2.1,
      "position": [
        320,
        240
      ],
      "id": "phone-webhook",
      "name": "Config Phone Webhook"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict"
          },
          "conditions": [
            {
              "id": "check-phone-valid",
              "leftValue": "={{ $json.body.phoneNumber }}",
              "rightValue": "",
              "operator": {
                "type": "string",
                "operation": "notEmpty"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        540,
        240
      ],
      "id": "validate-phone",
      "name": "Validate Phone"
    },
    {
      "parameters": {
        "jsCode": "for (const item of $input.all()) {\n  const configDate = item.json.body.configDate || \"\";\n  const dateObj = new Date(configDate);\n  item.json.formattedDate = dateObj.toLocaleDateString('ar-EG');\n  item.json.formattedTime = dateObj.toLocaleTimeString('ar-EG', { hour: '2-digit', minute: '2-digit' });\n  item.json.dateOnly = configDate.substring(0, 10);\n}\nreturn $input.all();"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        760,
        140
      ],
      "id": "format-date-phone",
      "name": "Format Date"
    },
    {
      "parameters": {
        "mode": "raw",
        "jsonOutput": "={\n  \"message\": \"\u062a\u0648\u062c\u064a\u0647 \u062c\u062f\u064a\u062f \u2705    \u0627\u0644\u0637\u0627\u0644\u0628: {{ $('Config Phone Webhook').item.json.body.studentName }}    \u0627\u0644\u0645\u0648\u0638\u0641: {{ $('Config Phone Webhook').item.json.body.employeeName }}    \u0631\u0642\u0645 \u0627\u0644\u0647\u0627\u062a\u0641: {{ $('Config Phone Webhook').item.json.body.phoneNumber }}    \u0627\u0644\u062a\u0627\u0631\u064a\u062e: {{ $json.formattedDate }}    \u0627\u0644\u0648\u0642\u062a: {{ $json.formattedTime }}\"\n}",
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        980,
        140
      ],
      "id": "prepare-phone-message",
      "name": "Prepare WhatsApp Message"
    },
    {
      "parameters": {
        "jsCode": "for (const item of $input.all()) {\n  let val = item.json.message || \"\";\n  val = val.replace(/ {4}/g, \"\\n\");\n  item.json.formattedMessage = val;\n}\nreturn $input.all();"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1200,
        140
      ],
      "id": "format-phone-message",
      "name": "Format Message"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "={{ $env.WASSENGER_API_URL }}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Token",
              "value": "={{ $env.WASSENGER_API_TOKEN }}"
            }
          ]
        },
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "group",
              "value": "={{ $env.WASSENGER_GROUP_ID }}"
            },
            {
              "name": "message",
              "value": "={{ $json.formattedMessage }}"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1420,
        140
      ],
      "id": "send-whatsapp-phone",
      "name": "Send WhatsApp to Group"
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "={{ $env.GOOGLE_SHEETS_DOCUMENT_ID }}",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Config_Log",
          "mode": "name"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "\u0627\u0644\u0637\u0627\u0644\u0628": "={{ $('Config Phone Webhook').item.json.body.studentName }}",
            "\u0627\u0644\u0645\u0648\u0638\u0641": "={{ $('Config Phone Webhook').item.json.body.employeeName }}",
            "\u0631\u0642\u0645 \u0627\u0644\u0647\u0627\u062a\u0641": "={{ $('Config Phone Webhook').item.json.body.phoneNumber }}",
            "\u0627\u0644\u062a\u0627\u0631\u064a\u062e": "={{ $('Format Date').item.json.dateOnly }}",
            "\u0648\u0642\u062a \u0627\u0644\u0625\u0646\u0634\u0627\u0621": "={{ new Date().toISOString() }}"
          }
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "position": [
        1640,
        140
      ],
      "id": "save-to-sheets",
      "name": "Save to Google Sheets"
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={ \"sendmessage\": \"true\", \"textdata\": \"\u062a\u0645 \u062d\u0641\u0638 \u0631\u0642\u0645 \u0627\u0644\u0647\u0627\u062a\u0641 \u0628\u0646\u062c\u0627\u062d\" }",
        "options": {}
      },
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        1860,
        140
      ],
      "id": "respond-phone-success",
      "name": "Respond Success"
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={ \"sendmessage\": \"errorvalue\", \"textdata\": \"\u0631\u0642\u0645 \u0627\u0644\u0647\u0627\u062a\u0641 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\" }",
        "options": {}
      },
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        760,
        340
      ],
      "id": "respond-phone-error",
      "name": "Respond Error"
    }
  ],
  "connections": {
    "Config Phone Webhook": {
      "main": [
        [
          {
            "node": "Validate Phone",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate Phone": {
      "main": [
        [
          {
            "node": "Format Date",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Date": {
      "main": [
        [
          {
            "node": "Prepare WhatsApp Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare WhatsApp Message": {
      "main": [
        [
          {
            "node": "Format Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Message": {
      "main": [
        [
          {
            "node": "Send WhatsApp to Group",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send WhatsApp to Group": {
      "main": [
        [
          {
            "node": "Save to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save to Google Sheets": {
      "main": [
        [
          {
            "node": "Respond Success",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "meta": {
    "templateCredsSetupCompleted": true
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Config Phone Workflow. Uses httpRequest, googleSheets. Webhook trigger; 9 nodes.

Source: https://github.com/mamoun-CS/codex-college/blob/c58549f895bb62e3b3a3c44c085e6718c6037742/n8n-workflows/config-phone-workflow.json — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

[SANTOBET] FLUXO TODO - BACKUP. Uses googleSheets, httpRequest, googleSheetsTrigger. Webhook trigger; 57 nodes.

Google Sheets, HTTP Request, Google Sheets Trigger
Data & Sheets

FLUXO DISPARO DATA E HORA. Uses itemLists, googleSheets, httpRequest. Webhook trigger; 48 nodes.

Item Lists, Google Sheets, HTTP Request
Data & Sheets

This workflow allows you to accept online payments via YooKassa and log both orders and transactions in Google Sheets — all without writing a single line of code. It supports full payment flow: produc

Google Sheets, HTTP Request
Data & Sheets

Transform your n8n instance management with this advanced automation system featuring artificial intelligence-driven workflow selection. This template provides comprehensive maintenance operations wit

n8n, HTTP Request, Google Sheets +1
Data & Sheets

Nexus_v6(ล่าสุดจริงๆ)ล่าสุดไกไก. Uses googleSheets, httpRequest. Webhook trigger; 41 nodes.

Google Sheets, HTTP Request