Skip to main content
Most integrations start by pushing your firm’s data into Metal: the companies you track, the deals in your pipeline, and the people you know. This guide shows how to create records and keep them current as your source systems change.

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-assigned id, but you can attach your own identifiers so you never have to store a mapping table.
Set externalId on create. It lets you fetch, update, and de-duplicate records later without tracking Metal’s id yourself. See the data model for the full field reference.

Create records

A company needs only a canonicalName. Supply a website when you have one — it dramatically improves enrichment accuracy.
Deals point at a target company through 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 Metal id or by the externalId you set on create.

Build an upsert loop

For an ongoing sync, fetch by externalId, 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.