Sync new Typeform leads to Coda and alert Slack

Every time someone fills out your Typeform, log the lead in your Coda table and ping the sales channel in Slack so reps see new inbound the second it lands.

Deterministic Code
TypeformCodaSlack BotSalesOperationsLead EnrichmentData SyncNotifications & Alerts
PromptCreate

Build a code workflow that captures new Typeform submissions, upserts them into a Coda leads table, and announces each new lead in our sales Slack channel. This is a deterministic, fixed-shape pipeline, not an agent.

Trigger: a webhook from Typeform. Typeform sends an outgoing webhook on every new form response, so the workflow's webhook URL should be registered against the form (via Typeform's Create or Update Webhook operation, or pasted into the form's Connect tab manually). The incoming payload includes form_response.answers (keyed by field id/ref), form_response.hidden (for UTM-style hidden fields), and form_response.submitted_at.

Step 1: Map the Typeform payload to a flat lead record. Pull out: name, email, company, use_case, source_utm (from hidden fields), and submitted_at. Use field ref where possible so the mapping survives Typeform field reorders. Lower-case and trim the email.

Step 2: Upsert the lead into our Coda leads table using Coda's Insert or Upsert Rows operation. Set keyColumns to the email column so re-submissions update the existing row instead of creating duplicates. Send each mapped field as a cell value keyed by the matching Coda column id. After the upsert, Coda returns 202 with a mutation requestId; poll mutationStatus until completed so we can grab the resulting row id (or build the Coda row deep link from docId, tableId, and the row id).

Step 3: Post a Slack alert to the sales channel (default #leads) using the Slack Bot Send a Message operation. Include a short summary: name, company, use case, and a link back to the Coda row. Keep it to a few lines so it's scannable in the channel. Use Slack mrkdwn (single asterisks for bold, <url|text> for links).

Inputs the user should configure when wiring this up: the Coda docId and leads tableId, the Coda column ids (or names) for email, name, company, use_case, source_utm, and submitted_at, and the Slack channel id (or name) for the alert.

Keep every step a named node with explicit field mapping. No agent reasoning is needed; the shape of the data is known.

Additional information

What does this prompt do?
  • Listens for new Typeform submissions in real time as soon as the respondent hits submit.
  • Adds the lead to your Coda leads table, matching on email so a returning respondent updates their existing row instead of creating a duplicate.
  • Posts a clean summary to your sales Slack channel with the lead's name, company, what they're interested in, and a direct link back to their row in Coda.
  • Runs every time, with the same fields in the same columns, so your leads table stays clean enough to filter, sort, and report on.
What do I need to use this?
  • A Typeform account with the lead form you want to capture from.
  • A Coda doc with a leads table that has at least an email column to match on.
  • A Slack workspace and the channel where you want new lead alerts to land.
How can I customize it?
  • Change which Typeform fields map to which Coda columns, or add new columns like lead source, plan interest, or referral code.
  • Swap the Slack channel, tag a specific rep or group, or change what the alert says.
  • Add a simple filter so only qualified responses (for example, a work email or a specific plan tier) get logged and announced.

Frequently asked questions

Will this create duplicates if someone fills out the form twice?
No. The workflow matches on email, so a second submission from the same person updates their existing row in Coda instead of adding a new one.
Can I use this with a different form tool instead of Typeform?
This template is built for Typeform's real-time submission webhook. If you use Tally, Jotform, or Google Forms, you can ask the workflow author to swap the trigger to your form of choice.
Does the Slack message link back to the lead in Coda?
Yes. The alert includes a direct link to the row in your Coda leads table so reps can open it in one click and start working the lead.
What if my Coda table has extra columns the form doesn't fill?
Only the columns you map get written. Existing columns like status, owner, or notes stay untouched, so your reps can keep using them as their working space.
Can I post to a private Slack channel?
Yes, as long as you add the Slack bot to that private channel. Public channels work out of the box.

Stop manually copying leads from Typeform into your CRM.

Connect Typeform, Coda, and Slack once, and every new response lands in your leads table and your sales channel automatically.