Forms on a Hiveku site need no workflow for this: each submission with an email address already becomes a contact, or is added to the person’s existing contact. See Follow Up a Lead from Your Website. To do more with those leads (a thank-you email, a task for your team), see Reply to New Leads Automatically.
The Flow at a Glance
1. Webhook trigger
Receives form submissions
2. Upsert contact
Add to CRM with tags, once per email
3. Notify (optional)
Slack, email, or sequence
Step 1: Create the Workflow
1
Start a new workflow
Click Workflows in the left rail, then New Workflow. Name it something obvious like
Typeform leads to CRM. Check that the switch at the top right reads Disabled while you build.2
Add a Webhook trigger
Click Add Trigger > Webhook. Copy the generated URL and wire it to your form’s submit handler. See Start a Workflow from Another App with a Webhook for the details.
3
Add an Upsert Contact step
Add an Upsert Contact step. It is keyed on the email address: it updates the contact when the email is already in your CRM and creates one otherwise, so a visitor who sends two forms stays one contact. Fill in the field mappings. The Webhook trigger keeps the submitted form fields under
trigger.output.payload, so a posted email field is {{trigger.output.payload.email}}:- Name:
{{trigger.output.payload.name}} - Email:
{{trigger.output.payload.email}} - Phone:
{{trigger.output.payload.phone}} - Tags:
website-lead,{{trigger.output.payload.source || 'homepage-form'}}
4
Test, then switch it on
Click Save Workflow. On the trigger’s Input tab, paste a sample request body (or load the last one your form sent to the Test URL) and click Use for Test run, then Test Run. Saving steps are only simulated, so no contact is created. When the step’s Output looks right, click the switch so it reads Enabled.
Template Shortcut
If you want the whole flow (webhook + CRM + Slack + email sequence) in one click, start from a template instead: Workflows > New Workflow > Form Lead to CRM + Notifications It ships with sensible defaults; you just swap in your Slack URL.Adding Optional Steps
Notify the Team
Add a second action after the CRM step — either a Slack Notification step or a Send Email step to alert your sales team. See Tell Your Team When Something Happens.Start an Email Sequence
Add a Start Email Sequence action and pick the sequence (e.g., your 5-day welcome drip). The new contact is enrolled automatically. See Cold Email for sequence setup.Assign to a Rep
If your pipeline uses round-robin assignment, add an Assign Contact action and either pick a specific rep or use{{round_robin}} to rotate.
Handling Duplicates
Upsert Contact already keeps one contact per email address: a second submission from the same email updates that contact instead of adding another. (The Create Contact step, by contrast, adds a new contact every time.)Test It
1
Submit with test data
Use a recognizable test email like
you+test-1@example.com so you can find and delete it later.2
Check the CRM
Go to CRM > Contacts. The new contact should appear at the top of the list, with
website-lead and your source tag applied.3
Check the tags
Click the contact. Verify all expected tags are present.
4
Submit again — check for dedupe
Submit the same form again with the same email. The existing contact should update, not duplicate.
Troubleshooting
Contact never appears in the CRM
Contact never appears in the CRM
Click Runs at the top right of the workflow. If there are no runs, the trigger isn’t firing: check that the workflow is Enabled and that your form posts to the trigger’s URL. If runs exist but fail at the Create Contact step, the error message usually names the bad field (e.g.,
email required). Map it in the action and save.Duplicate contacts on repeat submissions
Duplicate contacts on repeat submissions
Use Upsert Contact, not Create Contact. For duplicates that already exist, open the contact you want to keep and merge the other into it: see Merge Duplicates.
Spam submissions are filling the CRM
Spam submissions are filling the CRM
If your form is on a Hiveku-hosted site, captured submissions are spam-scored automatically — spam is filed under the Spam filter in Analytics → Forms and never creates a CRM contact or fires a workflow. Turn on Form spam protection under Hosting → Integrations to add invisible reCAPTCHA scoring on top. See Form Submissions.If you wire your form’s submit handler straight to a workflow webhook (as in this recipe), that path skips the built-in scoring — so keep your own defenses too: a honeypot field (an input real users won’t fill; if filled, reject), and a Conditional step in the workflow that skips contacts where email contains suspicious patterns (gibberish, multiple + signs, etc.).
Email sequence doesn't kick off
Email sequence doesn't kick off
The Start Email Sequence action only fires if the contact has a valid email and hasn’t already been enrolled in that sequence. Check the contact’s activity log — there should be an
enrolled event. If not, the sequence might be paused — see Cold Email.What’s Next?
Tell Your Team
Email the team or post in Slack from this same workflow
Cold Email Sequences
Enroll new leads into a nurture drip
CRM Contacts
Manage contacts, tags, and filters