From a messy export to a documented import handoff
Ospivia Studio reading view of the original synthetic demonstration. The data and results are unchanged. Italian report · Back to the portfolio · Discuss a project
Synthetic demonstration data. Example target schema only; no real CRM import has been attempted.
Every source record has one destination: the example import file or the review queue. Conflicting IDs stay out of the import file until a person resolves them.
Reconciliation: 14 source = 6 import-ready + 8 review.
1. The agreed example target
UTF-8, comma-separated, LF line endings. All five values are text; ID, name and email are required. ID zeros, phone prefixes and Unicode stay intact. The order below is the output column order.
| source | target |
|---|---|
| External ID | contact_id |
| Contact Name | full_name |
| Email Address | |
| Phone Number | phone |
| Company Name | company |
2. Records meeting this example schema
Only surrounding whitespace and email case change. No enrichment or mailbox verification is performed.
| contact_id | full_name | phone | company | |
|---|---|---|---|---|
| 0001 | Alice Bianchi | alice.bianchi@example.test | +39 02 5550 0101 | Demo Italia |
| 0005 | 李 明 | li.ming@example.test | +86 10 5550 0105 | Unicode Demo |
| 0006 | Sara Example | sara@example.test | 0123456789 | <Demo & Sons> |
| 0008 | Élodie Dubois | elodie@example.test | 0033 1 5550 0108 | Démo SAS |
| 0009 | Sam Example | sam@example.test | ||
| 0010 | Amina Example | amina@example.test | 0001234500 | Demo Trading |
3. Review queue: nothing silently discarded
Record numbers count data records from 1, excluding the header. The CSV also preserves each review record's original values as JSON.
| source_record | reason_codes | related_source_records | contact_id | full_name | phone | company | |
|---|---|---|---|---|---|---|---|
| 2 | duplicate_conflict | 7 | 0002 | Zoë Müller | zoe.mueller@example.test | 0049 30 5550 0102 | Demo GmbH |
| 3 | missing_email | 0003 | Renée O’Connor | 00353 1 5550 0103 | Demo Ireland | ||
| 4 | invalid_email | 0004 | Diego García | diego@@example.test | +34 91 5550 0104 | Demo España | |
| 6 | duplicate_exact | 1 | 0001 | Alice Bianchi | alice.bianchi@example.test | +39 02 5550 0101 | Demo Italia |
| 7 | duplicate_conflict | 2 | 0002 | Zoë Müller | zoe.changed@example.test | 0049 30 5550 0102 | Demo GmbH |
| 8 | blank_row | ||||||
| 10 | missing_full_name | 0007 | no.name@example.test | Demo One | |||
| 11 | missing_contact_id | No ID Example | no.id@example.test | Demo One |
4. Explicit duplicate and acceptance rules
- Same exact text ID and identical normalized values: retain the first eligible record; send later copies to review.
- Same ID with any conflicting value: send every version to review, including the first.
- Blank records, missing required values and malformed email addresses go to review.
- Acceptance means matching this documented schema and accounting for all records. It does not establish compatibility with a real CRM.