A lead that sits in a form inbox for a day is a lead that has probably talked to someone else. This guide shows you how to build one automation in Zapier that does two things the moment someone fills in your website form: it adds them to your CRM, and it tells your team in Slack.
We use HubSpot CRM as the example because its free plan is where many small businesses start, but the same steps work with most CRMs Zapier supports. You don’t need any coding knowledge. This is a multi-step Zap, so check Zapier’s current plans to see what the free tier allows and how much usage you’d need for your lead volume.
Zapier
Marketing automation · Best for no-code workflows- Connects thousands of apps without code
- Multi-step Zaps with branching
- Free plan for simple automations
Plan the flow
Five minutes on paper saves an hour of clicking. Before you open Zapier, write down three things.
- The trigger. Which form, on which tool, starts the flow? If you have several forms, decide whether they all feed one Zap or each gets its own.
- The fields. List every field the form collects: name, email, company, phone, message, and anything like “budget” or “service needed”. Then note which CRM property each one should land in.
- The alert. Which Slack channel should hear about new leads, and what does the team need to see at a glance to act on it?
The finished Zap will look like this: form submitted → (optional filter) → (optional formatting) → create or update contact in HubSpot → post message in Slack. Putting the CRM step before Slack means the Slack message can include a link to the new contact record.
One more thing to check: make sure you can log in to all three accounts (your form tool, HubSpot and Slack) with permission to connect apps. In Slack, some workspaces require an admin to approve new apps, so ask early.
Trigger from a form
Create a new Zap and search for your form tool as the trigger app. Zapier supports most popular form builders, including Google Forms, Typeform and the common WordPress form plugins. Choose the trigger event for a new submission or new entry.
Connect your account when prompted, then pick the specific form. If your form tool isn’t listed, look for a webhook option in its settings: Zapier can catch webhooks too, though that route is slightly more technical.
Now submit a test entry on your real form using an email address you control, with every field filled in. Back in Zapier, pull in that test record. Having a complete sample is important, because later steps can only map fields that appear in the sample data.
Use clearly fake but realistic test data, like “Test Lead” at your own email. It makes test records easy to find and delete in the CRM afterwards.
Add the CRM step
Add an action step and choose HubSpot. For the event, pick the option that creates or updates a contact rather than one that only creates. That way, if a returning visitor fills in your form again, Zapier updates their existing record instead of making a duplicate. HubSpot matches contacts by email address, so the email field is the one that matters most.
Connect your HubSpot account, then map the fields. For each HubSpot property, click into the box and choose the matching value from your form’s sample data:
- Email → the form’s email field (required).
- First and last name → split name fields if your form has them; see the formatting step below if it only has one.
- Company, phone, website → the matching form fields, if you collect them.
- Lead status or lifecycle stage → a fixed value such as “Lead”, typed in directly, so new contacts land in the right place.
- Lead source → a fixed value naming the form, so you can see later which form brought in which leads.
If you want the form’s free-text message in HubSpot, either map it to a custom contact property you’ve created in HubSpot or add another HubSpot step after this one that creates a note on the contact. Test the step and check that the contact appears in HubSpot with the right details.
Add the Slack notification
Add another action and choose Slack. Pick the event for sending a message to a channel, connect your workspace and choose the channel. A dedicated channel such as #new-leads works better than #general, since people can choose to get notified about it.
Write the message so someone can act on it without opening anything. A good pattern:
- A bold first line with the lead’s name and company.
- Their email and phone on the next line.
- What they asked for, taken from the message or “service needed” field.
- A link to the contact in HubSpot, built from the contact ID the previous step returned. Check HubSpot’s record URL format in your own account and paste the ID into it.
Slack’s message options in Zapier also let you set a bot name and icon. Naming it something like “Lead Bot” makes the alerts easy to spot. Test the step and check the channel.
Filters and formatting
This is the part that turns a working Zap into a reliable one. Both tools are built into Zapier and slot in between the trigger and the CRM step.
Filter out junk
Add a filter step right after the trigger so the Zap only continues when conditions are met. Common rules: the email field exists, the email doesn’t contain your own domain (so internal tests don’t clutter the CRM), or a “type of enquiry” field matches “sales” rather than “support”. Filtered-out runs stop quietly and usually don’t count against your usage.
Tidy the data
Zapier’s formatter step handles small clean-ups. Use it to split a single “Full name” field into first and last name, change names to title case, trim stray spaces, or make email addresses lowercase so HubSpot matches returning contacts correctly. After adding a formatter, go back to the HubSpot step and map the formatted output instead of the raw field.
Route by type
If different leads should go to different channels, for example by region or service, Zapier’s paths feature can branch the flow. Paths depend on your plan, so if you’re on the free plan, the simpler alternative is two Zaps with opposite filters.
Test and turn on
Zapier tests each step as you build it, but run one full end-to-end test before you rely on it:
- Publish the Zap so it’s switched on.
- Submit your live form with a fresh test address.
- Check HubSpot for the new contact and its properties.
- Check Slack for the message and click the HubSpot link.
- Submit the same email again and confirm it updated the contact rather than creating a duplicate.
- Delete the test contacts.
Depending on your plan and form tool, there may be a short delay between a submission and the Zap running. That’s normal; instant triggers depend on the app. Name your Zap clearly, something like “Website form → HubSpot + Slack”, so you can find it later.
Troubleshooting
Zapier keeps a history of every run, showing the data that went in and out of each step. That’s the first place to look when something goes wrong.
- Nothing happens. Check the Zap is switched on and that you picked the right form. If the form was edited, refresh the trigger’s sample data.
- Duplicate contacts. Make sure the HubSpot step creates or updates rather than only creates, and that emails are lowercase.
- Empty fields in HubSpot. The field was probably blank in your sample data when you mapped it. Submit a complete test entry and remap.
- The Zap turned itself off. Usually a disconnected account or an expired login. Reconnect the app in Zapier’s app connections and replay failed runs from the history.
- Slack messages in the wrong place. Private channels only appear if the connected Slack account is a member of them.
Once this is running, the same pattern works for booking tools like Calendly or email platforms like ActiveCampaign. Read our full Zapier review to see what else it can do, or the Zapier alternatives page if costs are a concern.
FAQ
Can I do this on Zapier’s free plan?
It depends on the current free tier. Multi-step Zaps, filters and paths have historically depended on the plan, so confirm the limits on Zapier’s pricing page. If the free tier won’t cover it, you can split the flow into two simpler Zaps or start with the CRM step alone.
Doesn’t HubSpot have its own forms?
It does, and if you use HubSpot forms, contacts go straight into the CRM without Zapier. You’d then only need Zapier, or HubSpot’s own Slack integration, for the notification.
Will this work with a different CRM?
Yes. Swap the HubSpot step for your CRM’s equivalent action. Look for a “find or create” or “create or update” option to avoid duplicates.