Skip to content
Beta

Guides Data coverage

Data coverage

What Totem records, since when, and how to tell an empty value from a fact that was never recorded.

The API returns what Totem has recorded, and tells you where each fact came from. It does not rebuild old attribution, invent status changes nobody recorded, or include the content of messages. This page tells you which facts you can rely on, and what an empty value means.

What Totem records, and since when

FactWhere it comes fromLimits
Who the lead is, and where it standsThe lead as it is now: contact details, status, board and stage.People on the team can edit these at any time. A value this version of the API does not know arrives as null, other or unknown, depending on the field; All objects says which.
How the lead first arrived (attribution.original_capture)Recorded once, when the lead was created (capture: at_creation). A lead with no such record, because it was created before Totem started recording it or its creation was not recorded, gets a copy of the lead as it was when its team was first added to an integration (capture: at_activation).An at_activation copy shows the lead on that day, not the form the person first filled in.
The latest ad form (attribution.latest_submission)The newest ad form submission recorded for the lead, including a repeat from a contact Totem already had.It never changes how the lead first arrived. Google Ads and LinkedIn submissions stop being readable after 90 days (expires_at). A LinkedIn submission the person later deleted is no longer shown. When a submission expires or is withdrawn, the changes feed delivers a new lead_attribution version without it, which can show an older submission instead; replace your copy with it. LinkedIn Lead Sync cannot be connected today, and only Totem can connect Google Ads lead forms, so most teams have no google_ads or linkedin submissions.
Campaign, ad and form details from Google, LinkedIn and MetaWhat the ad platform sent, field by field, each with its provenance.Totem does not attribute leads after the fact, and does not look ids up in the platforms' APIs to fill gaps.
The ad that opened a conversation (original_capture.ad_referral)The first Meta ad referral of the conversation that created the lead.Only from the day Totem started recording it, as the note above explains. Never the messages.
Activities, and the dates they set (converted_at, revived_at)Each change of stage, status or assigned members that Totem recorded.Only from the day Totem started recording them, as the note above explains. Totem does not invent changes it did not record.
How the team has responded (the lead's response)The times of messages and calls across the lead's conversations.Erased messages and web-chat visitor messages are not counted, and imported WhatsApp history does not count as a customer message or as a reply. A reply is a sent message recorded as a conversation reply or with no purpose. Outreach and transactional messages, such as reminders, are left out when they are recorded as such, but many automated sends carry no purpose and do count as replies. Totem reads at most 20 conversations, 200 messages and 50 calls per lead; past that, coverage.truncated is true.
Calls, conversations and bookingsThe metadata Totem stores for each one.A link to a lead that no longer exists is null. No recordings, transcripts, notes or payments. A booking rescheduled before Totem started recording reschedule links may lack its rescheduled_from or rescheduled_to link.
Contact permissionsThe refusals Totem stored, each with its provenance.A null consent means unknown, never yes. Apply permissions before you contact anyone.

Provenance and empty values

Many fields tell you where their value came from:

  • capture, on original_capture: at_creation when it was recorded as the lead was created, or at_activation when it was copied once, as the team was first added to an integration, for a lead that had no capture record: one created before Totem started recording attribution, or whose creation was not recorded.
  • provenance, on each campaign, ad, form and UTM field: provider when the ad platform sent it, team_alias when someone on the team typed it, stored_metadata when it comes from lead data the team can edit, stored_metadata_at_activation when that data was copied once at activation, and not_captured exactly when value is null.
  • source_provenance, on a lead: server_written when Totem stamped the source itself from the ad platform, or member_editable when people on the team can change it.
  • original_capture_missing_reason and latest_submission_missing_reason: not_captured whenever the object next to them is null, whatever the reason: Totem did not record it, the lead never came from an ad form, or the submission expired or was withdrawn.

And when a value is empty:

  • A null date is not proof that something never happened. It can mean Totem did not record it.
  • A null consent is unknown. It is never consent.
  • Check coverage.truncated before you treat a lead's response as complete.

All objects describes every field, and lists every value each of these fields can take today.

API version 1.0a