Communications Service Module
What This Service Is For
Communications sends association e-mail requested by business workflows and retains its history. It owns reusable publications, processed requests, recipient messages, protection, sender identity and account-wide lane capacity.
Boundary
Notifications owns staff inbox records and any future staff e-mail request it submits here. Business modules own purpose source records and their custom fields; CRM owns contact opt-out facts. Marketing owns campaigns and subscription decisions; Accounting owns invoice wording and attachments. Workspace lifecycle owns provisioning and the HQ sender read, while Communications implements sender identity behavior. The examined console scope has no template, communication-history or suppression administration screen.
Operations in Words
Expose communications API health and deployed build for operations.
Describe editable purposes, source fields, sample values and starter content. Inspect workspace templates with optional purpose and archived inclusion, excluding Marketing-owned content. Start editable content for a purpose that uses association templates. Inspect a template’s editable content, validation and current publication. Save replacement draft content only when the editor’s version is current. Remove a template from active use while retaining its publications. Save the draft’s validation results without creating a publication. Render selected draft or published content with sample or supplied values without sending it. Send a marked draft or publication test to the requester, a test mailbox or an allowed address. Create the next immutable snapshot after validating the draft. Inspect the publication history of one template. Retrieve the frozen content of a selected publication. Check one template or owner for send readiness and explain configuration blockers. Inspect workspace messages by recipient, request, source, purpose or delivery progress. Inspect a message with its attempts, referenced content and bounded provider-event history. Retrieve retained rendered content under the separate content-read permission. Stop a recipient message while it remains a draft. Inspect up to fifty newest requests associated with a specified source record. Inspect request acceptance, blocking reasons and recipient-message progress counts. Inspect active address suppressions, optionally including released history. Add a manual address suppression with an optional staff explanation. End an active suppression while retaining the staff actor and reason.
Accept a system request, persist its object and committed pointer, and return a receipt.
Accept a service request when the caller has no existing business transaction. Store the communication object and insert its pointer within the caller’s transaction. Provide service callers with readiness, test delivery and content preview. Compose, remove or retrieve the template owned by a business record. Return messages changed since a cursor, filtered by the supplied submitting-service label rather than authenticated service identity. Publish immutable content owned by a Marketing message version, returning the existing publication for an identical repeat. Wake communication dispatch after the caller commits its pointer.
Events and Jobs
Two sending lanes share acceptance and dispatch behavior. The dispatcher and quota guard run each minute, while feedback arrives through a separate queue. Sender lifecycle work creates or adopts provider identities, checks their presence and removes them during purge. Marketing content has a separate invocation capability; the external grant and its default-off adoption are not verified here.
Consistency Guarantees
An object written before rollback can remain unsent until thirty-day expiry. A retry can overwrite deterministic body objects left by a failed database transaction. An older unrecorded attempt can be closed unknown and resubmitted, creating duplicate-provider risk. Event commitment precedes suppression; duplicate feedback can skip a suppression that previously failed. Budget waits publish fresh delayed work rather than consume retries; Marketing pauses near quota exhaustion.