Welcome new Typeform leads with SimpleTexting and add them to HubSpot
Every new form response becomes a SimpleTexting contact, a tagged welcome text, and a fresh HubSpot lead. No copy-paste, no missed leads.
Build a code workflow (deterministic, fixed nodes, no agent or LLM steps) that runs every time my Typeform form receives a new response.
Trigger: incoming webhook from Typeform's outgoing webhooks, configured on the form to fire on new responses. Parse the response payload to extract the standard lead fields and any qualifying answers.
Fields to pull off the payload, in this order: first name, last name, email, phone (E.164 digits with no plus sign or spaces), and any qualifying answers I map per form (for example: company, role, interest area, budget). Expose each field reference as an input so I can rebind them when I plug in a different form.
Step 1 (only if phone is present): call SimpleTexting Create Contact with upsert=true, keyed on phone. Set firstName, lastName, and email. Pass the qualifying answers as a customFields object keyed by the merge tag or field name, so they are searchable inside SimpleTexting.
Step 2 (only if phone is present): call SimpleTexting Add Contact to List, using the contact returned by step 1 and a list name input that defaults to "New leads".
Step 3 (only if phone is present): call SimpleTexting Send Message in AUTO mode to that contact with a templated welcome SMS. The body should reference the contact's first name as a merge tag, for example: "Hey {first_name}, thanks for reaching out, we will be in touch shortly." Expose both the message body and the sender phone number as workflow inputs.
Step 4 (always runs): call HubSpot Create Contact with the properties email, firstname, lastname, phone, lifecyclestage set to "lead", and a source property (hs_lead_source or a custom property like typeform_source) recording the Typeform form id and form title the response came from.
Branching rule: if phone is missing or empty after parsing, skip steps 1, 2, and 3 entirely and run only step 4 so the HubSpot contact still gets created. If email is also missing, log a warning and end the run without writing anywhere.
All field mappings must be explicit, structured node inputs that are visible and editable in the workflow editor. Do not introduce any agent reasoning, LLM calls, or auto-generated content. The welcome text body and the SimpleTexting list name are the only free-text inputs.
Additional information
What does this prompt do?
- Triggers the moment someone finishes your Typeform, so the welcome text hits while the form is still fresh in their mind.
- Adds or updates the lead in SimpleTexting by phone number, stores their form answers as custom fields, and drops them into your New Leads list.
- Sends a personal-feeling welcome text that uses the lead's first name, and politely skips the text when no phone was provided.
- Creates a matching HubSpot contact set to the lead lifecycle stage, with the source Typeform recorded so attribution stays clean.
What do I need to use this?
- A Typeform account and the form you want to capture leads from.
- A SimpleTexting account with an approved API token and a contact list to drop new leads into.
- A HubSpot account where new contacts can be created.
How can I customize it?
- Edit the welcome message wording, tone, or first-name merge tag to match your brand voice.
- Point new contacts at a different SimpleTexting list, or split leads between lists based on a form answer.
- Pick a different HubSpot lifecycle stage, or add extra properties like company, role, or campaign source.
Frequently asked questions
What happens if the lead does not share a phone number?
Will this create duplicates in SimpleTexting if the same person fills the form twice?
Can I send the welcome text from a specific SimpleTexting number?
Do I need a paid HubSpot plan?
How fast does the welcome text actually arrive?
Stop chasing new leads with copy-paste.
Connect Typeform, SimpleTexting, and HubSpot once, and every new form response gets a welcome text and a fresh CRM contact in seconds.