Skip to content

🧩 ClientVerse Modules — Dispatch Requires the ClientVerse Modules package. Clients on Core only won't see this.

Dispatch

Available since: ClientVerse Modules 0.1 (shipped).

What it is

Dispatch is ClientVerse's data-driven notification and digest engine. An admin defines what to send, who receives it, how often, and through which channel; a scheduled job then evaluates that definition, builds one message per recipient from live Salesforce data, and delivers it by email and/or in-app notification. The same engine powers ClientVerse's ERM (Experience / Relationship Management) review workflows — for example single-threaded-relationship review and auto-promotion.

Think of it as "reports that find you" plus the review actions that go with them, instead of dashboards people have to remember to open.

Who it's for

  • Admins build and tune dispatches (the bulk of the configuration objects target this persona).
  • Attorneys and BD are the recipients — they read digests/notifications, take actions from them, and manage their own subscriptions.

How it works

Dispatch is built from a small set of objects in a clear hierarchy. Full object meanings are in objects/dispatch.yaml; field-level reference is in the Data Dictionary.

1. Definition

A Dispatch Definition (Dispatch_Definition__c) is the central configuration record — the roadmap board tracks the digest-generation work behind it (P3.3, P3.6). One definition describes:

  • What to queryPrimary_Object__c and Entry_Criteria__c select the qualifying records.
  • Who receives itSubscriber_Source__c (criteria, list, or role) plus Subscriber_Criteria__c.
  • When it runsFrequency__c, Run_Times__c, Day_of_Week__c, Day_of_Month__c, Timezone__c.
  • How it's branded and sentEmail_Subject_Template__c, From_Name__c, From_Address__c, Reply_To__c, and Enable_Reply_Routing__c (route replies back into Salesforce via a flow).
  • Delivery modeContext_Mode__c (per-recipient vs shared digest) and Use_External_MAP__c (send through an external marketing platform instead of Salesforce email).

Dispatch_Definition__c has 48 fields total; the rest cover throttling, retry, branding HTML, and activity creation.

2. Run

When the schedule fires, a Dispatch Run (Dispatch_Run__c) records that execution. It is the audit trail for one send: Run_Type__c (scheduled / manual / test), Status__c, Records_Evaluated__c, Items_Created__c, Items_Sent__c, Items_Failed__c, and an Error_Summary__c for troubleshooting.

3. Run Item — per-recipient delivery

A run produces one Dispatch Run Item (Dispatch_Run_Item__c) per recipient: the fully rendered, addressed message. It stores Rendered_Subject__c / Rendered_Body__c, the delivery Status__c, and engagement timestamps (Sent_At__c, Opened_At__c, Clicked_At__c, Reply_Received__c). Skip_Reason__c explains anything that wasn't sent.

4. Delivery & subscriptions

Recipients are enrolled through Dispatch Subscriptions (Dispatch_Subscription__c). A subscription links a subscriber (Subscriber_User__c or Subscriber_Contact__c) to a definition, with per-subscriber overrides: Delivery_Channel__c (email, in-app, or both), Frequency_Override__c, and Filters_JSON__c. Assignment_Source__c records whether it came from auto-enrollment or a manual opt-in; Unsubscribed_Date__c records opt-out. Role-based auto-enrollment is driven by Dispatch_Role_Mapping__mdt (e.g. enroll all relationship managers in a given digest).

5. Sections & data tables

A digest body is composed of ordered Dispatch Sections (Dispatch_Section__c) — each a rich-text block or a data table, with its own Visibility_Rule__c and Hide_If_Empty__c. A table section is configured by Dispatch DataTable Config (Dispatch_DataTable_Config__c) — its Data_Source_Type__c (SOQL template, report, list view, or Apex), row limit, sort, and Enable_Inline_Edit__c — and its columns by Dispatch DataTable Column (Dispatch_DataTable_Column__c), which set field, format, alignment, width, and highlight rule. This is the Data Table Component from the roadmap (P3.5).

6. Actions

A digest or notification can carry call-to-action buttons defined by Dispatch Action (Dispatch_Action__c): Action_Type__c of Flow, URL, or record update, with placement and a Visibility_Condition__c. Each action declares what it records via Log_Action_Type__c.

Correction. Earlier revisions of this guide referred to a Dispatch_Action_Log__c audit object. It was removed before Modules 0.1.0 and has never shipped. Recipient actions and engagement live on the Run Item (Dispatch_Run_Item__c): Actions_Taken__c, plus Opened_At__c, Clicked_At__c, View_Count__c, Reply_Count__c, and Reply_Received__c.

7. ERM review workflows

Dispatch underpins ClientVerse's relationship-review behaviors (roadmap NCR 1–5):

  • Single-threaded review — surface relationships served by only one person for review, with action gating and defined deletion behavior (NCR 1–3).
  • Auto-promotion on review-window expiryReview_Window_Hours__c sets how long reviewers have; Auto_Promotion_Behavior__c decides what happens when the window lapses (NCR 4).
  • Mark-private visibility enforcement — private relationships stay hidden from digests (NCR 5).

How to use it

User view (attorneys / BD)

  • You receive digests and notifications on the channel your subscription specifies; opens and clicks are tracked on the Run Item.
  • Manage your enrollment from your Dispatch Subscriptions — change channel or frequency, adjust filters, or unsubscribe.
  • Use the action buttons in a digest (run a flow, open a record, complete an ERM review) directly from the message; every action is logged.
  • The Outlook App integration (roadmap P3.4) brings ClientVerse content into Outlook for recipients who live in email.

Admin view

  1. Create a Dispatch_Definition__c, set its primary object and entry criteria, schedule, and branding.
  2. Add Dispatch_Section__c records for the body; for tabular sections add a Dispatch_DataTable_Config__c and its columns.
  3. Define recipients via Subscriber_Source__c and/or Dispatch_Role_Mapping__mdt auto-enrollment.
  4. Add any Dispatch_Action__c call-to-actions.
  5. Set Active__c to enable scheduling. Use a test run to preview before going live.
  6. Monitor Dispatch_Run__c / Dispatch_Run_Item__c for delivery health and Error_Summary__c.

Configuration pointers

  • Setup app: CV_Dispatch_Setup; permission sets CV_Dispatch_Admin and CV_Dispatch_User (CV_Dispatch_Lawyer is the pre-0.4.0 end-user set and still works). All of them require CV_Modules_Access first.
  • Batch sizing (definition batch, run-item batch, insert chunk) is tuned via Dispatch_Config__mdt.
  • See the Admin Guide for step-by-step setup and the Configuration Reference for the custom-metadata settings.

Key objects

Cited from objects/dispatch.yaml (Dispatch owns 12 objects and extends 2):

Object Role
Dispatch_Definition__c Central configuration for one notification/digest
Dispatch_Subscription__c A recipient's enrollment + overrides
Dispatch_Run__c One execution (audit record)
Dispatch_Run_Item__c One rendered, addressed message per recipient
Dispatch_Section__c A content block (rich text or data table)
Dispatch_DataTable_Config__c / Dispatch_DataTable_Column__c Table source + columns
Dispatch_Action__c Call-to-action buttons (audit now recorded on Dispatch_Run_Item__c)
Dispatch_Settings__c Org throttle state (contact-email limit)
Dispatch_Config__mdt, Dispatch_Role_Mapping__mdt Batch config, role auto-enrollment

Dispatch also extends the Core Activity object (lookup back to the Run Item that created a task/event) and Clientverse_Log__c (so Dispatch activity surfaces in Core logging).

Limits & known issues

  • Core dependency. Modules 0.4.0 requires Core 1.1.7 (declared dependency ClientVerse Core Unlocked@1.1.7-6). The floor moved up from 1.1.4 in this release, so an org running Modules 0.3.0 without trouble can still be below it — upgrade Core before Modules. See ../../_package-facts/sync-report.md.
  • Contact email throttling. Org-level daily contact-email limits are enforced through Dispatch_Settings__c; sends beyond the limit are skipped (Skip_Reason__c) until the next reset.
  • External delivery via Use_External_MAP__c depends on an external marketing platform being configured.
  • AI-authored digest content is not a Dispatch feature. The AI module ships separately in Modules 0.4.0 and is not wired into digest rendering — a digest's content comes from its sections and data tables, not from a model. See AI — shipped, early access.