TallyフォームのSlack通知を自動化

中級

これはLead Generation分野の自動化ワークフローで、11個のノードを含みます。主にSet, Wait, Gmail, Webhook, Airtableなどのノードを使用。 Tallyフォームの自動化:Airtableで保存し、Slackで通知

前提条件
  • Googleアカウント + Gmail API認証情報
  • HTTP Webhookエンドポイント(n8nが自動生成)
  • Airtable API Key

カテゴリー

ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "csdsQBzjewFU2R9L",
  "meta": {
    "instanceId": "e95c8554b03e2c16a5c8c44cc7d45f6192b966fba75d5438d1201989ceff13e2",
    "templateCredsSetupCompleted": true
  },
  "name": "Automate a Tally Form slack",
  "tags": [],
  "nodes": [
    {
      "id": "209736b4-b77d-445f-a592-67408ad188d5",
      "name": "フィールド編集",
      "type": "n8n-nodes-base.set",
      "position": [
        1060,
        1060
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "0186e9c9-424c-4ad8-8382-1614cf48c9d1",
              "name": "full_name",
              "type": "string",
              "value": "={{ $json.body.data.fields[0].value }}"
            },
            {
              "id": "e5559efc-1458-48e6-a207-f7fea896e930",
              "name": "company_name",
              "type": "string",
              "value": "={{ $json.body.data.fields[1].value }}"
            },
            {
              "id": "bbc04ed4-a8f7-4778-bfdc-038c637320fa",
              "name": "job_title",
              "type": "string",
              "value": "={{ $json.body.data.fields[2].value }}"
            },
            {
              "id": "8175addd-ef95-45f9-b307-b218d6ede2be",
              "name": "email",
              "type": "string",
              "value": "={{ $json.body.data.fields[3].value }}"
            },
            {
              "id": "f017c0bd-bd5d-4a5e-967f-bb27c514f5ee",
              "name": "phone_number",
              "type": "string",
              "value": "={{ $json.body.data.fields[4].value }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "7d8cefdb-3eaf-40b5-b837-429fd219daa8",
      "name": "待機",
      "type": "n8n-nodes-base.wait",
      "position": [
        1960,
        1060
      ],
      "webhookId": "0401220d-037c-4e73-96ad-8ed99c768d6e",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "62227d14-34a0-42f0-986f-cdf88720c60b",
      "name": "Webhook : Tally",
      "type": "n8n-nodes-base.webhook",
      "position": [
        620,
        1060
      ],
      "webhookId": "20bc0a59-b424-454d-9d49-4504e6b29fa2",
      "parameters": {
        "path": "20bc0a59-b424-454d-9d49-4504e6b29fa2",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2
    },
    {
      "id": "6038f0a2-0787-4693-88b9-57313d81b526",
      "name": "Airtable : レコード作成",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1600,
        1060
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appPk6zfIQ1EbBq43",
          "cachedResultUrl": "https://airtable.com/appPk6zfIQ1EbBq43",
          "cachedResultName": "Client Requests"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblLkuoQ9AYsAQ0io",
          "cachedResultUrl": "https://airtable.com/appPk6zfIQ1EbBq43/tblLkuoQ9AYsAQ0io",
          "cachedResultName": "Client Requests"
        },
        "columns": {
          "value": {
            "Email": "={{ $json.email }}",
            "Full Name": "={{ $json.full_name }}",
            "Job Title": "={{ $json.job_title }}",
            "Company Name": "={{ $json.company_name }}",
            "Phone Number": "={{ $json.phone_number }}"
          },
          "schema": [
            {
              "id": "Full Name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Full Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Title",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Job Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Phone Number",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Phone Number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Submission Date",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Submission Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "fbET2GdSoJjK5Idu",
          "name": "Airtable Personal Access Token account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "57f2a3bb-b87f-4137-ab7d-ba60f257d74d",
      "name": "GMAIL : メッセージ送信",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2360,
        1060
      ],
      "webhookId": "b01196a3-c7e2-4933-b8ae-bb1e0820f703",
      "parameters": {
        "sendTo": "={{ $json.fields.Email }}",
        "message": "=<p>Hi {{ $json.fields['Full Name'] }},</p>\n\n<p>Thanks for reaching out! We’ve received your request and our team will get back to you as soon as possible.</p>\n\n<p><strong>Here’s a quick summary:</strong></p>\n<ul>\n\n <li><strong>Company:</strong>{{ $json.fields['Company Name'] }} </li>\n  <li><strong>Job Title:</strong> {{ $json.fields['Job Title'] }}</li>\n\n<p>We’ll be in touch very soon!</p>\n<p>— The Team</p>\n\n",
        "options": {},
        "subject": "Thanks for reaching out!"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "FKD43HaVeVoUXOi0",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "b3d40a1e-61cf-499f-9ec5-41f05e65237b",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        620
      ],
      "parameters": {
        "width": 200,
        "height": 400,
        "content": "## 🎯 Workflow Goal\n\n**Still manually checking form responses in your inbox?**\n\n**What if every submission landed neatly in Airtable — and you got a clean Slack message instantly?**\n\nThat’s exactly what this workflow does.\nNo code, no delay — just a smooth automation:\n\n**Tally → Airtable → Slack**"
      },
      "typeVersion": 1
    },
    {
      "id": "9eccf3c9-5d89-465e-8647-4b3f677b56d2",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        0
      ],
      "parameters": {
        "color": 3,
        "height": 1220,
        "content": "## 🧩 Step 1 – Connect Tally to n8n\n\n**Let’s start by connecting your Tally form to n8n using a webhook.**\n\nThis will trigger your workflow every time someone submits the form — no manual checking needed.\n\n### 🔧 What we’re setting up\n- A **Webhook** node that receives form responses from Tally.\n\n### ✅ How to set it up\n1. Add a **Webhook** node in n8n.\n2. Set the **HTTP Method** to `POST`.\n3. Copy the webhook URL.\n4. Go to your Tally form settings → **Integrations** → **Webhooks**.\n5. Paste your webhook URL and activate it.\n\nNow every new submission will ping n8n automatically.\n\n### 📦 Output\nThe full form response arrives in `{{$json.fields}}`, as an array of objects like:\n\n```json\n[\n  {\n    \"label\": \"Full Name\",\n    \"value\": \"Jane Doe\"\n  },\n  {\n    \"label\": \"Email\",\n    \"value\": \"jane.doe@example.com\"\n  }\n]"
      },
      "typeVersion": 1
    },
    {
      "id": "4859c72a-fe22-4e94-b78e-b036cc398acb",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        980,
        160
      ],
      "parameters": {
        "color": 6,
        "width": 280,
        "height": 1060,
        "content": "## 🛠 Step 2 – Clean the Tally response\n\n**Now that Tally sends raw data to n8n, we need to make it usable.**\n\nLet’s transform that messy `fields[]` array into a clean object that Airtable and Slack can read easily.\n\n### 🔧 What we’re setting up\n- A **Set** or **Function** node to restructure the data into readable fields.\n\n### ✅ How to set it up\n1. Add a **Function** node (or use **Set** if you don’t want to write code).\n2. Paste this code inside:\n\n```js\nconst out = {};\nfor (const field of $json.fields) {\n  out[field.label] = field.value;\n}\nreturn [{ json: out }];\n\nThis turns the array into a simple object.\n\n📦 Output\nNow you can use the values easily:\n\n{{$json[\"Full Name\"]}}\n\n{{$json[\"Email\"]}}\n\n{{$json[\"Phone\"]}}\n\nSuper clean, super useful.\n\nyaml\nCopier\nModifier\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b635a05b-fd2c-46f7-a211-bf90ff379556",
      "name": "付箋3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1520,
        200
      ],
      "parameters": {
        "color": 2,
        "width": 280,
        "height": 1020,
        "content": "## 🧱 Step 3 – Send the cleaned data to Airtable\n\n**Now that your Tally response is nice and tidy, it’s time to store it.**\n\nWe’re going to create a new record in your Airtable base using the structured data from Step 2.\n\n### 🔧 What we’re setting up\n- An **Airtable > Create Record** node that saves each submission as a new row.\n\n### ✅ How to set it up\n1. Add an **Airtable node** and choose the **“Create Record”** operation.\n2. Connect your Airtable account.\n3. Select the correct **Base** and **Table**.\n4. Map the cleaned fields to your Airtable columns:\n\n- Name → `{{$json[\"Full Name\"]}}`\n- Email → `{{$json[\"Email\"]}}`\n- Phone → `{{$json[\"Phone\"]}}`\n- Company → `{{$json[\"Company\"]}}`\n- Anything else you need\n\n### 📦 Output\nEach time someone fills out the form, a new Airtable row is created automatically."
      },
      "typeVersion": 1
    },
    {
      "id": "125c7959-e049-478b-9f3d-b8de998a7754",
      "name": "付箋4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1920,
        320
      ],
      "parameters": {
        "color": 4,
        "width": 600,
        "height": 900,
        "content": "## 📬 Step 4 – Send an automatic Slack message\n\n**After storing the data in Airtable, let’s notify your team — instantly.**\n\nWe’ll send a professional Slack message each time someone fills out your Tally form.\n\n### 🔧 What we’re setting up\n- A **Slack > Send a Message** node to post in your chosen channel or send a DM.\n\n### ✅ How to set it up\n1. Add a **Slack node** and choose the **“Send Message”** operation.\n2. Connect your Slack account.\n3. Pick the right **channel** or user.\n4. Customize the message using the cleaned data:\n\n```plaintext\n🎉 New form submission!\n\n👤 Name: {{$json[\"Full Name\"]}}\n📧 Email: {{$json[\"Email\"]}}\n📞 Phone: {{$json[\"Phone\"]}}\n🏢 Company: {{$json[\"Company\"]}}\n(Optional) Use Markdown formatting in your message for extra clarity.\n\n📦 Output\nYou’ll receive a neat Slack message every time — no inbox clutter, no delay.\n\nyaml\nCopier\nModifier\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ccfd0ac3-6a74-4efe-bf2f-e444a9d5f699",
      "name": "付箋5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2600,
        880
      ],
      "parameters": {
        "width": 320,
        "height": 340,
        "content": "## ✅ Step 5 – Workflow complete\n\n**And that’s it!** You’ve just built a full automation that captures Tally form responses, cleans the data, stores it in Airtable, and sends a custom Slack message — all on autopilot.\n\nNo more copy-paste. No more missed submissions.\n\nNow every lead is organized, stored, and shared with your team… instantly.\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "0fe76154-7e4f-4ff0-bc97-7bcffb1f9a4b",
  "connections": {
    "7d8cefdb-3eaf-40b5-b837-429fd219daa8": {
      "main": [
        [
          {
            "node": "57f2a3bb-b87f-4137-ab7d-ba60f257d74d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "209736b4-b77d-445f-a592-67408ad188d5": {
      "main": [
        [
          {
            "node": "6038f0a2-0787-4693-88b9-57313d81b526",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "62227d14-34a0-42f0-986f-cdf88720c60b": {
      "main": [
        [
          {
            "node": "209736b4-b77d-445f-a592-67408ad188d5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6038f0a2-0787-4693-88b9-57313d81b526": {
      "main": [
        [
          {
            "node": "7d8cefdb-3eaf-40b5-b837-429fd219daa8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

中級 - リード獲得

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
中級
ノード数11
カテゴリー1
ノードタイプ6
難易度説明

経験者向け、6-15ノードの中程度の複雑さのワークフロー

作成者
Baptiste Fort

Baptiste Fort

@baptistefort

👋 I'm Baptiste Fort. What if automating was simply our way of taking back control in a world that's moving too fast? I build workflows that are simple, useful — sometimes invisible lol. Automation isn’t cheating. It’s just being one step ahead.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34