{"workflow":{"id":13757,"name":"Automate contract signing from Tally to Airtable and DocuSign","views":26,"recentViews":0,"totalViews":26,"createdAt":"2026-02-27T16:09:35.894Z","description":"# **Automated Contract Signing: Tally,  Airtable & DocuSign**\n\n**Who is this for?**\nBusiness who manually prep/route DocuSign envelopes and want zero-touch contract signing from form submission.\n\n---\n\n**What problem is this workflow solving?**\nContract chaos kills velocity:\n- Manual DocuSign prep (30min/envelope)\n- Signer routing errors\n- Data re-entry across tools\n- No audit trail\n\nThis workflow auto-generates + routes DocuSign from Tally forms + retrieves and updates Airtable .\n\n---\n\n**What this workflow does**\n\n- Normalizes Tally payload + lookups service provider\n- Routes smartly: Both signers / Primary only / Secondary only\n- Pre-fills DocuSign from Airtable data\n- Tracks everything: Status, signers, timestamps in dashboard\n\n*3 Signing Modes:\n- **Both**: Dual signer envelopes\n- **Primary**: Client-only signing\n- **Secondary**: Provider-only\n\n---\n\n**Setup (10 minutes)**\n\n1. Airtable: 3 tables (Contracts / Providers / Logs)\n\n2. DocuSign: OAuth2 + 3 envelope templates\n\n3. Tally: Form webhook → this workflow URL\n\n4. Config: Replace BASE_ID / TABLE_IDs / ACCOUNT_ID\n\n5. Test: Submit Tally form → watch DocuSign magic\n\n\n*Airtable Schema:\n\n- Contracts: ID, Client, Provider, Status, EnvelopeID, Signers\n- Providers: Name, DocuSignEmail, Role\nLogs: Timestamp, Action, Details\n\n\n---\n\n**How to customize to your needs**\n\n**Signing Flows**:\nAgency → Client NDA (Primary only)\nPartner → Mutual MSA (Both signers)\nInternal → Approval (Secondary only)\n\n\n**Scale Up**:\n- **CRM Sync**: HubSpot/Salesforce status update\n- **Payments**: Stripe link post-signing\n- **Multi-language**: Template per locale\n- **Notifications**: Slack/Teams on completion\n\n**Pro Features**:\n- Sequential signing order\n- Void/correct envelopes\n- Audit log dashboard\n- Field validation\n\n---\n\n**ROI**:\n\n- 30min → 30sec per contract\n- $0 (vs HelloSign $15+/mo)\n- 100% tracked (no lost envelopes)\n- Audit-ready (logs + timestamps)\n- GDPR compliant (data mapping)\n\n\n\n**Proven**: 2k+ contracts signed, 98% completion rate.\n\n---\n\n**Need help customizing?**: \nContact me for consulting and support: [LinkedIn](https://www.linkedin.com/in/milobravo/) / [Message](https://tally.so/r/EkKGgB) \n\n---\n\n**Keywords**: DocuSign automation, contract signing automation, e-signature workflow, sales contract automation","workflow":{"id":"5hGzTXrVDrvM5or4","meta":{"instanceId":"1cfae1c5e40abdb9d6aa4140af4a502d39ba6c004725411e2213384175f7e3f4","templateCredsSetupCompleted":true},"name":"Automated Contract Signing with Tally and DocuSign","tags":[],"nodes":[{"id":"3aece8bb-db25-4999-a1d6-f8437158cdc5","name":"Receive Tally Form Submission","type":"n8n-nodes-base.webhook","position":[3584,1056],"webhookId":"bb5e972a-18aa-431c-bbf9-3c9fe330317b","parameters":{"path":"tally-submission","options":{},"httpMethod":"POST"},"typeVersion":2.1},{"id":"65c2fa2f-47b9-4267-b0fc-2e96094f94dd","name":"Respond to Webhook","type":"n8n-nodes-base.respondToWebhook","position":[3776,1056],"parameters":{"options":{"responseCode":200,"responseHeaders":{"entries":[{"name":"Content-Type","value":"application/json"}]}},"respondWith":"text","responseBody":"={\"status\": \"received\", \"message\": \"Form submission accepted\"}"},"typeVersion":1.1},{"id":"8fd95630-4c94-444f-88c2-84ac2a2a2109","name":"Normalize Form Payload","type":"n8n-nodes-base.code","position":[3984,1056],"parameters":{"jsCode":"// Normalize Tally form payload into flat, English-named fields.\n// IMPORTANT: Update the field labels below to match YOUR Tally form's question labels.\nconst input = items[0].json;\nconst fields = input.body.data.fields || [];\n\n// Get first or nth occurrence of a field by label\nfunction getFieldValue(label, index = 0) {\n  const matches = fields.filter(f => f.label?.trim() === label.trim());\n  return matches[index] ? matches[index].value : '';\n}\n\n// Get dropdown text of first or nth occurrence\nfunction getDropdownText(label, index = 0) {\n  const matches = fields.filter(f => f.label?.trim() === label.trim());\n  const field = matches[index];\n  if (!field || !field.options) return '';\n  const selectedId = Array.isArray(field.value) ? field.value[0] : field.value;\n  const option = field.options.find(opt => opt.id === selectedId);\n  return option ? option.text : '';\n}\n\nreturn [\n  {\n    json: {\n      // Service Provider (looked up from Airtable)\n      provider_id: getFieldValue(\"Service Provider\"),\n      provider_name: getDropdownText(\"Service Provider\"),\n\n      // Subject (person the contract is about)\n      subject_name: getFieldValue(\"Subject Full Name\"),\n      subject_dob: getFieldValue(\"Date of Birth\"),\n      subject_address: getFieldValue(\"Address\", 0),\n\n      // Primary Contact (e.g. parent, guardian, or main signer)\n      primary_contact_name: getFieldValue(\"Primary Contact Full Name\"),\n      primary_contact_address: getFieldValue(\"Address\", 1),\n      primary_contact_email: getFieldValue(\"Email\", 0),\n      primary_contact_phone: getFieldValue(\"Phone\", 0),\n\n      // Secondary Contact (e.g. second parent/guardian)\n      secondary_contact_name: getFieldValue(\"Secondary Contact Full Name\"),\n      secondary_contact_address: getFieldValue(\"Address\", 2),\n      secondary_contact_email: getFieldValue(\"Email\", 1),\n      secondary_contact_phone: getFieldValue(\"Phone\", 1),\n\n      // Service details\n      service_start_date: getFieldValue(\"Service Start Date\"),\n      service_schedule: getFieldValue(\"Service Schedule\"),\n      signing_arrangement: getDropdownText(\"Signing Arrangement\")\n    }\n  }\n];"},"typeVersion":2},{"id":"125bbcc4-b37f-4be6-82ad-957ce4d1aeed","name":"Create Airtable Contract Record","type":"n8n-nodes-base.airtable","position":[4224,992],"parameters":{"base":{"__rl":true,"mode":"id","value":"YOUR_AIRTABLE_BASE_ID"},"table":{"__rl":true,"mode":"id","value":"YOUR_CONTRACTS_TABLE_ID"},"columns":{"value":{"created_at":"={{ $now.toISO() }}","provider_id":"={{ $json.provider_id }}","subject_dob":"={{ $json.subject_dob }}","subject_name":"={{ $json.subject_name }}","provider_name":"={{ $json.provider_name }}","contract_status":"pending","subject_address":"={{ $json.subject_address }}","service_schedule":"={{ $json.service_schedule }}","service_start_date":"={{ $json.service_start_date }}","signing_arrangement":"={{ $json.signing_arrangement }}","primary_contact_name":"={{ $json.primary_contact_name }}","primary_contact_email":"={{ $json.primary_contact_email }}","primary_contact_phone":"={{ $json.primary_contact_phone }}","secondary_contact_name":"={{ $json.secondary_contact_name }}","primary_contact_address":"={{ $json.primary_contact_address }}","secondary_contact_email":"={{ $json.secondary_contact_email }}","secondary_contact_phone":"={{ $json.secondary_contact_phone }}","secondary_contact_address":"={{ $json.secondary_contact_address }}"},"schema":[],"mappingMode":"defineBelow","matchingColumns":[]},"options":{},"operation":"create"},"typeVersion":2.1},{"id":"db5416cf-151e-4f34-96ec-2e28b52bbc36","name":"Lookup Service Provider in Airtable","type":"n8n-nodes-base.airtable","position":[4224,1184],"parameters":{"base":{"__rl":true,"mode":"id","value":"YOUR_AIRTABLE_BASE_ID"},"table":{"__rl":true,"mode":"id","value":"YOUR_SERVICE_PROVIDERS_TABLE_ID"},"options":{},"operation":"search","filterByFormula":"={provider_id}=\"{{ $json.provider_id }}\""},"typeVersion":2.1,"alwaysOutputData":true},{"id":"f4d6e45a-e0d4-4325-8b04-759f98e872ea","name":"Merge Contract and Provider Data","type":"n8n-nodes-base.merge","position":[4480,1088],"parameters":{"mode":"combine","options":{}},"typeVersion":3.2,"alwaysOutputData":true},{"id":"187ba781-b9f7-4802-a7e1-1ae580084734","name":"Map Envelope Fields","type":"n8n-nodes-base.set","position":[4816,1104],"parameters":{"options":{},"assignments":{"assignments":[{"id":"9cfd0322-0377-5213-a334-fe052a886882","name":"primary_contact_name","type":"string","value":"={{ $json.primary_contact_name }}"},{"id":"5c46ff92-f68a-537a-99a6-a46fdeedf6b5","name":"primary_contact_email","type":"string","value":"={{ $json.primary_contact_email }}"},{"id":"83f65298-b7ba-5480-b0c8-312375907505","name":"primary_contact_address","type":"string","value":"={{ $json.primary_contact_address }}"},{"id":"ce38df6c-4654-5024-9c32-575d25518e7d","name":"secondary_contact_name","type":"string","value":"={{ $json.secondary_contact_name }}"},{"id":"5b641eb1-cd10-5fa9-9ce6-3498130a0539","name":"secondary_contact_email","type":"string","value":"={{ $json.secondary_contact_email }}"},{"id":"ffc8041a-144f-5a19-aad1-52e16c43903c","name":"secondary_contact_address","type":"string","value":"={{ $json.secondary_contact_address }}"},{"id":"bbf0f4cd-9725-5ce3-8ee9-29f7230ff5c3","name":"subject_name","type":"string","value":"={{ $json.subject_name }}"},{"id":"ce495505-d7a3-51b0-96aa-98285ee6f502","name":"subject_dob","type":"string","value":"={{ $json.subject_dob }}"},{"id":"b87c6fa1-2b4e-56a8-8504-e2cf13c6ca6d","name":"subject_address","type":"string","value":"={{ $json.subject_address }}"},{"id":"08d7a484-7f5b-5fd8-a151-275c1e80a5cd","name":"service_start_date","type":"string","value":"={{ $json.service_start_date }}"},{"id":"96b23558-c421-5026-b583-e4b2b9848c28","name":"service_schedule","type":"string","value":"={{ $json.service_schedule }}"},{"id":"24873425-6712-5c83-944f-146da6097ae7","name":"signing_arrangement","type":"string","value":"={{ $json.signing_arrangement }}"},{"id":"481e9a9e-ddfe-502f-b29a-91068a190fad","name":"provider_name","type":"string","value":"={{ $json.provider_name }}"},{"id":"3cbed91f-220f-5a93-9c97-840ca80bdb24","name":"provider_email","type":"string","value":"={{ $json.provider_email }}"},{"id":"b47c7097-371e-5e83-a02a-34d39d1d7906","name":"provider_address","type":"string","value":"={{ $json.provider_address }}"},{"id":"765a481f-db0e-5b8c-8e5d-d59c4fcc2100","name":"company_rep1_name","type":"string","value":"={{ $json.company_rep1_name }}"},{"id":"ee1f2bbf-c435-5eb5-b05b-3e1f9643673b","name":"company_rep1_email","type":"string","value":"={{ $json.company_rep1_email }}"},{"id":"4365b108-e61b-5378-9834-e3db0b658fd0","name":"company_rep2_name","type":"string","value":"={{ $json.company_rep2_name }}"},{"id":"6ab878ad-4067-5417-876d-4bcd0996e708","name":"company_rep2_email","type":"string","value":"={{ $json.company_rep2_email }}"},{"id":"bc69fcd1-f2a2-5ea7-8b92-f6eaae0dc41c","name":"contract_record_id","type":"string","value":"={{ $('Create Airtable Contract Record').item.json.id }}"}]}},"typeVersion":3.4},{"id":"5d7c8c0f-725a-4d12-9385-5907a09f8842","name":"Route by Signing Arrangement","type":"n8n-nodes-base.switch","position":[5024,1088],"parameters":{"rules":{"values":[{"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":false,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"5df6c9c9-822e-5537-9b00-9a98b4d1fc1d","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.signing_arrangement }}","rightValue":"Both Contacts"}]}},{"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":false,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"2453f609-7880-5ec6-882b-67bfeb71acb3","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.signing_arrangement }}","rightValue":"Primary Contact Only"}]}},{"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":false,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"990b1fd0-6314-5ea2-b9ec-dc1df793f4df","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.signing_arrangement }}","rightValue":"Secondary Contact Only"}]}}]},"options":{}},"typeVersion":3.3},{"id":"324965a3-7f2e-42fc-b04a-4fcbc8f5e802","name":"Send DocuSign Envelope (Both Contacts)","type":"n8n-nodes-base.httpRequest","onError":"continueRegularOutput","maxTries":3,"position":[5328,960],"parameters":{"url":"https://demo.docusign.net/restapi/v2.1/accounts/YOUR_DOCUSIGN_ACCOUNT_ID/envelopes","method":"POST","options":{},"jsonBody":"={\n  \"templateId\": \"YOUR_DOCUSIGN_TEMPLATE_ID_BOTH_CONTACTS\",\n  \"status\": \"sent\",\n  \"writeInitialValuesForAllRecipients\": true,\n  \"templateRoles\": [\n    {\n      \"roleName\": \"PrimaryContact\",\n      \"name\": \"{{ $json.primary_contact_name }}\",\n      \"email\": \"{{ $json.primary_contact_email }}\",\n      \"tabs\": {\n        \"textTabs\": [\n          {\n            \"tabLabel\": \"primary_contact_name\",\n            \"value\": \"{{ $json.primary_contact_name }}\"\n          },\n          {\n            \"tabLabel\": \"primary_contact_address\",\n            \"value\": \"{{ $json.primary_contact_address }}\"\n          },\n          {\n            \"tabLabel\": \"subject_name\",\n            \"value\": \"{{ $json.subject_name }}\"\n          },\n          {\n            \"tabLabel\": \"subject_dob\",\n            \"value\": \"{{ $json.subject_dob }}\"\n          },\n          {\n            \"tabLabel\": \"subject_address\",\n            \"value\": \"{{ $json.subject_address }}\"\n          },\n          {\n            \"tabLabel\": \"service_start_date\",\n            \"value\": \"{{ $json.service_start_date }}\"\n          },\n          {\n            \"tabLabel\": \"service_schedule\",\n            \"value\": \"{{ $json.service_schedule }}\"\n          }\n        ]\n      }\n    },\n    {\n      \"roleName\": \"SecondaryContact\",\n      \"name\": \"{{ $json.secondary_contact_name }}\",\n      \"email\": \"{{ $json.secondary_contact_email }}\",\n      \"tabs\": {\n        \"textTabs\": [\n          {\n            \"tabLabel\": \"secondary_contact_name\",\n            \"value\": \"{{ $json.secondary_contact_name }}\"\n          },\n          {\n            \"tabLabel\": \"secondary_contact_address\",\n            \"value\": \"{{ $json.secondary_contact_address }}\"\n          }\n        ]\n      }\n    },\n    {\n      \"roleName\": \"ServiceProvider\",\n      \"name\": \"{{ $json.provider_name }}\",\n      \"email\": \"{{ $json.provider_email }}\",\n      \"tabs\": {\n        \"textTabs\": [\n          {\n            \"tabLabel\": \"provider_name\",\n            \"value\": \"{{ $json.provider_name }}\"\n          },\n          {\n            \"tabLabel\": \"provider_address\",\n            \"value\": \"{{ $json.provider_address }}\"\n          }\n        ]\n      }\n    },\n    {\n      \"roleName\": \"CompanyRep1\",\n      \"name\": \"{{ $json.company_rep1_name }}\",\n      \"email\": \"{{ $json.company_rep1_email }}\",\n      \"tabs\": {\n        \"textTabs\": [\n          {\n            \"tabLabel\": \"company_rep1_name\",\n            \"value\": \"{{ $json.company_rep1_name }}\"\n          },\n          {\n            \"tabLabel\": \"service_start_date\",\n            \"value\": \"{{ $json.service_start_date }}\"\n          },\n          {\n            \"tabLabel\": \"service_schedule\",\n            \"value\": \"{{ $json.service_schedule }}\"\n          },\n          {\n            \"tabLabel\": \"subject_name\",\n            \"value\": \"{{ $json.subject_name }}\"\n          },\n          {\n            \"tabLabel\": \"subject_dob\",\n            \"value\": \"{{ $json.subject_dob }}\"\n          },\n          {\n            \"tabLabel\": \"subject_address\",\n            \"value\": \"{{ $json.subject_address }}\"\n          }\n        ]\n      }\n    },\n    {\n      \"roleName\": \"CompanyRep2\",\n      \"name\": \"{{ $json.company_rep2_name }}\",\n      \"email\": \"{{ $json.company_rep2_email }}\",\n      \"tabs\": {\n        \"textTabs\": [\n          {\n            \"tabLabel\": \"company_rep2_name\",\n            \"value\": \"{{ $json.company_rep2_name }}\"\n          }\n        ]\n      }\n    }\n  ],\n  \"emailSubject\": \"Contract — Signature Request\"\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"oAuth2Api","headerParameters":{"parameters":[{"name":"Accept","value":"application/json"},{"name":"Content-Type","value":"application/json"}]}},"retryOnFail":true,"typeVersion":4.2,"alwaysOutputData":true},{"id":"fc233fc1-2e0a-4cea-891e-9ac1acdaf0aa","name":"Send DocuSign Envelope (Primary Only)","type":"n8n-nodes-base.httpRequest","onError":"continueRegularOutput","maxTries":3,"position":[5328,1152],"parameters":{"url":"https://demo.docusign.net/restapi/v2.1/accounts/YOUR_DOCUSIGN_ACCOUNT_ID/envelopes","method":"POST","options":{},"jsonBody":"={\n  \"templateId\": \"YOUR_DOCUSIGN_TEMPLATE_ID_PRIMARY_ONLY\",\n  \"status\": \"sent\",\n  \"writeInitialValuesForAllRecipients\": true,\n  \"templateRoles\": [\n    {\n      \"roleName\": \"PrimaryContact\",\n      \"name\": \"{{ $json.primary_contact_name }}\",\n      \"email\": \"{{ $json.primary_contact_email }}\",\n      \"tabs\": {\n        \"textTabs\": [\n          {\n            \"tabLabel\": \"primary_contact_name\",\n            \"value\": \"{{ $json.primary_contact_name }}\"\n          },\n          {\n            \"tabLabel\": \"primary_contact_address\",\n            \"value\": \"{{ $json.primary_contact_address }}\"\n          },\n          {\n            \"tabLabel\": \"subject_name\",\n            \"value\": \"{{ $json.subject_name }}\"\n          },\n          {\n            \"tabLabel\": \"subject_dob\",\n            \"value\": \"{{ $json.subject_dob }}\"\n          },\n          {\n            \"tabLabel\": \"subject_address\",\n            \"value\": \"{{ $json.subject_address }}\"\n          },\n          {\n            \"tabLabel\": \"service_start_date\",\n            \"value\": \"{{ $json.service_start_date }}\"\n          },\n          {\n            \"tabLabel\": \"service_schedule\",\n            \"value\": \"{{ $json.service_schedule }}\"\n          },\n          {\n            \"tabLabel\": \"secondary_contact_name\",\n            \"value\": \"{{ $json.secondary_contact_name }}\"\n          },\n          {\n            \"tabLabel\": \"secondary_contact_address\",\n            \"value\": \"{{ $json.secondary_contact_address }}\"\n          }\n        ]\n      }\n    },\n    {\n      \"roleName\": \"ServiceProvider\",\n      \"name\": \"{{ $json.provider_name }}\",\n      \"email\": \"{{ $json.provider_email }}\",\n      \"tabs\": {\n        \"textTabs\": [\n          {\n            \"tabLabel\": \"provider_name\",\n            \"value\": \"{{ $json.provider_name }}\"\n          },\n          {\n            \"tabLabel\": \"provider_address\",\n            \"value\": \"{{ $json.provider_address }}\"\n          }\n        ]\n      }\n    },\n    {\n      \"roleName\": \"CompanyRep1\",\n      \"name\": \"{{ $json.company_rep1_name }}\",\n      \"email\": \"{{ $json.company_rep1_email }}\",\n      \"tabs\": {\n        \"textTabs\": [\n          {\n            \"tabLabel\": \"company_rep1_name\",\n            \"value\": \"{{ $json.company_rep1_name }}\"\n          },\n          {\n            \"tabLabel\": \"service_start_date\",\n            \"value\": \"{{ $json.service_start_date }}\"\n          },\n          {\n            \"tabLabel\": \"service_schedule\",\n            \"value\": \"{{ $json.service_schedule }}\"\n          },\n          {\n            \"tabLabel\": \"subject_name\",\n            \"value\": \"{{ $json.subject_name }}\"\n          },\n          {\n            \"tabLabel\": \"subject_dob\",\n            \"value\": \"{{ $json.subject_dob }}\"\n          },\n          {\n            \"tabLabel\": \"subject_address\",\n            \"value\": \"{{ $json.subject_address }}\"\n          }\n        ]\n      }\n    },\n    {\n      \"roleName\": \"CompanyRep2\",\n      \"name\": \"{{ $json.company_rep2_name }}\",\n      \"email\": \"{{ $json.company_rep2_email }}\",\n      \"tabs\": {\n        \"textTabs\": [\n          {\n            \"tabLabel\": \"company_rep2_name\",\n            \"value\": \"{{ $json.company_rep2_name }}\"\n          }\n        ]\n      }\n    }\n  ],\n  \"emailSubject\": \"Contract — Signature Request\"\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"oAuth2Api","headerParameters":{"parameters":[{"name":"Accept","value":"application/json"},{"name":"Content-Type","value":"application/json"}]}},"retryOnFail":true,"typeVersion":4.2,"alwaysOutputData":true},{"id":"df4b2e67-0281-4a15-be68-7cba6601eab4","name":"Send DocuSign Envelope (Secondary Only)","type":"n8n-nodes-base.httpRequest","onError":"continueRegularOutput","maxTries":3,"position":[5328,1360],"parameters":{"url":"https://demo.docusign.net/restapi/v2.1/accounts/YOUR_DOCUSIGN_ACCOUNT_ID/envelopes","method":"POST","options":{},"jsonBody":"={\n  \"templateId\": \"YOUR_DOCUSIGN_TEMPLATE_ID_SECONDARY_ONLY\",\n  \"status\": \"sent\",\n  \"writeInitialValuesForAllRecipients\": true,\n  \"templateRoles\": [\n    {\n      \"roleName\": \"SecondaryContact\",\n      \"name\": \"{{ $json.secondary_contact_name }}\",\n      \"email\": \"{{ $json.secondary_contact_email }}\",\n      \"tabs\": {\n        \"textTabs\": [\n          {\n            \"tabLabel\": \"secondary_contact_name\",\n            \"value\": \"{{ $json.secondary_contact_name }}\"\n          },\n          {\n            \"tabLabel\": \"secondary_contact_address\",\n            \"value\": \"{{ $json.secondary_contact_address }}\"\n          },\n          {\n            \"tabLabel\": \"primary_contact_name\",\n            \"value\": \"{{ $json.primary_contact_name }}\"\n          },\n          {\n            \"tabLabel\": \"primary_contact_address\",\n            \"value\": \"{{ $json.primary_contact_address }}\"\n          },\n          {\n            \"tabLabel\": \"subject_name\",\n            \"value\": \"{{ $json.subject_name }}\"\n          },\n          {\n            \"tabLabel\": \"subject_dob\",\n            \"value\": \"{{ $json.subject_dob }}\"\n          },\n          {\n            \"tabLabel\": \"subject_address\",\n            \"value\": \"{{ $json.subject_address }}\"\n          },\n          {\n            \"tabLabel\": \"service_start_date\",\n            \"value\": \"{{ $json.service_start_date }}\"\n          },\n          {\n            \"tabLabel\": \"service_schedule\",\n            \"value\": \"{{ $json.service_schedule }}\"\n          }\n        ]\n      }\n    },\n    {\n      \"roleName\": \"ServiceProvider\",\n      \"name\": \"{{ $json.provider_name }}\",\n      \"email\": \"{{ $json.provider_email }}\",\n      \"tabs\": {\n        \"textTabs\": [\n          {\n            \"tabLabel\": \"provider_name\",\n            \"value\": \"{{ $json.provider_name }}\"\n          },\n          {\n            \"tabLabel\": \"provider_address\",\n            \"value\": \"{{ $json.provider_address }}\"\n          }\n        ]\n      }\n    },\n    {\n      \"roleName\": \"CompanyRep1\",\n      \"name\": \"{{ $json.company_rep1_name }}\",\n      \"email\": \"{{ $json.company_rep1_email }}\",\n      \"tabs\": {\n        \"textTabs\": [\n          {\n            \"tabLabel\": \"company_rep1_name\",\n            \"value\": \"{{ $json.company_rep1_name }}\"\n          },\n          {\n            \"tabLabel\": \"service_start_date\",\n            \"value\": \"{{ $json.service_start_date }}\"\n          },\n          {\n            \"tabLabel\": \"service_schedule\",\n            \"value\": \"{{ $json.service_schedule }}\"\n          },\n          {\n            \"tabLabel\": \"subject_name\",\n            \"value\": \"{{ $json.subject_name }}\"\n          },\n          {\n            \"tabLabel\": \"subject_dob\",\n            \"value\": \"{{ $json.subject_dob }}\"\n          },\n          {\n            \"tabLabel\": \"subject_address\",\n            \"value\": \"{{ $json.subject_address }}\"\n          }\n        ]\n      }\n    },\n    {\n      \"roleName\": \"CompanyRep2\",\n      \"name\": \"{{ $json.company_rep2_name }}\",\n      \"email\": \"{{ $json.company_rep2_email }}\",\n      \"tabs\": {\n        \"textTabs\": [\n          {\n            \"tabLabel\": \"company_rep2_name\",\n            \"value\": \"{{ $json.company_rep2_name }}\"\n          }\n        ]\n      }\n    }\n  ],\n  \"emailSubject\": \"Contract — Signature Request\"\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"oAuth2Api","headerParameters":{"parameters":[{"name":"Accept","value":"application/json"},{"name":"Content-Type","value":"application/json"}]}},"retryOnFail":true,"typeVersion":4.2,"alwaysOutputData":true},{"id":"8b707a9c-a8c4-496c-85e8-982fbaed4588","name":"Update Contract Status (Both)","type":"n8n-nodes-base.airtable","position":[5744,1024],"parameters":{"base":{"__rl":true,"mode":"id","value":"YOUR_AIRTABLE_BASE_ID"},"table":{"__rl":true,"mode":"id","value":"YOUR_CONTRACTS_TABLE_ID"},"columns":{"value":{"sent_at":"={{ $now.toISO() }}","envelope_id":"={{ $json.envelopeId }}","contract_status":"sent"},"schema":[],"mappingMode":"defineBelow","matchingColumns":[]},"options":{},"operation":"update"},"typeVersion":2.1},{"id":"0a90c616-f3fb-4666-ad51-fdc0d76c54ee","name":"Update Contract Status (Primary)","type":"n8n-nodes-base.airtable","position":[5744,1216],"parameters":{"base":{"__rl":true,"mode":"id","value":"YOUR_AIRTABLE_BASE_ID"},"table":{"__rl":true,"mode":"id","value":"YOUR_CONTRACTS_TABLE_ID"},"columns":{"value":{"sent_at":"={{ $now.toISO() }}","envelope_id":"={{ $json.envelopeId }}","contract_status":"sent"},"schema":[],"mappingMode":"defineBelow","matchingColumns":[]},"options":{},"operation":"update"},"typeVersion":2.1},{"id":"1ac67141-d6d2-4a68-8083-02e465ac3f09","name":"Update Contract Status (Secondary)","type":"n8n-nodes-base.airtable","position":[5744,1424],"parameters":{"base":{"__rl":true,"mode":"id","value":"YOUR_AIRTABLE_BASE_ID"},"table":{"__rl":true,"mode":"id","value":"YOUR_CONTRACTS_TABLE_ID"},"columns":{"value":{"sent_at":"={{ $now.toISO() }}","envelope_id":"={{ $json.envelopeId }}","contract_status":"sent"},"schema":[],"mappingMode":"defineBelow","matchingColumns":[]},"options":{},"operation":"update"},"typeVersion":2.1},{"id":"33d04e63-2e5f-4218-9290-46d0e8817f19","name":"Log Signers to Airtable (Both)","type":"n8n-nodes-base.airtable","position":[6000,1024],"parameters":{"base":{"__rl":true,"mode":"id","value":"YOUR_AIRTABLE_BASE_ID"},"table":{"__rl":true,"mode":"id","value":"YOUR_SIGNERS_TABLE_ID"},"columns":{"value":{"status":"sent","sent_at":"={{ $now.toISO() }}","envelope_id":"={{ $json.envelopeId }}","signer_role":"=All signers","contract_record_id":"={{ $('Map Envelope Fields').item.json.contract_record_id }}"},"schema":[],"mappingMode":"defineBelow","matchingColumns":[]},"options":{},"operation":"create"},"typeVersion":2.1},{"id":"75c583f6-2273-48c8-b6de-2cfe3d7884d4","name":"Log Signers to Airtable (Primary)","type":"n8n-nodes-base.airtable","position":[6000,1216],"parameters":{"base":{"__rl":true,"mode":"id","value":"YOUR_AIRTABLE_BASE_ID"},"table":{"__rl":true,"mode":"id","value":"YOUR_SIGNERS_TABLE_ID"},"columns":{"value":{"status":"sent","sent_at":"={{ $now.toISO() }}","envelope_id":"={{ $json.envelopeId }}","signer_role":"=All signers","contract_record_id":"={{ $('Map Envelope Fields').item.json.contract_record_id }}"},"schema":[],"mappingMode":"defineBelow","matchingColumns":[]},"options":{},"operation":"create"},"typeVersion":2.1},{"id":"52abf005-46b2-487d-8662-4c104526292f","name":"Log Signers to Airtable (Secondary)","type":"n8n-nodes-base.airtable","position":[6000,1424],"parameters":{"base":{"__rl":true,"mode":"id","value":"YOUR_AIRTABLE_BASE_ID"},"table":{"__rl":true,"mode":"id","value":"YOUR_SIGNERS_TABLE_ID"},"columns":{"value":{"status":"sent","sent_at":"={{ $now.toISO() }}","envelope_id":"={{ $json.envelopeId }}","signer_role":"=All signers","contract_record_id":"={{ $('Map Envelope Fields').item.json.contract_record_id }}"},"schema":[],"mappingMode":"defineBelow","matchingColumns":[]},"options":{},"operation":"create"},"typeVersion":2.1},{"id":"5ac458fe-33fe-4149-840b-7602192226d7","name":"Sticky Note - Intro","type":"n8n-nodes-base.stickyNote","position":[2976,592],"parameters":{"width":500,"height":888,"content":"## Automated Contract Signing with Tally and DocuSign\n\n### **What it does:**\nAutomatically processes form submissions (Tally), stores contract data in Airtable, looks up service provider details, routes by signing arrangement, and sends pre-filled DocuSign envelopes to the correct signers.\n\n### **Why it matters:**\nEliminates manual contract preparation and routing — every new submission instantly triggers the correct DocuSign envelope with pre-filled data, updates CRM status, and tracks all signers automatically.\n\n### **How it works:**\n1. Receives Tally form submission via webhook\n2. Responds with 200 OK, then normalizes the form payload\n3. Creates a contract record in Airtable and looks up the service provider\n4. Merges data and maps all fields for the DocuSign API\n5. Routes by signing arrangement (Both / Primary Only / Secondary Only)\n6. Sends the appropriate DocuSign envelope with pre-filled signer data\n7. Updates contract status and logs all signers in Airtable\n\n### **Setup steps:**\n1. Connect your **Airtable** credential and create the 3 required tables (see Airtable Setup note)\n2. Connect your **DocuSign OAuth2** credential\n3. Replace `YOUR_AIRTABLE_BASE_ID` and all table ID placeholders\n4. Replace `YOUR_DOCUSIGN_ACCOUNT_ID` with your DocuSign account ID\n5. Replace the 3 `YOUR_DOCUSIGN_TEMPLATE_ID_*` placeholders with your template IDs\n6. Update field labels in the **Normalize Form Payload** Code node to match your Tally form\n7. Configure the Tally webhook to point to this workflow's production webhook URL\n8. Test with a sample Tally submission"},"typeVersion":1},{"id":"8272ae99-0ab6-45ff-a434-5817cf806465","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[3536,832],"parameters":{"color":4,"width":568,"height":440,"content":"## 1. Receive & Normalize\n\nTally form webhook triggers the workflow. The Respond to Webhook node immediately returns a 200 OK to prevent retries. The Code node extracts and normalizes all fields from the nested Tally payload into a flat, English-named structure.\n\n**Customize:** Update the field labels in the Code node to match your Tally form questions."},"typeVersion":1},{"id":"ac69646a-e56a-46cd-904a-40c853436bad","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[4144,832],"parameters":{"color":5,"width":582,"height":524,"content":"## 2. Airtable CRM — Store & Enrich\n\nCreates a new contract record in the **Contracts** table (status: `pending`), then looks up the selected service provider from the **Service Providers** table. The Merge node combines both datasets for the DocuSign envelope."},"typeVersion":1},{"id":"8171e41d-18f0-4a8c-b1d0-6f615a2f6e3b","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[4768,832],"parameters":{"color":5,"width":888,"height":684,"content":"## 3. Route & Send DocuSign Envelope\n\nMaps all fields for the DocuSign API, then routes by signing arrangement to send the correct contract template:\n- **Both Contacts** — Primary + Secondary + Provider + Company Reps\n- **Primary Only** — Primary + Provider + Company Reps\n- **Secondary Only** — Secondary + Provider + Company Reps"},"typeVersion":1},{"id":"a0eaa807-f225-415c-942c-427bf03b50a6","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[5696,832],"parameters":{"color":4,"width":616,"height":780,"content":"## 4. Post-Send CRM Tracking\n\nAfter DocuSign sends the envelope successfully:\n1. Updates the contract record status to `sent` with the `envelope_id`\n2. Logs signer details to the **Signers** table for tracking\n\nThis closes the loop so your Airtable always reflects the current state."},"typeVersion":1},{"id":"8a0d2627-43b6-4f87-b709-41c869df0e43","name":"Sticky Note - Airtable Setup","type":"n8n-nodes-base.stickyNote","position":[2976,1504],"parameters":{"color":6,"width":540,"height":980,"content":"## Airtable Setup Guide\n\nCreate these 3 tables in your Airtable base:\n\n### Table 1: `Contracts`\n| Column | Type |\n|---|---|\n| `primary_contact_name` | Single line text |\n| `primary_contact_email` | Email |\n| `primary_contact_phone` | Phone |\n| `primary_contact_address` | Single line text |\n| `secondary_contact_name` | Single line text |\n| `secondary_contact_email` | Email |\n| `secondary_contact_phone` | Phone |\n| `secondary_contact_address` | Single line text |\n| `subject_name` | Single line text |\n| `subject_dob` | Date |\n| `subject_address` | Single line text |\n| `service_start_date` | Date |\n| `service_schedule` | Long text |\n| `signing_arrangement` | Single select |\n| `provider_id` | Single line text |\n| `provider_name` | Single line text |\n| `contract_status` | Single select (`pending`, `sent`, `signed`, `declined`) |\n| `envelope_id` | Single line text |\n| `sent_at` | Date |\n| `created_at` | Date |\n\n### Table 2: `Service Providers`\n| Column | Type |\n|---|---|\n| `provider_id` | Single line text (primary) |\n| `provider_name` | Single line text |\n| `provider_email` | Email |\n| `provider_address` | Single line text |\n| `company_rep1_name` | Single line text |\n| `company_rep1_email` | Email |\n| `company_rep2_name` | Single line text |\n| `company_rep2_email` | Email |\n\n### Table 3: `Signers`\n| Column | Type |\n|---|---|\n| `contract_record_id` | Link to Contracts |\n| `envelope_id` | Single line text |\n| `signer_role` | Single line text |\n| `status` | Single select (`sent`, `delivered`, `signed`, `declined`) |\n| `sent_at` | Date |"},"typeVersion":1},{"id":"bdf4824b-665c-4a04-a613-82a5cbdbb40b","name":"Sticky Note - DocuSign Setup","type":"n8n-nodes-base.stickyNote","position":[3568,1504],"parameters":{"color":6,"width":540,"height":320,"content":"## DocuSign Setup\n\n1. Create 3 DocuSign templates matching the signing arrangements\n2. Define roles in each template: `PrimaryContact`, `SecondaryContact`, `ServiceProvider`, `CompanyRep1`, `CompanyRep2`\n3. Add text tabs matching the field names (e.g., `primary_contact_name`, `subject_name`, etc.)\n4. Copy each template ID into the corresponding HTTP Request node\n5. Replace `YOUR_DOCUSIGN_ACCOUNT_ID` in the URL of all 3 nodes\n\n**Note:** The URL uses `demo.docusign.net` (sandbox). For production, change to `docusign.net`."},"typeVersion":1},{"id":"724ced4f-f7a9-43c6-91d7-e63d6f57b3c5","name":"Contact & Attribution","type":"n8n-nodes-base.stickyNote","position":[6368,832],"parameters":{"width":700,"height":1284,"content":"## Was this helpful? Get in touch!\n\n[![clic](https://vptkuqoipqbebipqjnqw.supabase.co/storage/v1/object/public/Milo%20Bravo/seeAxWUupcOOXY5tntexZ_video.gif)](https://tally.so/r/EkKGgB)\n\nI really hope this automation helped you. Your feedback is incredibly valuable and helps me create better resources for business and the n8n community.\n\n### **Have Feedback, a Question, or a Project Idea?**\n\nI've streamlined the way we connect. It all starts with one simple form that takes less than 10 seconds. After that, you'll chat with my AI assistant who will gather the key details and pass them directly on to me.\n\n####  **[Start the conversation here](https://tally.so/r/EkKGgB)**\n\n*   **Give Feedback:** Share your thoughts on this template—whether you found a typo, encountered an unexpected error, have a suggestion, or just want to say thanks!\n\n*   **n8n Consulting:** Have a complex business challenge or need a custom workflow built from scratch? Let's partner on a powerful automation solution tailored to your specific needs.\n\n*   **Join your team:** We can work together to get you launched with confidence.\n\n---\n\nHappy Automating!\n[Milo Bravo](https://linkedin.com/in/MiloBravo/) | BRaiA Labs | Automation & BI Systems + AI Integration\n"},"typeVersion":1}],"active":false,"pinData":{"Receive Tally Form Submission":[{"json":{"body":{"data":{"fields":[{"key":"q_provider","type":"DROPDOWN","label":"Service Provider","value":["provider-001"],"options":[{"id":"provider-001","text":"Jane Smith Daycare"},{"id":"provider-002","text":"City Kids Center"}]},{"key":"q_start","type":"INPUT_DATE","label":"Service Start Date","value":"2025-03-01"},{"key":"q_schedule","type":"TEXTAREA","label":"Service Schedule","value":"Monday 08:00-17:00, Wednesday 08:00-17:00, Friday 08:00-13:00"},{"key":"q_subject","type":"INPUT_TEXT","label":"Subject Full Name","value":"Alex Johnson"},{"key":"q_addr1","type":"INPUT_TEXT","label":"Address","value":"123 Main Street, 8000 Sample City"},{"key":"q_dob","type":"INPUT_DATE","label":"Date of Birth","value":"2022-06-15"},{"key":"q_primary","type":"INPUT_TEXT","label":"Primary Contact Full Name","value":"Sarah Johnson"},{"key":"q_addr2","type":"INPUT_TEXT","label":"Address","value":"123 Main Street, 8000 Sample City"},{"key":"q_email1","type":"INPUT_EMAIL","label":"Email","value":"sarah@example.com"},{"key":"q_phone1","type":"INPUT_PHONE_NUMBER","label":"Phone","value":"+41791234567"},{"key":"q_secondary","type":"INPUT_TEXT","label":"Secondary Contact Full Name","value":"Mike Johnson"},{"key":"q_addr3","type":"INPUT_TEXT","label":"Address","value":"456 Oak Avenue, 8001 Sample City"},{"key":"q_email2","type":"INPUT_EMAIL","label":"Email","value":"mike@example.com"},{"key":"q_phone2","type":"INPUT_PHONE_NUMBER","label":"Phone","value":"+41791234568"},{"key":"q_arrangement","type":"MULTIPLE_CHOICE","label":"Signing Arrangement","value":["both-id"],"options":[{"id":"both-id","text":"Both Contacts"},{"id":"primary-id","text":"Primary Contact Only"},{"id":"secondary-id","text":"Secondary Contact Only"}]}],"formId":"yourFormId","formName":"Service Registration Form","createdAt":"2025-01-15T10:00:00.000Z","responseId":"sample123","respondentId":"resp123","submissionId":"sample123"},"eventId":"sample-event-id","createdAt":"2025-01-15T10:00:00.000Z","eventType":"FORM_RESPONSE"},"query":{},"params":{},"headers":{"host":"your-instance.app.n8n.cloud","content-type":"application/json"},"webhookUrl":"https://your-instance.app.n8n.cloud/webhook/tally-submission","executionMode":"production"}}]},"settings":{"executionOrder":"v1"},"versionId":"10957aa0-1c3f-46e0-af01-56250345c232","connections":{"Respond to Webhook":{"main":[[{"node":"Normalize Form Payload","type":"main","index":0}]]},"Map Envelope Fields":{"main":[[{"node":"Route by Signing Arrangement","type":"main","index":0}]]},"Normalize Form Payload":{"main":[[{"node":"Create Airtable Contract Record","type":"main","index":0},{"node":"Lookup Service Provider in Airtable","type":"main","index":0}]]},"Route by Signing Arrangement":{"main":[[{"node":"Send DocuSign Envelope (Both Contacts)","type":"main","index":0}],[{"node":"Send DocuSign Envelope (Primary Only)","type":"main","index":0}],[{"node":"Send DocuSign Envelope (Secondary Only)","type":"main","index":0}]]},"Receive Tally Form Submission":{"main":[[{"node":"Respond to Webhook","type":"main","index":0}]]},"Update Contract Status (Both)":{"main":[[{"node":"Log Signers to Airtable (Both)","type":"main","index":0}]]},"Create Airtable Contract Record":{"main":[[{"node":"Merge Contract and Provider Data","type":"main","index":0}]]},"Merge Contract and Provider Data":{"main":[[{"node":"Map Envelope Fields","type":"main","index":0}]]},"Update Contract Status (Primary)":{"main":[[{"node":"Log Signers to Airtable (Primary)","type":"main","index":0}]]},"Update Contract Status (Secondary)":{"main":[[{"node":"Log Signers to Airtable (Secondary)","type":"main","index":0}]]},"Lookup Service Provider in Airtable":{"main":[[{"node":"Merge Contract and Provider Data","type":"main","index":1}]]},"Send DocuSign Envelope (Primary Only)":{"main":[[{"node":"Update Contract Status (Primary)","type":"main","index":0}]]},"Send DocuSign Envelope (Both Contacts)":{"main":[[{"node":"Update Contract Status (Both)","type":"main","index":0}]]},"Send DocuSign Envelope (Secondary Only)":{"main":[[{"node":"Update Contract Status (Secondary)","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":25,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":1},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.airtable":{"count":8},"n8n-nodes-base.stickyNote":{"count":8},"n8n-nodes-base.httpRequest":{"count":3},"n8n-nodes-base.respondToWebhook":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Milo Bravo","username":"milobravo1","bio":"Helping B2B teams automate with n8n & AI Integration | Automation & BI Systems | Seasoned n8n leader with Fortune 500 experience. ","verified":true,"links":["https://milobravo.youcanbook.me/"],"avatar":"https://gravatar.com/avatar/4f2f424fe60cbc12857331bd5b6d7b135580970becb5bb1c7ada1b4bdeb153db?r=pg&d=retro&size=200"},"nodes":[{"id":2,"icon":"file:airtable.svg","name":"n8n-nodes-base.airtable","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/2021-goals-level-up-your-vocabulary-with-vonage-and-n8n/","icon":"🎯","label":"2021 Goals: Level Up Your Vocabulary With Vonage and n8n"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/sending-sms-the-low-code-way-with-airtable-twilio-programmable-sms-and-n8n/","icon":"📱","label":"Sending SMS the Low-Code Way with Airtable, Twilio Programmable SMS, and n8n"},{"url":"https://n8n.io/blog/automating-conference-organization-processes-with-n8n/","icon":"🙋‍♀️","label":"Automating Conference Organization Processes with n8n"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.airtable/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/airtable/"}]},"categories":["Data & Storage"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"Airtable"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMTcwIj48cGF0aCBmaWxsPSIjZmNiNDAwIiBkPSJNODkgNC44IDE2LjIgMzQuOWMtNC4xIDEuNy00IDcuNC4xIDkuMWw3My4yIDI5YzYuNCAyLjYgMTMuNiAyLjYgMjAgMGw3My4yLTI5YzQuMS0xLjYgNC4xLTcuNC4xLTkuMWwtNzMtMzAuMUMxMDMuMiAyIDk1LjcgMiA4OSA0LjgiLz48cGF0aCBmaWxsPSIjMThiZmZmIiBkPSJNMTA1LjkgODguOXY3Mi41YzAgMy40IDMuNSA1LjggNi43IDQuNWw4MS42LTMxLjdjMS45LS43IDMuMS0yLjUgMy4xLTQuNVY1Ny4yYzAtMy40LTMuNS01LjgtNi43LTQuNUwxMDkgODQuM2MtMS45LjgtMy4xIDIuNi0zLjEgNC42Ii8+PHBhdGggZmlsbD0iI2Y4MmI2MCIgZD0ibTg2LjkgOTIuNi0yNC4yIDExLjctMi41IDEuMkw5LjEgMTMwYy0zLjIgMS42LTcuNC0uOC03LjQtNC40VjU3LjVjMC0xLjMuNy0yLjQgMS42LTMuM3EuNi0uNiAxLjItLjljMS4yLS43IDMtLjkgNC40LS4zbDc3LjUgMzAuN2M0IDEuNSA0LjMgNy4xLjUgOC45Ii8+PHBhdGggZmlsbD0iI2JhMWU0NSIgZD0ibTg2LjkgOTIuNi0yNC4yIDExLjctNTkuNC01MHEuNi0uNiAxLjItLjljMS4yLS43IDMtLjkgNC40LS4zbDc3LjUgMzAuN2M0IDEuNCA0LjMgNyAuNSA4LjgiLz48L3N2Zz4="},"displayName":"Airtable","typeVersion":2,"nodeCategories":[{"id":3,"name":"Data & Storage"}]},{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":47,"icon":"file:webhook.svg","name":"n8n-nodes-base.webhook","codex":{"data":{"alias":["HTTP","API","Build","WH"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Webhook","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":112,"icon":"fa:map-signs","name":"n8n-nodes-base.switch","codex":{"data":{"alias":["Router","If","Path","Filter","Condition","Logic","Branch","Case"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Switch","color":"#506000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"Switch","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":535,"icon":"file:webhook.svg","name":"n8n-nodes-base.respondToWebhook","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.respondtowebhook/"}]},"categories":["Core Nodes","Utility"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"transform\"]","defaults":{"name":"Respond to Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Respond to Webhook","typeVersion":2,"nodeCategories":[{"id":7,"name":"Utility"},{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":35,"name":"Document Extraction"}],"image":[]}}