{
  "id": "4L7TQtSkG0BmP2zn",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Route Typeform responses to Google Sheets, Slack, and Gmail based on answer value",
  "tags": [
    {
      "id": "6PTppW1Ohw2kF9F8",
      "name": "Reply Handler Template",
      "createdAt": "2026-02-14T18:15:49.051Z",
      "updatedAt": "2026-02-14T18:15:49.051Z"
    }
  ],
  "nodes": [
    {
      "id": "9d236ea2-6d18-4c1d-8df0-1f5a50635461",
      "name": "Typeform Trigger",
      "type": "n8n-nodes-base.typeformTrigger",
      "position": [
        768,
        496
      ],
      "parameters": {
        "formId": "<__PLACEHOLDER_VALUE__Your Typeform form ID__>"
      },
      "typeVersion": 1
    },
    {
      "id": "b9ccb293-d27d-42bd-9a0e-11bdcf4fbdac",
      "name": "Set Response Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        992,
        496
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "name",
              "type": "string",
              "value": "={{ $json.What is your name? || $json.Name || '' }}"
            },
            {
              "id": "id-2",
              "name": "email",
              "type": "string",
              "value": "={{ $json.What is your email? || $json.Email || '' }}"
            },
            {
              "id": "id-3",
              "name": "interest",
              "type": "string",
              "value": "={{ $json.What are you interested in? || $json.Interest || '' }}"
            },
            {
              "id": "id-4",
              "name": "submitted_at",
              "type": "string",
              "value": "={{ $json.submittedAt || $now.toISO() }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b6b5e22d-6c9b-4a63-98e5-a41865e5565e",
      "name": "Log to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1216,
        496
      ],
      "parameters": {
        "columns": {
          "value": {
            "name": "={{ $json.name }}",
            "email": "={{ $json.email }}",
            "interest": "={{ $json.interest }}",
            "submitted_at": "={{ $json.submitted_at }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Responses"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__Google Sheet ID for responses__>"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "d3dbf8a3-9577-4dff-9223-3f782025334e",
      "name": "Send Confirmation Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1664,
        688
      ],
      "parameters": {
        "sendTo": "={{ $json.email }}",
        "message": "=Hi {{ $json.name }},\n\nThank you for your submission. Our team will review your request and get back to you within 24 hours.\n\nBest regards",
        "options": {},
        "subject": "Thanks for reaching out!"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "cf6aa911-2346-4e22-8a6a-af0170d27ea8",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        144,
        112
      ],
      "parameters": {
        "color": 4,
        "width": 580,
        "height": 500,
        "content": "## How it works\n\nThis workflow listens for new Typeform submissions via a webhook. When a response comes in, it extracts the key fields (name, email, interest), logs every submission to a Google Sheets spreadsheet, then routes the response based on what the person is interested in. Pricing inquiries go to your sales Slack channel, support questions go to the support channel, and all other submissions get a default fallback. Every respondent also receives a confirmation email via Gmail.\n\n## Setup steps\n\n1. Connect your Typeform account and set the form ID in the trigger node\n2. Adjust the field mappings in the Set Response Fields node to match your form's question labels\n3. Connect your Google Sheets account and set the spreadsheet ID for logging\n4. Create a sheet called \"Responses\" with columns: name, email, interest, submitted_at\n5. Connect your Slack workspace and set the channel IDs for sales and support\n6. Adjust the Switch node conditions to match your form's answer values\n7. Connect your Gmail account for sending confirmation emails\n8. Activate the workflow"
      },
      "typeVersion": 1
    },
    {
      "id": "5db41d6a-cc41-4af7-ad65-f3097c58c297",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        768,
        352
      ],
      "parameters": {
        "color": 7,
        "width": 440,
        "height": 96,
        "content": "## Receive & Log\nTypeform webhook receives submissions, extracts fields, and logs them to Google Sheets."
      },
      "typeVersion": 1
    },
    {
      "id": "f630f3cd-f9ed-4150-9160-88400ffbf1fb",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1312,
        160
      ],
      "parameters": {
        "color": 7,
        "width": 480,
        "height": 96,
        "content": "## Route & Notify\nRoutes responses to the right Slack channel based on interest and sends a confirmation email to every respondent."
      },
      "typeVersion": 1
    },
    {
      "id": "e6b762a0-c9aa-4204-9f54-c025f90f3d81",
      "name": "Route by Interest",
      "type": "n8n-nodes-base.switch",
      "position": [
        1440,
        480
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "or",
                "conditions": [
                  {
                    "id": "cond-1",
                    "operator": {
                      "type": "string",
                      "operation": "contains"
                    },
                    "leftValue": "={{ $json.interest }}",
                    "rightValue": "pricing"
                  },
                  {
                    "id": "cond-2",
                    "operator": {
                      "type": "string",
                      "operation": "contains"
                    },
                    "leftValue": "={{ $json.interest }}",
                    "rightValue": "sales"
                  },
                  {
                    "id": "cond-3",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.interest }}",
                    "rightValue": "Pricing"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "or",
                "conditions": [
                  {
                    "id": "cond-4",
                    "operator": {
                      "type": "string",
                      "operation": "contains"
                    },
                    "leftValue": "={{ $json.interest }}",
                    "rightValue": "support"
                  },
                  {
                    "id": "cond-5",
                    "operator": {
                      "type": "string",
                      "operation": "contains"
                    },
                    "leftValue": "={{ $json.interest }}",
                    "rightValue": "help"
                  },
                  {
                    "id": "cond-6",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.interest }}",
                    "rightValue": "Support"
                  }
                ]
              }
            }
          ]
        },
        "options": {
          "ignoreCase": true,
          "fallbackOutput": "extra"
        }
      },
      "typeVersion": 3.3
    },
    {
      "id": "f731d94c-000c-4ba4-8248-935a9121741a",
      "name": "Notify Sales Channel",
      "type": "n8n-nodes-base.slack",
      "position": [
        1664,
        496
      ],
      "parameters": {
        "text": "=New pricing inquiry from {{ $json.name }} ({{ $json.email }}). Interest: {{ $json.interest }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__Sales Slack channel ID__>"
        },
        "otherOptions": {}
      },
      "typeVersion": 2.3
    },
    {
      "id": "5895cc01-9106-46c9-84ee-f91e3fc68907",
      "name": "Notify Support Channel",
      "type": "n8n-nodes-base.slack",
      "position": [
        1664,
        304
      ],
      "parameters": {
        "text": "=New support request from {{ $json.name }} ({{ $json.email }}). Interest: {{ $json.interest }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__Support Slack channel ID__>"
        },
        "otherOptions": {}
      },
      "typeVersion": 2.3
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "893f4e6e-3281-45bf-8c87-a5809a6b0c3e",
  "connections": {
    "Typeform Trigger": {
      "main": [
        [
          {
            "node": "Set Response Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Interest": {
      "main": [
        [
          {
            "node": "Notify Sales Channel",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Notify Support Channel",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send Confirmation Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Response Fields": {
      "main": [
        [
          {
            "node": "Log to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log to Google Sheets": {
      "main": [
        [
          {
            "node": "Route by Interest",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}