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.

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.

FAQs

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.

Related templates

A brand asset library your marketing team actually searches

Every logo, photo, video cut and ad export in one searchable grid, with previews, campaign tags and rights expiry dates at a glance.

General Input Storage
General Input Database
JigsawStack
+1
App
Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
Clean out the Looker dashboards and Looks nobody opens

One board showing every dashboard and Look with its folder, owner and favorite count, so you can find dead content and retire it safely.

Looker
Slack Bot
App
LiveKit live operations console for room moderation

Watch every live room on one screen, remove disruptive guests, start recordings and end stuck sessions without anyone opening a terminal.

LiveKit
Slack Bot
General Input Database
App
Wake up dormant Keap leads with a researched reason

Every Monday we find leads who never bought, research a real reason to reach out, and send a short personal email instead of another check in.

Keap
Slack Bot
Agentic Task
LiveChat coverage board for planning next week's shifts

See the exact hours your chat queue backs up and customers give up waiting, then plan next week's shifts before it happens again.

LiveChat
Slack Bot
General Input Database
App

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.