Log every lead and handle demo requests and downloads differently by source
Every Fluent Forms lead is logged in Google Sheets. A Router then reads its source: demo requests alert sales in Slack and go to ActiveCampaign, and content downloads are added to ActiveCampaign.
Fluent Forms
Google Sheets
Slack
ActiveCampaign6 steps Setup ~12 min Used on 825 sites Revenue Ops Free to import

What this workflow does
Someone asking for a demo is ready to talk. Someone downloading a guide may only be starting to look. This workflow keeps a full record of both, and then treats them differently: demo requests get a fast heads-up for sales, while download leads go quietly into your email marketing.
Each lead submitted through Fluent Forms begins a run. A Google Sheets Add New Row step logs the lead first, for every submission. It ships unmapped, so after import you pick the spreadsheet and map the form fields into its columns.
A Router then checks a field named source. If it contains "demo", Slack gets a "Demo requested by" message with the name and email, and ActiveCampaign creates or updates the contact by email. If it contains "download", only the ActiveCampaign step runs. In both cases the name field goes into the first name and the last name is left empty.
A submission whose source has neither word is logged in the sheet and nothing else. One that contains both words would run both routes, so keep source values distinct, such as a hidden field set differently on your demo and download forms.
Demo form and gated ebook on one site
A SaaS company uses one Fluent Forms setup for demo bookings and ebook downloads, with a hidden source field telling them apart.
Sales alerts without the noise
The sales channel only hears about demo requests, while hundreds of content downloads go straight to ActiveCampaign for nurture emails.
One sheet with every lead
Marketing reviews the Google Sheet each month to count demo requests and downloads side by side.
How this workflow runs
What happens at each step once the workflow is on, and what you need before you import it.
Fluent Forms New Form SubmissionStarts on each new submission of your Fluent Forms form. The name, email and source fields are used by the later steps; rename them to fit your form.
Google Sheets Add New RowLogs every submission as a row in Google Sheets before any routing. The step ships unmapped: connect Google, pick the sheet and map the form fields to columns.
Router 2 pathsChecks the source field. Demo request: it contains "demo". Content download: it contains "download". Both routes run if both words appear, and neither runs if neither does.
Slack Send Channel MessageOn the Demo request route, posts a Slack message saying who requested a demo, with their name and email, to the sales channel you pick.
ActiveCampaign Create or Update ContactAlso on the Demo request route, adds the lead to ActiveCampaign or updates the matching contact, using the email and putting the name into the first name.
ActiveCampaign Create or Update ContactOn the Content download route, creates the lead as an ActiveCampaign contact or updates the existing one by email, with no Slack alert.
What you need
- FlowMatticCore
- Fluent Forms PluginPlugin
- Google Sheets AccountAccount
- Slack AccountAccount
- ActiveCampaign AccountAccount
After importing, map your own data. To keep the template universal, not every step is pre-filled. Open each step in the builder and connect your accounts and fields (channels, lists, sheets, recipients) before you switch the workflow on.
Make it yours
Changes worth making after you import it.
- Add a hidden source field to each Fluent Forms form, set to demo on the demo form and download on the content form, so every submission takes one route.
- Add a tag or list in ActiveCampaign on each route, after its Create or Update Contact step, so demo and download leads start different automations.
- Map the source and the submission date into the Google Sheets row, so the log shows which route each lead took.
- If your forms collect first and last names separately, map both into the ActiveCampaign steps.
Questions about this workflow
Is every Fluent Forms lead logged, even if the source matches nothing?
Yes. The Google Sheets step runs before the Router, so every submission gets a row. Leads with an unmatched source stop after that.
What happens when a demo or download lead is already in ActiveCampaign?
Create or Update Contact updates the existing contact instead of making a new one, so repeat leads don't create duplicates.
Can download leads also alert sales in Slack?
Yes. Add a Slack Send Channel Message step to the Content download route, before or after its ActiveCampaign step, with its own message text.
What does the lead log row in Google Sheets hold?
The ones you map. The Add New Row step ships empty, so choose the sheet and match form fields such as name, email and source to its headers.
More AI Sales & CRM workflows
Other ready-to-import templates from the same category.
Import this workflow into your WordPress site
Download the JSON, import it from the Workflows screen and connect your accounts. Every run stays on your server, with no per-task fees.
30-day money-back guarantee Unlimited workflows and runs Self-hosted
