The short answer
To import deals into Mautic from CSV, keep an untouched copy of your source export, prepare a clean working copy, and upload the file with the documented POST /api/dealflow/deals/import route as multipart form data. The published surface shows file=@deals.csv; it does not document accepted column headers, mapping parameters, or a response shape. Treat spreadsheet cleanup as preparation, not as an API schema, and check the imported records in Mautic before retiring the source system.
Deal Flow provides the CSV route for bulk ingestion. Its deal API guide is the operational reference for the request used below.
Scope: this guide separates migration preparation from the published upload contract. Worksheet labels are planning aids, not claimed import fields.
Protect the source export before cleanup
Start with two files: the untouched export from your spreadsheet or CRM, and a working copy you can clean. The untouched file is your reference if a title, value, stage label, or contact identifier changes during preparation.
- Save the original export with a date in its filename.
- Record which system produced it and when the export was taken.
- Do all cleanup in a separate working copy.
- Keep the source system available until you have reviewed the records in Mautic.
If the source is HubSpot, the Deal Flow vs HubSpot comparison can help your team decide which system should own deal work after the move. Make that ownership decision before you begin a recurring export-and-import routine.
Prepare a migration worksheet, not an assumed schema
Gather the information your team will need to review the migration: title, value, stage, and contact emails. Use those labels in a separate worksheet or cleanup checklist. The published import surface does not identify them as accepted CSV headers.
| Worksheet label | Preparation purpose | Do not assume |
|---|---|---|
| Title | Keep the source record name available for manual comparison. | That title is a required upload header. |
| Value | Preserve the source value and flag inconsistent formats for review. | How the importer names or converts a value field. |
| Stage | List each source label so the team can plan how it relates to stages in Mautic. | That source stage labels are mapped automatically. |
| Contact emails | Retain contact identifiers for reconciliation after the upload. | That email addresses create or connect associations during import. |
Do not turn this table into a sample header row. It is a preparation checklist. The current published specification does not define CSV headers or mappings.
In the working copy, flag blank or inconsistent values, keep a separate glossary of source stage labels, and set possible duplicate records aside for manual review. These steps improve the review process without making assumptions about importer behavior.
Upload the CSV through the documented route
The documented request uses Mautic Basic Auth and multipart form data. Set your instance URL and credentials in local environment variables, then send the file as file=@deals.csv.
export MAUTIC_URL="https://mautic.example.com"
export MAUTIC_USER="your-username"
export MAUTIC_PASSWORD="your-password"
curl --user "$MAUTIC_USER:$MAUTIC_PASSWORD" \
--request POST \
--form "file=@deals.csv" \
"$MAUTIC_URL/api/dealflow/deals/import"
This example deliberately ends with the upload request. The published specification does not provide mapping parameters, an example response, imported-row counts, or returned identifiers, so the guide does not supply them.
Verify the migration against your worksheet
Use a representative working file first, then inspect Mautic directly rather than relying on an assumed response format. Compare what you see with the untouched export and the preparation worksheet.
- Upload a working copy with the documented request.
- Review deal titles, values, and stages in Mautic.
- Use the saved contact emails to reconcile deal-to-contact relationships; do not assume the upload connected them.
- Resolve discrepancies in another working copy while preserving the original export.
- Continue with the remaining records after the representative review is complete.
This review sequence is migration guidance, not a description of importer validation or error handling.
Use n8n when deals must be created programmatically
The CSV route is the documented path for bulk ingestion. When a workflow needs to create individual deals as events arrive, follow the Mautic deals with n8n guide. It documents the Deal Flow node's Create Deal action for programmatic workflows.
Keep the two routes distinct: use the published CSV request for a migration file, and use the documented n8n node when an ongoing workflow creates one deal at a time.
Bring deal work into Mautic
Deal Flow adds pipelines, deal records, and buying-committee context to your Mautic instance.
See Deal Flow options Try free for 7 daysFrequently asked questions
What CSV columns does the Deal Flow import require?
The current published specification does not document required headers or field mappings. This guide uses title, value, stage, and contact emails only as a preparation worksheet; it does not present them as accepted import fields.
What is documented for the CSV upload request?
The documented request is POST /api/dealflow/deals/import using Basic Auth and multipart file=@deals.csv. The published specification does not provide mapping parameters or a response shape.
Does the published REST table include a single-deal creation route?
No. The published REST table does not include a single-deal creation route. For a workflow that creates individual deals programmatically, use the Deal Flow n8n node guide.
Should I keep the original spreadsheet export?
Yes. Keep the source export unchanged and do cleanup in a working copy. That gives you a stable reference for checking titles, values, stages, and contact identifiers after the upload.