Almanac

Consultant-focused KB for Microsoft Dynamics 365 Contact Center: implementation notes, gotchas, and configuration decisions beyond the official docs — across voice and digital channels, routing, agent and supervisor experience, Copilot & AI, workforce engagement, analytics, administration and security.

feature-proactive-engagement-outcomes.mdv1 · history
CurrentApplies to BothUpdated 3 weeks agoSource Microsoft Learn ↗

What it does

Defines how a proactive voice call or SMS engagement is classified once it ends, so you can decide the next step: retry, trigger a follow-up process, or suppress further outreach. Outcomes come from three sources: fixed system-defined results (call and SMS lifecycle), values the AI agent sends back, and disposition codes set by the service representative. All three are stored in the proactive engagement tables and can be used together in reporting and orchestration.

Key facts

  • Voice results are system-defined and derived from call information, including SIP diagnostics and early media results from Azure Communication Services; they're stored as result values on the proactive delivery entity
  • Voice results include LiveAnswer, AnsweringMachine, AnsweringMachineHangup, Undetermined, NotAHandset, BotFailed, CallEnded, NoAnswer, InvalidAddress, CallFailed, NonRetriableError, Abandoned, Terminated, CSRCancelled, Unknown, Cancelled, Expired and Error
  • Busy is reported as NoAnswer (SIP 486, 600, 603, 607); historical records might still contain Busy
  • InvalidAddress maps to 404, 410, 484, 485, 604; CallFailed to 408, 480, 487, 500, 502, 503, 504; NonRetriableError to 401, 405, 407, 415, 488, 501, 505, and doesn't trigger an automatic reattempt
  • Abandoned applies to representative-led Progressive or Predictive dial modes (customer answered, representative wait exceeded); Terminated and CSRCancelled are Preview dial mode results where the customer wasn't called
  • Preview dial mode has no automatic answering machine detection. A Preview delivery can still show AnsweringMachine if the representative recorded the system Answering machine disposition; AnsweringMachineHangup and NotAHandset aren't derived for Preview calls
  • For AI-led calls, AnsweringMachine means the AI agent left a message (its Answering Machine Detection system topic enabled and set to leave one); AnsweringMachineHangup means it hung up without leaving one
  • SMS delivery outcomes include MessageSent, MessageFailed, ResponseTimeout, ConsumerEngaged, AgentEscalation, AgentAccepted, ConversationEnded, ConversationClosed, ConversationCancelled, ConversationCutoffExceeded, ConversationExists, EngagementAbandoned, OptOutReceived, Cancelled, Expired, Error and Unknown
  • MessageSent doesn't confirm the message reached the handset; it means it was passed to the SMS provider or carrier
  • ConversationCutoffExceeded means the customer engaged but the conversation sat with no activity for 15 days without being closed
  • AI agent outcomes (voice and SMS) are data values the agent sets and sends back; disposition codes are chosen by representatives, and for SMS workstreams they're added in workstream Advanced settings, with a choice of whether workstream-level requirements override global settings
  • SMS timeouts work in two stages: a first response timeout (starts when the message is sent, carrier confirmation not required) before a conversation exists, then workstream auto-close, agent inactivity timeout and timeout rules after it

When to use / skip

Use this as your reference whenever you're designing retry logic, campaign reporting or follow-up flows for proactive voice or SMS. You need to know which result values the platform will actually give you before you promise anything to a client.

Skip it if you're not running proactive engagement at all; inbound-only deployments never see these values.

Configuration decisions

  • Which outcomes trigger a reattempt, which close the record, and which feed a follow-up workflow (for example a reschedule task)
  • Whether to rely on system results alone, or also capture AI agent outcome values and representative disposition codes for business meaning (such as "Payment made")
  • Which disposition codes apply to SMS workstreams, and whether workstream requirements override global ones
  • First response timeout for proactive SMS, set against how your customers really reply
  • Workstream auto-close and agent inactivity timeout, kept aligned so conversations don't terminate inconsistently
  • Whether timeout rules are needed beyond default auto-close for idle conversations

Gotchas

  • Busy isn't its own result any more. Reports built on a Busy value will miss current data; treat NoAnswer as the union and check legacy records separately.
  • NonRetriableError won't be retried automatically. If a carrier maps a transient fault into those codes, nothing will pick it up for you.
  • Preview dial mode gives thinner outcomes. No automatic answering machine detection, and some results (AnsweringMachineHangup, NotAHandset) are never derived, so don't compare Preview figures with other modes like for like.
  • A late SMS reply isn't linked back. A reply after the first response timeout is treated as a new anonymous inbound SMS, not part of the original engagement.
  • ConversationExists means the message wasn't sent because an active conversation already exists between the same sender and recipient. A new outbound to the same customer can also cancel or abandon an earlier engagement (ConversationCancelled, EngagementAbandoned).
  • Mismatched inactivity settings between the workstream auto-close and the agent's own inactivity timeout give inconsistent termination for slow-reply SMS conversations.

Consultant notes

  • Agree the outcome taxonomy with the client before you build campaigns. The system results tell you what happened to the call; the AI agent values and disposition codes tell you what it meant to the business, and clients usually want the second without realising they need to design it.
  • Sit with whoever owns retry policy and walk the SIP-to-result mapping. Carriers behave differently, so test with your own provider rather than trusting the table to match what the reports show.
  • Put MessageSent in front of the client early. They'll read it as "delivered", and it isn't.

Source page last updated 29 Sept 2026. Revisit if new result values are added or the Preview dial mode behaviour changes.

Was this accurate?