Skip to main content Enter
ERP.AI CRM with Email Campaigns

CRM with Email Campaigns

Start now
Pricing Frequently asked questions Get started
Build with Proto

Modules

Audiences and CRM contactsBuild relevant audiences from contacts you are permitted to reach. Templates and contentTurn reusable content into an approved campaign message. Campaign planningPlan delivery around a reviewed audience, message and purpose.
Drip journeysFollow up over time with clear stops and next steps. Experiments and engagementLearn from observed engagement without overstating the result. Delivery and preferencesKeep delivery outcomes and subscriber preferences visible.

CRM with Email Campaigns

Start now
Pricing Frequently asked questions Get started
Build with Proto

Processes

Create an approved campaignCreate an approved campaign. Schedule and reconcile deliverySchedule and reconcile delivery. Honor preferences and manage suppressionHonor preferences and manage suppression.
Review an email experimentReview an email experiment. Run a drip journeyRun a drip journey.

CRM with Email Campaigns

Start now
Pricing Frequently asked questions Get started
Build with Proto

Industries

Customer marketing teamsTeams communicating with existing customers through purpose-specific product updates and follow-up journeys. Business services marketingMarketing teams coordinating consent-aware nurture campaigns with sales contact context.
Membership organizationsOrganizations managing newsletters, list preferences and planned communications across subscriber groups.

CRM with Email Campaigns

Start now
Pricing Frequently asked questions Get started
Build with Proto

Reference

Roles and permissionsUnderstand roles and permissions for CRM with Email Campaigns. Reports and analyticsUnderstand reports and analytics for CRM with Email Campaigns. Data modelUnderstand data model for CRM with Email Campaigns.
IntegrationsUnderstand integrations for CRM with Email Campaigns. ImplementationUnderstand implementation for CRM with Email Campaigns. Agent and automationUnderstand agent and automation for CRM with Email Campaigns.

CRM with Email Campaigns

Start now
Pricing Frequently asked questions Get started
Build with Proto
All systems
Modules
Audiences and CRM contactsBuild relevant audiences from contacts you are permitted to reach.Templates and contentTurn reusable content into an approved campaign message.Campaign planningPlan delivery around a reviewed audience, message and purpose.Drip journeysFollow up over time with clear stops and next steps.Experiments and engagementLearn from observed engagement without overstating the result.Delivery and preferencesKeep delivery outcomes and subscriber preferences visible.
Processes
Create an approved campaignCreate an approved campaign.Schedule and reconcile deliverySchedule and reconcile delivery.Honor preferences and manage suppressionHonor preferences and manage suppression.Review an email experimentReview an email experiment.Run a drip journeyRun a drip journey.
Industries
Customer marketing teamsTeams communicating with existing customers through purpose-specific product updates and follow-up journeys.Business services marketingMarketing teams coordinating consent-aware nurture campaigns with sales contact context.Membership organizationsOrganizations managing newsletters, list preferences and planned communications across subscriber groups.
Reference
Roles and permissionsUnderstand roles and permissions for CRM with Email Campaigns.Reports and analyticsUnderstand reports and analytics for CRM with Email Campaigns.Data modelUnderstand data model for CRM with Email Campaigns.IntegrationsUnderstand integrations for CRM with Email Campaigns.ImplementationUnderstand implementation for CRM with Email Campaigns.Agent and automationUnderstand agent and automation for CRM with Email Campaigns.
Sign in
Sign in Start now
CRM with Email Campaigns References
Data model3 of 6
  • Roles and permissions1 of 6
  • Reports and analytics2 of 6
  • Data model3 of 6
  • Integrations4 of 6
  • Implementation5 of 6
  • Agent and automation6 of 6

Data model

Understand data model for CRM with Email Campaigns.

31 tables · 69 relationships

Data model 28 of 31 tables drawn
mastertransaction SenderDomains.Owner → Users SenderIdentities.Domain → SenderDomains EmailTemplates.DefaultSenderIdentity → SenderIdentities EmailTemplates.DefaultFooter → EmailFooterTemplates EmailTemplates.Owner → Users TemplateBlocks.Template → EmailTemplates EmailFooterTemplates.BoundPreferencesCenter → PreferencesCenters PreferencesCenters.Domain → SenderDomains Lists.Owner → Users ListMemberships.List → Lists ABTestVariants.Test → ABTests SendRecipients.Send → Sends Journeys.Owner → Users JourneySteps.Journey → Journeys JourneySteps.Campaign → Campaigns IntegrationConnections.Owner → Users ListImports.TargetList → Lists ListImports.Submitter → Users Campaigns.Template → EmailTemplates Campaigns.TargetList → Lists Campaigns.SenderIdentity → SenderIdentities Campaigns.Footer → EmailFooterTemplates Campaigns.PreferencesCenter → PreferencesCenters Campaigns.ABTest → ABTests Campaigns.Owner → Users ABTests.Campaign → Campaigns ABTests.WinnerVariant → ABTestVariants ABTests.Owner → Users Sends.Campaign → Campaigns Sends.ABTest → ABTests Sends.Variant → ABTestVariants Sends.JourneyEnrollment → JourneyEnrollments Sends.JourneyStep → JourneySteps OpenEvents.Send → Sends OpenEvents.SendRecipient → SendRecipients ClickEvents.Send → Sends ClickEvents.SendRecipient → SendRecipients Bounces.Send → Sends Bounces.SendRecipient → SendRecipients Unsubscribes.Send → Sends Unsubscribes.ScopeList → Lists SpamReports.Send → Sends SpamReports.SendRecipient → SendRecipients Suppressions.AddedBy → Users JourneyEnrollments.Journey → Journeys JourneyEnrollments.NextStep → JourneySteps ConsentEvents.List → Lists SuppressionReviews.Suppression → Suppressions SuppressionReviews.RequestedBy → Users AuditEvents.Actor → Users UsersmasterUserIDFullNameEmail SenderDomainsmasterStatusDKIMStatusSPFStatus SenderIdentitiesmasterStatusDomainIdentityName EmailTemplatesmasterTemplateNumberStatusDefaultSenderIdentity TemplateBlocksmasterTemplateSequenceBlockType EmailFooterTemplatesmasterNameBoundPreferencesCenterFooterHTML PreferencesCentersmasterNameDomainPublicURL ListsmasterListNumberOwnerName ListMembershipsmasterStatusListSubscriber ABTestVariantsmasterTestVariantLabelSubjectLineVariant SendRecipientsmasterStatusSendSubscriber JourneysmasterJourneyNumberStatusOwner JourneyStepslineJourneyCampaignSequence IntegrationConnectionsmasterConnectionNumberStatusOwner ListImportstransactionImportNumberStatusTargetList CampaignstransactionCampaignNumberStatusTemplate ABTeststransactionTestNumberStatusCampaign SendstransactionSendNumberStatusCampaign OpenEventstransactionRecordNumberStatusSend ClickEventstransactionRecordNumberStatusSend BouncestransactionSMTPResponseCodeStatusSend UnsubscribestransactionRecordNumberStatusSend SpamReportstransactionRecordNumberStatusSend SuppressionstransactionRecordNumberStatusSubscriber JourneyEnrollmentstransactionEnrollmentNumberStatusJourney ConsentEventstransactionConsentNumberStatusSubscriber SuppressionReviewstransactionRequestNumberStatusSuppression AuditEventstransactionEventNumberStatusActor
Data model28 of 31 tables, within two hops of Campaigns

How the model is organised

Audiences and CRM contacts

Subscribers, Lists, ListMemberships, ListImports, ConsentEvents. Build relevant audiences from contacts you are permitted to reach.

  • Subscribers
  • Lists
  • ListMemberships
  • ListImports
  • ConsentEvents

Templates and content

EmailTemplates, TemplateBlocks, EmailFooterTemplates, SenderIdentities. Turn reusable content into an approved campaign message.

  • EmailTemplates
  • TemplateBlocks
  • EmailFooterTemplates
  • SenderIdentities

Campaign planning

Campaigns, Sends, SendRecipients, Lists. Plan delivery around a reviewed audience, message and purpose.

  • Campaigns
  • Sends
  • SendRecipients
  • Lists

Drip journeys

Journeys, JourneySteps, JourneyEnrollments, Sends. Follow up over time with clear stops and next steps.

  • Journeys
  • JourneySteps
  • JourneyEnrollments
  • Sends

Experiments and engagement

ABTests, ABTestVariants, OpenEvents, ClickEvents, Sends. Learn from observed engagement without overstating the result.

  • ABTests
  • ABTestVariants
  • OpenEvents
  • ClickEvents
  • Sends

Delivery and preferences

SenderDomains, SendRecipients, Bounces, SpamReports, Suppressions, SuppressionReviews, Unsubscribes. Keep delivery outcomes and subscriber preferences visible.

  • SenderDomains
  • SendRecipients
  • Bounces
  • SpamReports
  • Suppressions
  • SuppressionReviews
  • Unsubscribes

Keys and references

Preserve workspace-scoped identities, source references and current record revisions. Child records inherit parent scope. Retried commands and provider events resolve to their original occurrence.

Migration order

  1. 1 Configure workspace identities and role scopes.
  2. 2 Import reference records and resolve duplicates.
  3. 3 Import current customer work with its actual state and ownership.
  4. 4 Reconcile historical decisions and external references.
  5. 5 Test a complete handoff before enabling automated commands.

Tables

31 tables
UsersApp users — Admin, Email Marketing Manager, Email Designer, Deliverability Manager, Marketing Operations, Viewer.master
FieldTypeRequiredDetails
UserIDtextyes
FullNametextyes
Emailtextyes
RoleselectyesAdmin, Email Marketing Manager, Email Designer, Deliverability Manager, Marketing Operations, Campaign Approver, Viewer / Analyst
Departmenttext
Activebooleanyes
PrincipalIdtextyesUnique authenticated subject within WorkspaceKey; not inferred from Email.
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
SenderDomainsVerified sender domains used for outbound email. DKIM, SPF, and DMARC must be green before a domain can move from `Pending` to `Verified`. Reputation score is a rolling 30-day signal pulled from the ESP and the BlocklistChecks history.master
FieldTypeRequiredDetails
Domaintextyese.g. mail.acme.com
RootDomaintextyese.g. acme.com
StatusselectyesPending, Verified, Warming, Active, Paused, Disabled
DKIMStatusselectyesNotChecked, Failing, Passing
SPFStatusselectyesNotChecked, Failing, Passing
DMARCStatusselectyesNotChecked, None, Quarantine, Reject, Failing
ReputationScorenumber0–100, rolling 30-day, pulled from ESP
WarmupPlanDaysnumberTotal days of throttled ramp
WarmupStartedAtdate
DailyVolumeCapTodaynumberToday's per-domain cap during warm-up
Ownerreferenceyes→ Users (Deliverability Manager)
LastVerifiedAtdate
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
SenderIdentitiesA verified From-Name + From-Email pair tied to a SenderDomain. A Campaign sends from one SenderIdentity. CAN-SPAM requires the From line to clearly identify the sender — this is enforced by making `FromName` required and verified per identity.master
FieldTypeRequiredDetails
IdentityNametextyesInternal label, e.g. "Acme Marketing"
FromNametextyesDisplay name shown in inbox
FromEmailtextyes[email protected]
ReplyTotextOptional reply-to address
Domainreferenceyes→ SenderDomains
PhysicalPostalAddresstextyesCAN-SPAM physical address shown in footer
StatusselectyesPending, Verified, Active, Paused
LastUsedAtdate
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
EmailTemplatesA reusable email design. Composed of TemplateBlocks line items. Carries default subject line, preheader, sender, and footer binding. Each Campaign instantiates an EmailTemplate at send time — the rendered EmailContent body is snapshotted onto the Sends row and frozen.master
FieldTypeRequiredDetails
TemplateNumbertextyes
Nametextyes
CategoryselectyesNewsletter, Promotional, Announcement, Re-Engagement, EventInvite, Survey, Other
SubjectLinetextyesDefault subject — overridable per Campaign
PreheaderTexttextInbox preview text
BodyHTMLtextyesCompiled HTML body — the actual rendered email markup
BodyTexttextyesPlain-text alternative for accessibility + spam-score
DefaultSenderIdentityreference→ SenderIdentities
DefaultFooterreferenceyes→ EmailFooterTemplates
ThumbnailURLtext
Ownerreferenceyes→ Users (Email Designer)
StatusselectyesDraft, Submitted, Approved, Retired
LastEditedAtdate
Activebooleanyes
Versionnumberyes
ApprovedByreference→ Users
ApprovedAtdatetime
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
TemplateBlocksModular content blocks composing an EmailTemplate. The Designer edits blocks individually; the Template's BodyHTML is recompiled from blocks on save. Each block carries its own block-level HTML slot.master
FieldTypeRequiredDetails
Templatereferenceyes→ EmailTemplates
SequencenumberyesRender order
BlockTypeselectyesHeader, Hero, Body, Image, CTA, Divider, Spacer, Footer, Custom
BlockHTMLtextyesThe block's HTML slot
LabeltextEditor-side block label
LinkURLtextUsed for CTA / Image / Hero blocks
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
EmailFooterTemplatesCAN-SPAM-compliant footer templates. Every Campaign must bind to one. Carries the physical postal address (required by CAN-SPAM), the unsubscribe link slot, the preferences-center link slot, and optional company branding HTML.master
FieldTypeRequiredDetails
Nametextyes
FooterHTMLtextyesFull footer markup with merge slots for {unsubscribe}, {preferences}, {address}
FooterTexttextyesPlain-text version
PhysicalPostalAddresstextyesCAN-SPAM physical address
BoundPreferencesCenterreference→ PreferencesCenters
Activebooleanyes
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
PreferencesCentersBranded subscription preference page configuration. Subscribers land here from the {preferences} link in the footer; they can update topic preferences, change cadence, or fully unsubscribe. Each PreferencesCenter ties to a SenderDomain for the public URL.master
FieldTypeRequiredDetails
Nametextyes
PublicURLtextyese.g. https://prefs.acme.com/abc123
Domainreferenceyes→ SenderDomains
BrandingHTMLtextHeader / colors customization
OfferedListstextNewline-separated names of opt-in Lists exposed on the page
AllowFullUnsubscribebooleanyesSingle global unsubscribe button
Activebooleanyes
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
ListsSubscriber lists. A Subscriber can be on many Lists via ListMemberships. A Campaign targets exactly one List (segmentation is via additional filter on Subscribers within the List at send time).master
FieldTypeRequiredDetails
ListNumbertextyes
Nametextyes
Descriptiontext
ListTypeselectyesNewsletter, Product, Customer, Prospect, Event, ReEngagement, Other
OptInRequiredbooleanyesTrue for marketing lists per CAN-SPAM best practice
Ownerreferenceyes→ Users (Marketing Ops)
MemberCountActivenumberRollup, refreshed on membership change
Activebooleanyes
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
ListMembershipsPer-Subscriber membership in a List with subscribed-at date and membership status.master
FieldTypeRequiredDetails
Listreferenceyes→ Lists
Subscriberreferenceyes→ Subscribers
SubscribedAtdateyes
SourceselectyesWebForm, Import, API, Manual, Migration
StatusselectyesActive, Unsubscribed, Bounced, Complained
UnsubscribedAtdate
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
ListImportsBulk subscriber import jobs. Marketing Ops uploads a CSV; the import job validates each row (email syntax, MX lookup, role-based filter), creates or updates Subscribers, and stitches ListMemberships to the target List.transaction
FieldTypeRequiredDetails
ImportNumbertextyes
TargetListreferenceyes→ Lists
FileURLtextyesUploaded CSV location
Submitterreferenceyes→ Users
RowsTotalnumber
RowsImportednumber
RowsRejectednumber
RowsSkippedSuppressednumberRejected because email is on Suppressions
StatusselectyesQueued, Validating, Importing, Completed, Failed, Cancelled
StartedAtdate
CompletedAtdate
ErrorSummarytext
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
SubscribersThe recipient master. One row per unique email. Carries engagement score, status, and CCPA do-not-sell flag.master
FieldTypeRequiredDetails
EmailtextyesNatural key
FirstNametext
LastNametext
StatusselectyesActive, Bounced, Unsubscribed, Complained, Suppressed
EngagementScorenumber0–100, rolling, updated by engagement-score-update workflow
LastOpenedAtdate
LastClickedAtdate
FirstSubscribedAtdateyes
SourceselectyesWebForm, Import, API, Manual, Migration
StateUStextTwo-letter US state code, used for CCPA scoping
CCPADoNotSellbooleanHonored on send filtering
TimeZonetextIANA TZ for send-time optimization
ConfirmedOptInAtdateIf double opt-in flow used
OptInConfirmationSentAtdateWhen the confirmation email was sent (used for the 7-day expiry default)
SubscriberNumbertextyes
ContactPolicyselectyesUnknown, Permitted, Restricted, Withdrawn
PolicyPurposetextyes
CRMExternalReferencetextConfigured source CRM contact identifier; no implicit cross-system access.
OptInTokenHashtextStore a one-way token digest; never persist the raw confirmation token.
OptInTokenExpiresAtdatetime
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
CampaignsEmail-specific Campaign instance — distinct from the broader multi-channel `crm-campaigns` Campaign object. Binds a Template, a List, a SenderIdentity, a Footer, and a schedule. May carry an ABTest reference. Spawns one or more Sends rows (one for the main audience, one per A/B variant if applicable).transaction
FieldTypeRequiredDetails
CampaignNumbertextyes
Nametextyes
Templatereferenceyes→ EmailTemplates
TargetListreferenceyes→ Lists
AdditionalFiltertextOptional segment filter expression on Subscribers within the List
SenderIdentityreferenceyes→ SenderIdentities
Footerreferenceyes→ EmailFooterTemplates
PreferencesCenterreference→ PreferencesCenters
SubjectLineOverridetextOverrides Template.SubjectLine if set
ScheduledAtdateyes
SendTimeOptimizationbooleanPer-recipient TZ-aware send
ABTestreference→ ABTests
Ownerreferenceyes→ Users (Email Marketing Manager)
StatusselectyesDraft, Submitted, Approved, Scheduled, Sending, Completed, Paused, Cancelled
Notestext
PreparedByreferenceyes→ Users
ApprovedByreference→ Users
ApprovalRevisionnumber
ApprovedAtdatetime
StartTimedatetimeyesScheduled campaign window start in UTC.
EndTimedatetimeyesCampaign window end after StartTime.
Purposetextyes
AudienceRevisiontextyesFrozen audience rule and policy revision at approval.
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
ABTestsCampaign experiment with disjoint recipient variants, a declared supported engagement metric and a defined observation window. The system proposes a result from recorded evidence. An independent Campaign Approver authorizes a supported winner; insufficient evidence remains Inconclusive. Only the untouched eligible audience can receive the approved follow-on.transaction
FieldTypeRequiredDetails
TestNumbertextyes
Nametextyes
Campaignreferenceyes→ Campaigns
TestTypeselectyesSubjectLine, FromName, Content, SendTime
VariantCountnumberyes2–4
AudiencePercentPerVariantnumberyese.g. 10 → 10% of List per variant, remainder gets winner
WinningMetricselectyesOpenRate, ClickRate, ClickToOpenRate; calculated from deduplicated events with explicit signal quality; conversion attribution is outside this experiment model.
SignificanceWindowHoursnumberyese.g. 24, 48, 72
MinimumSampleSizenumberMinimum recipients per variant before winner can be declared
SignificanceThresholdnumbere.g. 0.95 confidence
WinnerVariantreference→ ABTestVariants; Populated only when Status IN ('WinnerApproved', 'Completed'); set by a supported independent approval for this same test.
WinnerDeclaredAtdatePopulated only when Status IN ('WinnerApproved', 'Completed'); timestamp of the supported independent winner approval.
StatusselectyesDraft, Running, WinnerPending, WinnerApproved, Inconclusive, Completed, Cancelled
Ownerreferenceyes→ Users
DecisionByreference→ Users
DecisionAtdatetime
AudienceSnapshottextyes
DecisionReasonlongtext
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
ABTestVariantsThe variant cells of an ABTest. Each variant carries the variant content (subject / from-name / content body / send-time) and the post-test results captured by the winner-detection workflow.master
FieldTypeRequiredDetails
Testreferenceyes→ ABTests
VariantLabeltextyesA, B, C, D
SubjectLineVarianttextUsed when TestType = SubjectLine
FromNameVarianttextUsed when TestType = FromName
ContentBodyHTMLVarianttextUsed when TestType = Content
SendTimeVariantdateUsed when TestType = SendTime
RecipientsnumberCaptured at send
DeliverednumberCaptured rolling
Opensnumber
UniqueOpensnumber
Clicksnumber
UniqueClicksnumber
OpenRatedecimalServer-derived; fx: UniqueOpens / Delivered
ClickRatedecimalServer-derived; fx: UniqueClicks / Delivered
IsWinnerboolean
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
SendsA single send batch. One Campaign produces one Sends row for a straight blast, or N+1 rows for an N-variant A/B (one per variant plus a follow-on winner send). Snapshots the rendered EmailContent body so the historical record is frozen against later template edits.transaction
FieldTypeRequiredDetails
SendNumbertextyes
Campaignreferenceyes→ Campaigns
ABTestreference→ ABTests
Variantreference→ ABTestVariants (set when this Send is one variant cell)
SendKindselectyesBlast, ABVariant, ABWinnerFollowOn
RenderedSubjectLinetextyesSnapshot at send
RenderedFromNametextyesSnapshot at send
RenderedFromEmailtextyesSnapshot at send
RenderedBodyHTMLtextyesFrozen snapshot of the email body that went out
RenderedBodyTexttextyesPlain-text alternative snapshot
ScheduledAtdateyes
StartedAtdate
CompletedAtdate
RecipientCountIntendednumberAfter suppression filter
RecipientCountSentnumber
RecipientCountFailednumber
StatusselectyesScheduled, Filtering, Sending, Sent, Completed, Paused, Failed, Unknown, Cancelled
ESPMessageBatchIDtextReturned by ESP for trace
JourneyEnrollmentreference→ JourneyEnrollments
JourneyStepreference→ JourneySteps
DispatchKeytextyesUnique campaign/version/audience or journey step intent.
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
SendRecipientsPer-recipient send result on a Sends batch. Created by the send pipeline after pre-send filtering. Captures whether the ESP accepted the message and the eventual delivery state.master
FieldTypeRequiredDetails
Sendreferenceyes→ Sends
Subscriberreferenceyes→ Subscribers
EmailAtSendtextyesSnapshot — Subscriber email may change later
StatusselectyesQueued, Sent, Delivered, Bounced, Failed, Suppressed, Unknown
ESPMessageIDtextPer-recipient ESP message ID for webhook correlation
QueuedAtdate
SentAtdate
DeliveredAtdate
FailureReasontext
DispatchKeytextyesUnique per send and subscriber; provider idempotency correlation.
ProviderAcceptedAtdatetime
LeaseUntildatetime
SuppressionCheckedAtdatetime
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
OpenEventsOpen events captured by the tracking pixel. Webhook-fed by the ESP. Multiple opens per recipient possible — UniqueOpens at the Send level dedupes by Subscriber.transaction
FieldTypeRequiredDetails
Sendreferenceyes→ Sends
SendRecipientreferenceyes→ SendRecipients
Subscriberreferenceyes→ Subscribers
OpenedAtdateyes
UserAgenttext
IPAddresstext
ESPMessageIDtext
ProviderEventIdtextDeduplicate each distinct provider event, not all events sharing a message ID.
SignalQualityselectyesHumanCandidate, Proxy, Bot, Unknown
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
RecordNumbertextyes
StatusselectyesRecorded, Superseded
ClickEventsLink click events captured by ESP click-tracking. Carries the clicked URL.transaction
FieldTypeRequiredDetails
Sendreferenceyes→ Sends
SendRecipientreferenceyes→ SendRecipients
Subscriberreferenceyes→ Subscribers
ClickedURLtextyes
ClickedAtdateyes
UserAgenttext
IPAddresstext
ESPMessageIDtext
ProviderEventIdtextDeduplicate each distinct provider event, not all events sharing a message ID.
SignalQualityselectyesHumanCandidate, Proxy, Bot, Unknown
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
RecordNumbertextyes
StatusselectyesRecorded, Superseded
BouncesBounce events fed from the ESP. Type drives downstream automation: hard bounces add the recipient to Suppressions; soft bounces are counted and only suppress after a threshold of consecutive softs.transaction
FieldTypeRequiredDetails
Sendreferenceyes→ Sends
SendRecipientreferenceyes→ SendRecipients
Subscriberreferenceyes→ Subscribers
BounceTypeselectyesSoft, Hard, Block
BounceReasontextESP-provided category, e.g. mailbox-full, no-such-user
SMTPResponseCodetext
BouncedAtdateyes
AddedToSuppressionsbooleanTrue after bounce-list-management workflow runs
ProviderEventIdtextDeduplicate each distinct provider event, not all events sharing a message ID.
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
RecordNumbertextyes
StatusselectyesRecorded, Superseded
UnsubscribesUnsubscribe events. Source distinguishes the action — link click, preferences-page submission, list-unsubscribe header, or a manual ops add.transaction
FieldTypeRequiredDetails
Sendreference→ Sends (null when sourced from preferences page off-send)
Subscriberreferenceyes→ Subscribers
SourceselectyesFooterLink, PreferencesPage, ListUnsubscribeHeader, ReplyParser, Manual
ScopeKindselectyesGlobal, ListSpecific
ScopeListreference→ Lists (set when ScopeKind = ListSpecific)
UnsubscribedAtdateyes
ReasonGiventextOptional free-text from preferences page
ProviderEventIdtextDeduplicate each distinct provider event, not all events sharing a message ID.
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
RecordNumbertextyes
StatusselectyesRecorded, Superseded
SpamReportsSpam / abuse complaint events fed from the ESP (FBL / ARF). Treated severely — every spam report adds the subscriber to Suppressions immediately and dings the SenderDomains.ReputationScore.transaction
FieldTypeRequiredDetails
Sendreferenceyes→ Sends
SendRecipientreferenceyes→ SendRecipients
Subscriberreferenceyes→ Subscribers
ReportedAtdateyes
ESPProviderselectSendGrid, SES, Mailgun, Other
MailboxselectGmail, Outlook, Yahoo, AOL, ProtonMail, Other
AddedToSuppressionsbooleanAlways true — set immediately on event ingest
ProviderEventIdtextDeduplicate each distinct provider event, not all events sharing a message ID.
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
RecordNumbertextyes
StatusselectyesRecorded, Superseded
SuppressionsWorkspace-global delivery blocks for hard bounces, configured bounce thresholds, complaints, global unsubscribe and independently reviewed manual causes. A ListSpecific unsubscribe affects only its named membership and purpose; it never creates a global suppression. Global blocks are deduplicated by normalized email and reason, retain their cause, and require independent review for removal. Removal cannot restore separate withdrawn consent.transaction
FieldTypeRequiredDetails
EmailtextyesSuppressed email — natural key
Subscriberreference→ Subscribers (null if suppression added before subscriber existed)
ReasonselectyesHardBounce, SoftBounceThreshold, Unsubscribe, SpamReport, ManualAdd, ImportRejection
SourceselectyesBounces, Unsubscribes, SpamReports, ListImports, Manual
AddedAtdateyes
AddedByreference→ Users (null when automated)
RemovedAtdate
RemovedByreference→ Users
RemovalRationaletextRequired when RemovedBy is set
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
RecordNumbertextyes
StatusselectyesRecorded, Superseded
BlocklistChecksPeriodic checks of SenderDomains and sending IPs against major real-time blocklists (Spamhaus, SORBS, Barracuda, etc.). Run on a daily schedule; flagged listings page the Deliverability Manager.transaction
FieldTypeRequiredDetails
Domainreferenceyes→ SenderDomains
BlocklistNameselectyesSpamhaus, SORBS, Barracuda, SpamCop, Other
Listedbooleanyes
ListingDetailtextURL or rationale from blocklist
CheckedAtdateyes
ResolvedAtdate
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
RecordNumbertextyes
StatusselectyesRecorded, Superseded
JourneysVersioned drip campaigns with reviewed audience and exit behavior.master
FieldTypeRequiredDetails
JourneyNumbertextyes
Nametextyes
Versionnumberyes
Ownerreferenceyes→ Users
ApprovedByreference→ Users
StatusselectyesDraft, Submitted, Approved, Paused, Retired
AdmissionPolicylongtextyes
ExitPolicylongtextyes
StartTimedatetimeyes
EndTimedatetimeyes
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
JourneyStepsOrdered campaign messages and delays in one journey version.line
FieldTypeRequiredDetails
Journeyreferenceyes→ Journeys
Sequencenumberyes
Campaignreferenceyes→ Campaigns
DelayHoursnumberyes
ExitOnReplybooleanyes
ExitOnConversionbooleanyes
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
JourneyEnrollmentsPer-subscriber progress through a fixed journey version.transaction
FieldTypeRequiredDetails
EnrollmentNumbertextyes
Journeyreferenceyes→ Journeys
Subscriberreferenceyes→ Subscribers
NextStepreference→ JourneySteps
AdmissionKeytextyesUnique journey version/subscriber/admission occurrence.
StatusselectyesPending, Active, Paused, Completed, Exited
EnrolledAtdatetimeyes
NextDueAtdatetime
ExitedAtdatetime
ExitReasontext
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
ConsentEventsScoped acquisition and preference evidence for subscriber contact policy.transaction
FieldTypeRequiredDetails
ConsentNumbertextyes
Subscriberreferenceyes→ Subscribers
Purposetextyes
DecisionselectyesPermitted, Restricted, Withdrawn
Listreference→ Lists
OccurredAtdatetimeyes
Evidenceattachment
StatusselectyesRecorded, Superseded
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
SuppressionReviewsIndependent review of an exceptional suppression removal request.transaction
FieldTypeRequiredDetails
RequestNumbertextyes
Suppressionreferenceyes→ Suppressions
RequestedByreferenceyes→ Users
DecisionByreference→ Users
Reasonlongtextyes
ReplacementPolicyEvidenceattachment
StatusselectyesDraft, Submitted, Approved, Rejected
SubmittedAtdatetimeyes
DecisionAtdatetime
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
AuditEventsAppend-only evidence of commands and independent decisions.transaction
FieldTypeRequiredDetails
EventNumbertextyes
CommandKeytextyesUnique workspace/action replay key.
RecordTypetextyes
RecordIdtextyes
Actiontextyes
Actorreferenceyes→ Users
OccurredAtdatetimeyes
BeforeStatelongtextyes
AfterStatelongtextyes
StatusselectyesRecorded, Superseded
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
IntegrationConnectionsExplicitly configured connector boundaries and credential references.master
FieldTypeRequiredDetails
ConnectionNumbertextyes
Nametextyes
Providertextyes
SecretReferencetextyes
StatusselectyesDisabled, Configured, Paused
Ownerreferenceyes→ Users
LastCheckedAtdatetime
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
IntegrationEventsIdempotent external delivery and reconciliation evidence.transaction
FieldTypeRequiredDetails
EventNumbertextyes
Connectionreferenceyes→ IntegrationConnections
ProviderEventIdtextyesUnique per connection when supplied.
CommandKeytextyes
RecordTypetextyes
RecordIdtextyes
ExternalReferencetext
StatusselectyesPending, Accepted, Confirmed, Failed, Unknown
OccurredAtdatetimeyes
FailureReasonlongtext
WorkspaceKeytextyesServer-enforced workspace scope.
RevisionnumberyesCompare-and-swap version; never client incremented.
CreatedAtdatetimeyesServer creation timestamp.
ERP•AI workspace

Start now CRM with Email Campaigns

Create your ERP.AI account and get started with Proto.

Start now Download agent
Previous · reference 2 of 6Reports and analyticsNext · reference 4 of 6Integrations

Customize CRM with Email Campaigns. With Proto, your desktop AI agent.

Ask Proto to help you customize CRM with Email Campaigns.

Customize
CRM with Email Campaigns.
Ask: “Adapt Audiences and CRM contacts.”
ProtoYour desktop AI agent
Download nowFree install · ~1 GB · AI usage extra
macOSWindowsLinux

Bring your first idea to Proto.

Keep this page open while you install Proto. Connect your account and model, then paste this into a new chat.

AI usage is paid separately. You can edit the prompt before copying.

ERP.AI

Business apps and the Proto desktop agent.

  • Business Apps
  • Proto
  • Workflows
  • Headless SaaS
  • Enterprise
  • Pricing
  • Contact
  • Terms of Service
  • Privacy Policy
  • Cookie Policy
© 2026 ERP•AI. All rights reserved.
System status

Your Privacy, Your Choice

We use essential cookies to run the site and optional cookies for features, analytics, and relevant content. See Cookie policy

Manage Your Cookie Preferences

We use cookies to enhance your experience, analyze site traffic, and serve relevant content. By clicking "Accept All," you agree to our use of cookies. You can customize your preferences at any time.

Learn more about how we use cookies

These cookies are required for the website to function properly. They ensure security, enable basic features like page navigation, and store user session data. You cannot disable these cookies.

These cookies enable additional features that enhance your experience, such as live chat, video playback, personalized content recommendations, and remembering user preferences.

These cookies help us understand how visitors interact with our site by collecting anonymous usage data. This allows us to measure performance, detect issues, and continuously improve the user experience.

These cookies allow us and advertising partners, including X, to deliver ads tailored to your interests. They track browsing habits across sites to provide relevant advertising and measure ad effectiveness.