Import a contact list into your CRM without the cleanup
Contacts in the CRM with the fields mapped, and a list of the rows that needed a human decision. Built for whoever inherits the spreadsheet after a conference.
Google Sheets
HubSpot
5 steps2 integrationsRuns on demand
The conference spreadsheet never matches your CRM. What it costs while the work is still done by hand.
- 01Column names never match the CRM fields.
- 02Duplicates get created because nobody checks first.
- 03The import runs, and then someone fixes it by hand for a week.

Read the list318 rows · 7 columns
- Map columns7 mapped · 1 unmatched
Check dupessearch_contacts · 24 hits
- Review24 held for your decision
Write recordscreate_contact · 294 added
One workflow, five steps. ModuleX drafts this graph from a single sentence, and every step stays editable.
- 01Read the source list.
Google Sheets
- 02Map the columns onto your CRM fields.ModuleX
- 03Check each row against existing records to catch duplicates.
HubSpot
- 04Review the mapping and the duplicate list.ModuleX
- 05Create or update the records.
HubSpot
The workflow is an editable graph. Reading runs freely; review the mapping and the duplicate list waits for your opt-in approval until you loosen it. The graph is the receipt.
Imported, not cleaned up after. Paste this into ModuleX chat, or hit Use this workflow.

import a contact list into your CRM without the cleanup: read the source list; map the columns onto your CRM fields; check each row against existing records to catch duplicates; review the mapping and the duplicate list. Ask me before anything is sent or written.
to: composerOr skip the workflow entirely. Ask the assistant in chat and it runs the same job agentically: it picks the right actions, chains them, and reports back. The composer is for when you want it repeatable.

Import a contact list into your CRM without the cleanup. Contacts in the CRM with the fields mapped, and a list of the rows that needed a human decision.
google sheets · get_spreadsheet_info
hubspot · create_contact
Contacts in the CRM with the fields mapped, and a list of the rows that needed a human decision.
Where this fits. The tools it runs on, and the teams that run it.
Keep the momentum. Nearby workflows that reuse the accounts you just connected.
Inbound Lead RoutingNew leads get scored the moment they arrive and the hot ones land in #sales while your reps are still at their desks. A ModuleX agent rates buying intent, posts the strong leads to Slack, and files every contact in HubSpot.
Enrich a new lead before anyone calls itA lead record with the basics already filled in, and a note of where each field came from. Built for a sales team where half the inbound records arrive as a name and an email.
Draft a follow-up that knows where the deal standsA short, context-aware reply waiting in your drafts, with the ask made explicit. Built for an account executive with a dozen replies to write between calls, and no time to re-read every thread.
About this use case.
They are surfaced for your decision rather than merged silently.