Fill in contact templates before importing
Preview empty templates with their columns intact and handle empty_import before applying an import.
4 October 2026
Contact templates keep their column headers when previewed without data rows. POST /v1/contacts/import/preview returns 200 with total=0, rows=[] and source_headers in source order; dry_run=true does the same.
Download the template, enter your contacts, upload the filled file and review the column mapping before applying it. The downloaded CSV uses UTF-8 with BOM and commas. If you convert the template to XLSX, preserve its original headers.
POST /v1/contacts/import rejects a file with no data rows with HTTP 422, business_rule_violation, subcode empty_import and param file. No import record is created and no work is queued. Fill in the template and retry.
Both operations still require contacts:write. MCP preview_contacts_import and import_contacts follow the same distinction between preview and apply.
Updated endpoints2
| Endpoint | Description |
|---|---|
POST/v1/contacts/import/preview | Preview a contact import |
POST/v1/contacts/import | Import contacts |