Turn a weekly leads spreadsheet into CRM contacts automatically
Once a week, this workflow reads the rows of a Google Sheets leads list, loops through them with an Iterator, creates or updates a FluentCRM contact for each lead and sends that person a short welcome email.
Google Sheets
FluentCRM
5 steps Setup ~8 min Used on 1.9k sites Revenue Ops Free to import

What this workflow does
Leads often pile up in a shared spreadsheet: names from a trade show, a partner's referral list, a sheet your sales assistant keeps. Someone then has to copy them into the CRM and write to each one. This workflow does that on a weekly timer, so the sheet stays the place people add leads and your CRM catches up on its own.
Every seven days the Schedule trigger wakes the workflow up. The Google Sheets step gets rows from the spreadsheet you connect. An Iterator then takes that list of rows and runs the next two steps once per row. For each row, FluentCRM creates a contact from the email, first name and last name values, or updates the contact when that email is already in your CRM. Last, the Email step sends a welcome message to the same address, greeting the lead by first name.
The template does not mark rows as done. Each weekly run reads the sheet again, so a lead who stays on it is updated in FluentCRM again and gets the welcome email again. Clear handled rows, or add a Filter as the tips explain, before you switch it on. Task History shows every run and each pass of the loop.
Trade show badge scans
Your team pastes the week's badge scans into a sheet with email, first name and last name columns. By the next run each visitor is a FluentCRM contact and has a welcome note in their inbox.
Partner referral sheet
A reseller adds referred prospects to a shared Google Sheet. You get them into FluentCRM without giving the partner a WordPress login, and each prospect hears from you that week.
Moving a lead list off spreadsheets
You kept leads in Google Sheets before installing FluentCRM. Run the workflow once to bring the list across, then keep it scheduled for the rows people still add by hand.
How this workflow runs
What happens at each step once the workflow is on, and what you need before you import it.
Schedule Every WeekStarts the workflow on a weekly schedule. Nothing else triggers it, so leads added mid-week wait until the next run.
Google Sheets Get RowsGets rows from the Google Sheets spreadsheet you connect after import. Their values are passed on as a list for the Iterator to work through.
Iterator Loop Through ArrayLoops through the rows returned by Google Sheets. The FluentCRM and Email steps after it run once for each row, using that row's values.
FluentCRM Create or Update ContactCreates a FluentCRM contact from the row's email, first_name and last_name values, or updates the contact if that email already exists in your CRM.
- Email Send Email
Sends a welcome email to the lead's address with the subject Welcome aboard, greeting them by first name. Edit the subject and text to match your own voice before going live.
What you need
- FlowMatticCore
- Google Sheets AccountAccount
- FluentCRM PluginPlugin
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 status column to the sheet and a Filter after the Iterator that continues only when it is empty. Leads you have already handled then skip the FluentCRM and Email steps on later runs.
- Map more columns into the FluentCRM step, such as a company or phone column, if your sheet holds them. Run a test first so you can see the exact column names the Iterator returns.
- Add a FluentCRM Add Tags to Contact step after the contact step, so leads that came from the sheet carry a tag you can segment on later.
Questions about this workflow
Will a lead get the welcome email every week?
Yes, if the row is still in the sheet. Each run reads the rows again and emails every one. Remove handled rows, or add a status column and a Filter, so only new leads are emailed.
Does FluentCRM create duplicates when a lead is in the sheet twice?
No. The step creates or updates by email, so a repeated address updates the same FluentCRM contact. The Email step still runs for each row, though.
What column names does my Google Sheet need?
The template maps values called email, first_name and last_name from each row. Use those headers, or remap the FluentCRM and Email steps to your own after a test run.
Can I run it daily instead of weekly?
Yes. Change the Schedule trigger to a daily or custom interval. Remember that every run reads the sheet again, so set up a way to skip handled rows first.
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


