LinkedIn
Decision-gated
LinkedIn engineering guide

Model an InMail send as a gated, entitlement-aware command

A systems guide to distinguishing InMail from ordinary conversation messages and proving sender entitlement, approval, budget, and provider outcome before any release.

Educational research only. LinkedIn account access remains decision-gated. No DewEngine LinkedIn connector is approved or implemented.
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
Questions

Before you build.

Can an integration substitute a normal LinkedIn message when InMail is unavailable?+

Not silently. The message types can have different recipient eligibility, product context, and customer expectations. Return a clear unsupported or ineligible outcome and let the user choose an authorized alternative.

Does DewEngine know an account's InMail balance today?+

No. There is no LinkedIn connector or conformance evidence. Any future balance or entitlement claim would need an approved provider contract, precise account-product mapping, freshness rules, and tests against eligible accounts.

Build with us

Does this match the workflow your users need?

DewEngine is in development. Real use cases decide what ships first.

Share your use case