Pick an identifier strategy first
Before you write any data, decide how you’ll reconcile Metal records with your source system. Every resource has a Metal-assignedid, but you can attach your own identifiers so you never have to store a mapping table.
| Field | Use it for |
|---|---|
externalId | A single stable identifier you control (for example, a CRM record ID). |
externalReference | A structured reference to a source system when one ID isn’t enough. |
Create records
A company needs only acanonicalName. Supply a website when you have one — it dramatically improves enrichment accuracy.
companyId, and people link to a company through company:
Keep records in sync
When a record changes in your system, update it in Metal. You can address a record by Metalid or by the externalId you set on create.
Build an upsert loop
For an ongoing sync, fetch byexternalId, then create the record if it’s missing or update it if it exists. This keeps the job idempotent — safe to re-run without creating duplicates.
Sync jobs make many calls in a row. Handle rate limits with backoff, and check errors before reading a response body.
Next steps
Enrich what you sync
Fill in firmographics and financials after creating records.
Organize into lists
Group synced records to work with them in bulk.

