Managing data sources
Create a data source and run its life cycle from the panel: the source states, how to monitor and force a sync, reconnect or resume a connection, and what happens to your contacts when you delete a source — including how unification and field mapping work.
Every data source has a life cycle: you create it, it imports and syncs, you keep an eye on it, and eventually you may reconnect or delete it. This page covers that life cycle from the panel — the states a source can be in, how to monitor and force a sync, and what deleting a source does to your contacts. It also explains the two mechanisms that run on every import: field mapping and unification.
Creating a data source
Open Data sources and select Add data source. The creation grid groups the options into CSV, Developers (the Ingest API) and Integrations (the connectors and webhook platforms):
- CSV or copy-paste opens the import wizard — see CSV & copy-paste.
- A connector or webhook platform opens its setup or connection screen — see Connectors and API & webhooks.
An empty project sends you straight to the creation grid the first time.
Source states
A source's badge tells you where it stands:
- Connected — authenticated and importing data normally.
- Draft — created but waiting for you to finish the connection. Use Resume to complete it.
- Waiting for first sync — the source is set up and its first import hasn't run yet.
- Syncing / Importing — a sync is running; the panel refreshes its progress while it works.
- Needs reconnection — a connector's authorization has expired or been revoked at the source; Reconnect before it can sync again.
- Disconnected — the connection is no longer active.
- Initial sync failed — the first import couldn't complete.
Monitoring and forcing a sync
Each source keeps a record of its syncs. Hover a source to see its recent activity and, where the source supports it, force a sync on demand. The initial import can always be re-run; connector and CSV sources that support it expose a resync action. Webhook and Ingest API sources show a stream log of the data coming in instead, since they receive data continuously rather than in scheduled runs. The last activity timestamp tells you when the source last received data.
Reconnect and resume
Two actions recover a source without rebuilding it:
- Reconnect re-establishes a connector's authorization (for example after the platform's token expires) and resumes syncing. It does not delete the source or its data.
- Resume finishes an authorization you started but didn't complete, moving a source out of the draft state.
Reach for these before deleting and re-creating — they keep the source's history and its place in unification intact.
Deleting a data source
Deleting a source is more consequential than it looks, because contacts are tied to the sources they came from:
If you only want to fix a broken connection, Reconnect instead — deleting and re-creating is not the way to refresh a source.
How unification works
Unification is what keeps one person as one contact even when they arrive from
several sources. Instasent matches contacts across sources by email
(the built-in _email attribute) and mobile phone (the built-in _phone_mobile
attribute): when an incoming contact shares
one of those identifiers with an existing contact, the two are merged into a single
profile rather than duplicated.
Because of this, each source needs a key field — the identifier that decides who is who. In the import wizard, if email or phone are not unique in your data, an extra deduplication step appears so you can resolve it. The panel warns you about how distinctive your chosen key is: below 85% unique values it shows an error notice, between 85% and 95% it warns. A CSV import may proceed with no real key (a random one), but connectors always require a real identifier.
Contacts with an empty (null) value in the matching field are never merged together: unification only joins contacts that actually share an email or phone, so missing identifiers don't collapse distinct people into one.
Field mapping
When data comes in, each incoming field (a CSV column, a connector attribute) is mapped to an Instasent attribute. The panel pre-scores likely matches, and you confirm or adjust each one. For every field you choose one of three strategies:
- Match to an existing attribute — send the field's values into an attribute you already have.
- Create a new attribute — make a brand-new attribute on the fly, named and typed from the import, without leaving the wizard.
- Ignore — leave the field out (at least one field must be mapped, not all ignored).
An attribute you've already mapped is removed from the options for the other rows, so two columns can't both land in the same attribute. See Attributes & events for what attributes are and how to manage them afterwards.