01
Capability distinction
Do not treat InMail as another message flag
InMail belongs to a particular professional product context and may carry entitlement or credit behavior that ordinary conversation messaging does not. A unified command can share text, recipient, sender, and idempotency fields, but it must preserve the provider-specific message type. DewEngine has no approved InMail connector; the target remains decision-gated and cannot be inferred from the generic message.send catalog entry.
- Negotiate InMail support for the exact connected product
- Return unsupported instead of silently falling back to another message type
02
Sender authority
Bind the command to one entitled account
The application must identify the professional account that would act, the workspace user authorized to use it, and the customer purpose for contacting the recipient. A CRM API key is not sender consent. Account sharing, product changes, and revoked sessions must invalidate eligibility. Before approval, show the acting identity and any known product-specific constraint without claiming provider availability or remaining credits that were not verified.
- Recheck entitlement immediately before dispatch
- Record the human or policy decision that authorized the exact sender
03
Composition
Approve the final content, not a template name
Templates can assemble a subject or body, but variables may introduce wrong company names, stale roles, or sensitive candidate details. Render the final text and recipient context for review. Bind approval to an immutable content version, sender, recipient, and business record. A later edit or different recipient requires new approval rather than inheriting permission from the template configuration.
- Validate length and required fields only against an approved contract
- Store content hashes and audit metadata without leaking text into logs
04
Budget truth
Keep provider entitlement separate from product pacing
DewEngine would need its own conservative per-account and per-action budgets even if a provider reports an allowance. The two values answer different questions: provider entitlement may permit an action, while customer policy or safety pacing can still refuse it. Never invent a credit balance when the selected access contract does not supply reliable evidence, and stop on restriction, challenge, or ambiguous account state.
- Expose why a command was refused without fabricating quota numbers
- Use a kill switch that overrides queued eligibility
05
Outcome model
Acknowledge submission without claiming a reply
Persist an idempotent command before the provider attempt and record whether dispatch was acknowledged, rejected, or indeterminate. Provider acceptance does not prove that the recipient read, welcomed, or will answer the message. A response timeout after dispatch must not trigger an automatic duplicate. If an authorized read path exists, reconcile by stable message evidence; otherwise escalate the unknown outcome for review.
- Keep acknowledgement, delivery evidence, and business response distinct
- Pause follow-ups when outcome certainty is insufficient
06
Release gate
Prove InMail behavior on entitled accounts
Acceptance requires qualified legal review, provider or partner authorization, exact Sales Navigator or Recruiter product selection where relevant, consented real-account conformance, entitlement and credit accuracy tests, idempotency, timeout reconciliation, throttling, restriction, reply handling, audit, deletion, and kill-switch evidence. Until every advertised behavior passes, this page is educational architecture rather than a released send guide.
- Test entitlement loss between approval and dispatch
- Document every unsupported recipient or account state