Turn Typeform leads into HubSpot contacts with a Postmark follow-up

Every new form response becomes a HubSpot contact or note, plus a personalized Postmark email that references their actual answers.

Agentic Task
TypeformHubSpotPostmarkSalesMarketingLead EnrichmentEmail Automation
PromptCreate

Build me an agent workflow that runs every time someone submits one of our Typeform lead forms (lead magnet, demo request, waitlist). The trigger is an incoming Typeform webhook on the form_response event for the form(s) I'll select.

For each submission, the agent should do the following:

1. Parse the Typeform response. Pull out the email, first name (or full name), the form name/slug they completed, and the highest-signal answers (team size, role, pain point, budget, "interested in demo?" flag, or anything similar that appeared on the form). Normalize the email (lowercase, trim). If the email field is empty, malformed, or clearly fake, stop the workflow with no side effects.

2. Look up the contact in HubSpot by email using Get Contact with idProperty=email so it does a proper upsert lookup.

3. If no contact exists, call HubSpot Create Contact with email, first name, last name, and any other captured properties (company, phone, etc.).

4. If the contact already exists, do not overwrite their existing properties. Instead, call HubSpot Create Note associated with that contact. The note body should summarize which form they filled in, when, and the highest-signal answers in a short bulleted list.

5. Compose a short personalized follow-up email. Tone: transactional, warm, concise (3 to 5 short sentences). Reference one or two specific answers (their stated team size, their pain point, the form they filled). Do not include any raw HTML. Make sure every value we interpolate into the Postmark template is plain text and HTML-escaped before it goes into the model.

6. Send the email via Postmark Send Email with Template using the template alias lead_followup. Pass these template model variables: first_name, form_name, answer_summary (the bulleted list), and personalized_intro (the AI-written sentence that references their specific answers). From: a verified Postmark sender we control. To: the lead's normalized email.

7. If the response indicates a high-intent lead (any of: explicitly requested a demo, team size greater than 50, or budget greater than the threshold I'll configure), also call HubSpot Create Task. Assign it to the AE on duty (I'll specify which HubSpot owner), put the lead's email in the subject, summarize the form and the high-intent signals in the body, and set the due date to 24 hours from now.

Make it idempotent on repeated webhook deliveries: before doing any writes, check whether we've already created a note or task tied to this exact Typeform response token, and if so, skip. Log every run with the response token, the matched/created HubSpot contact id, and which steps actually executed so I can audit a single submission end to end.

What does this prompt do?

  • Catches every new submission from your chosen Typeform the moment it lands, with no copy-paste or manual export.
  • Upserts the lead into HubSpot. New emails become new contacts. Existing contacts get a fresh note summarizing which form they filled and their highest-signal answers.
  • Sends a short, transactional follow-up email through your Postmark template, personalized with their first name, the form they completed, and a sentence that quotes their own answers back to them.
  • Flags high-intent leads (demo requests, larger teams, bigger budgets) by creating a HubSpot task for the rep on duty with a 24-hour due date.

What do I need to use this?

  • A Typeform account with at least one lead form (lead magnet, demo request, waitlist) you want to follow up on.
  • A HubSpot account where contacts, notes, and tasks should land. Works on every paid tier and on HubSpot Free.
  • A Postmark account with a verified sender and a saved template named lead_followup.
  • The name of the rep or AE who should be assigned the task when a high-intent lead comes in.

How can I customize it?

  • Pick which Typeform forms trigger the workflow so it only runs on the ones you actually want followed up.
  • Tune what counts as a high-intent lead (which answers, team sizes, or budget thresholds trigger an AE task).
  • Edit the Postmark template content and the tone of the personalized line so the email matches your brand voice.

FAQs

Will this overwrite existing HubSpot contact properties?
No. If the contact already exists in HubSpot, we leave their existing fields alone and just add a fresh note that summarizes which form they filled and what they said.
What happens if someone submits the form without an email?
We skip the workflow entirely. There is no point creating a contact or sending a follow-up we cannot deliver, so empty or obviously fake email fields get dropped.
Can I use this on multiple Typeform forms at once?
Yes. Point the workflow at as many forms as you want. The form name flows into both the HubSpot note and the follow-up email, so each form stays distinct.
How fast does the email go out after someone submits?
Within seconds. Typeform sends a webhook the moment someone finishes the form, so HubSpot is updated and the email lands in their inbox almost immediately.
What stops the same lead from being emailed twice if Typeform retries the webhook?
The agent checks for an existing note tied to that exact response before doing anything, so retries do not create duplicate notes, tasks, or emails.

Related templates

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
iMessage campaign console with pre-flight checks and delivery board

Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.

LoopMessage
Google Sheets
HubSpot
App
A searchable RFP answer library your bid team drafts from

Every proposal you have ever submitted in one searchable archive, with the closest past answers lined up against each question in a new RFP.

General Input Storage
General Input Database
Mistral AI
+2
App
See which target accounts just started advertising on LinkedIn

Open one board each Monday to see which of your target accounts are running LinkedIn ads right now, and which only switched them on this week.

LinkedIn Ad Library
HubSpot
General Input Database
App
Account health board that puts product usage next to your CRM

Your customer success team opens one board where every account's logins, seats and usage trend sit beside its owner, plan and renewal date.

Looker
HubSpot
Slack Bot
App
Look up a customer's full chat history mid conversation

Your agent types an email and sees every past conversation, rating and tag next to the CRM record, then files notes without ever leaving the chat.

LiveChat
HubSpot
App

Follow up on every form lead in under a minute.

Connect Typeform, HubSpot, and Postmark once. We catch the response, log the contact, and send the email.