Skip to main content

contact_history fields

FieldDescription
organization_idOrganization ID tied to the record.
organization_nameFriendly organization name.
workspace_idUnique workspace identifier.
workspace_nameWorkspace name.
contact_history_idUnique Identifier.
campaign_idCampaign identifier in Hatch.
campaign_nameCampaign name.
current_lead_sourceSource assigned to the contact (e.g., integration:salesforce).
hatch_contact_idUnique contact ID from Hatch.
contact_statusField definitions below. Campaign engagement status (In Progress, No Reply, Replied, Canceled).
campaign_stageCurrent stage of the campaign workflow.
sales_valueSales amount associated with the contact (if provided).
opted_outBoolean flag showing whether the contact opted out.
emailContact email.
phoneContact phone number.
updated_atTimestamp when the record was last updated.
external_contact_idCRM-based customer or contact id from integrated CRM/lead source. (See Below)
appointment_idCRM-based appointment ID from integrated sources. (See Below)
invoice_idCRM-based invoice/estimate/sale ID from integrated sources. (See Below)

We are rolling these out integration by integration, so they may be null for now. The API passess through appointment_id, invoice_id, and external_contact_id values directly from CRMs & lead sources integrated with Hatch.

  • Appointment ID: The field that gets passed through, will be configured through the Reporting Settings, under Appointments.
  • Invoice ID: The field that gets passed through, will be configured through the Reporting Settings, under Sales.
  • External Contact ID: This field is not configurable, and based on Hatch’s own internal CRM mapping.

Hatch calculates contact_status values as campaigns progress. Use these labels to group performance inside your BI tools:

  • In Progress: The contact is actively moving through automated steps and can still receive follow-ups.
  • No Reply: Automation completed without a response from the contact.
  • Replied: The contact responded, so the automation ended and the conversation moved to your team.
  • Canceled: The contact was removed manually or due to rules (invalid info, opt-out, competing campaign, etc.).

conversation_items fields

FieldDescription
organization_idOrganization ID tied to the conversation.
organization_nameOrganization name.
workspace_idWorkspace ID.
workspace_nameWorkspace name.
idUnique identifier for the message.
conversation_idConversation identifier.
contact_idContact identifier for the participant.
actor_typeWho sent the message (contact, hatch_user, automated agent, etc.).
actor_idUnique ID for the actor (user/contact/bot).
categoryMessage category (e.g., sms, email, call).
typeMessage payload type (text, voicemail drop, etc.).
directionInbound vs. outbound.
bodyMessage body text (if applicable).
delivery_statusLatest delivery status from the provider.
status_historySerialized status change history for troubleshooting delivery failures.
chatbot_dispositionThe disposition a chatbot applied to the overall conversation (same for each conversation item)
send_atScheduled send time for delayed/scheduled messages.
is_scheduledIndicates whether the item was scheduled.
provider_nameExternal provider handling delivery (e.g., Twilio).
provider_message_idProvider-specific identifier for the message.
mongo_idUnique database source identifier.
updated_atTimestamp when the message item was last updated.