Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Proactive engagement in Dynamics 365 helps your organization improve customer interactions by initiating outbound communications through the voice and SMS channels. This feature helps your business streamline customer outreach, boost agent productivity, and deliver personalized experiences. This article explains how to configure proactive engagement settings, including dialing modes, routing details, and operational rules to optimize your customer service operations.
Prerequisites
- Voice channel is provisioned and configured. Learn more in Provision channels and Install the voice channel.
- Dynamics 365 Customer Insights if you want to use journey for your customer journey authoring.
- Microsoft Copilot Studio to use Copilot agents.
Set up an outbound workstream
Create a workstream by selecting the Outbound option. Learn more in Create and manage workstreams.
In the Setup Behaviors section of the workstream, select Setup.
On the Phone number page, select a number in the Shared numbers list. You can use a number configured for an outbound profile (for representative dialing in Copilot Service workspace) or outbound workstream only. Learn more in Configure phone numbers for outbound calling.
Note
By using Azure Communication Services, you can use Direct Routing numbers only. By using Teams Phone numbers, you can use Direct Routing, Direct Offer, and Operator Connect numbers.
Set up the language and outbound behaviors. Learn more in Configure the voice channel.
Configure work distribution. Optionally add an AI agent to the workstream, and configure representative notifications. The following notification templates are available out of the box:
- Voice call - outbound agent dial - default: For preview dial mode calls
- Voice call - outbound pre-dial - default: For predictive, progressive, and Copilot dial mode calls
The system automatically configures the routing rules based on the proactive engagement settings. These rules appear under the Auto generated rules (advanced) section of the workstream.
Configure settings to engage proactively with customers
In the site map of Copilot Service admin center, go to the settings by using one of the following methods. Then, create a proactive engagement setting.
- Select Productivity under Support experience. Select Manage for Proactive engagements, and then select New.
- Select Workstreams under Customer support, select an outbound workstream for voice, and on the workstream page, select New proactive engagement.
The Create new proactive engagement wizard guides you through the steps outlined in the following sections:
- Audience
- Details
- Dialing modes (voice only)
- Display number configuration (voice only)
- Reattempts (voice only)
- Frequency limits
- Preferences (SMS only)
- SMS template configuration (SMS only)
- Summary
Audience
On the Audience page, configure how you source customers and lead the engagement.
Under Select your audience, choose how to provide customer contact information:
- Contact Center: If you select this option, choose one of the following intake methods:
- Upload a file
- CCaaS API
- MCP (preview)
- Conversational Journeys in Customer Insights: This option is available only if Customer Insights is enabled. Select if you want to create conversation journeys in Customer Insights.
- Contact Center: If you select this option, choose one of the following intake methods:
Under Engagement type, select one of the options to determine how the call is handled:
- Led by representatives: Always connect customers to service representatives.
- Led by AI: Let Copilot interact with customers first as they answer the calls, then add representatives at the right moment.
Note
A single workstream can run both AI-led and representative-led proactive engagements simultaneously.
Select Next.
Details
On the Details page, configure the engagement identity, routing, and business unit.
In Engagement details, enter the following information:
- Name: A name for the proactive engagement. The service representative sees the name on the conversation form.
- Description: A description that helps service representatives understand the purpose of the call. The name and description are visible to representatives during the call.
- Workstream: Select the outbound workstream. If you create the proactive engagement from within a workstream, this value is preselected.
- Channel type: The channel used for the proactive engagement.
Under Contact unique identifier, select the contact attribute to use as the unique identifier. The dropdown lists only those attributes that are marked as unique key eligible on the Contact table. The default is contactid. The system performs an update or insert using this identifier. If an incoming record matches an existing contact, the record is updated. Otherwise, the system creates a new contact. Select the correct identifier to prevent duplicate contact records.
- If Dynamics 365 Contact Center is your system of record, use contactid (the Dynamics 365 contact GUID).
- If you use an external system such as a CRM or MDM system, create a custom attribute on the Contact table to store your external identifier, and then select the custom attribute. By passing your external system's ID in the input, you can make sure duplicates aren't created and the data in the contact center stays updated.
In Routing details, enter the following details:
- Primary queue: Select a queue.
- Fallback queue: The system populates the queue name based on the fallback queue set for the outbound workstream.
- Skills: Select the skills required for the proactive engagement.
The Business unit field is automatically set to the business unit of the user creating the engagement. The Owner field shows the owner that you can change if needed.
Select Next.
Dialing modes
The dial modes determine how the system places outbound calls to customers. Learn more in Dial modes for proactive engagement.
Select one of the following dial modes:
- Copilot: Applies to AI agent-led engagements. The system automatically dials the customer and connects the call to the AI agent when the customer answers. Use this mode for high-volume outbound calls.
- Preview: Applies to representative-led engagements. The system notifies a service representative of the outbound call request and after acceptance, places the call to the customer.
- Progressive: Applies to both representative- and AI agent-led engagements. The system starts calls equal to the number of available representatives, and on customer answer adds a representative or AI agent based on the engagement type. If type is representative led, service representatives are reserved ahead of time for a good customer experience.
- Predictive: The system starts calls proportional to the number of available agents or representatives, and on customer answer adds a representative or AI agent based on the engagement type. A predictive model considers factors like representative availability, abandonment rate, and answer rate to determine the number of calls to initiate per representative. If type is representative led, representatives are reserved ahead of time to ensure a good customer experience.
Priority determines the processing order of the proactive engagement. Select one of the following priority levels:
Normal
High
Critical
Priority also determines the processing order when multiple proactive engagements compete for the same representatives (same queue and skill set). Higher-priority engagements are processed first. For example, if a critical and a normal proactive engagement both target the same queue, the system processes the critical engagement first and handles the normal engagement only when no higher-priority requests are pending.
The system processes proactive engagements with same priority in a queue in a round robin manner to ensure fair processing.
In Call order, select one of the following options to define how the system processes requests within each proactive engagement:
- Earliest Scheduled Date - Processes records that are close to end of calling window first.
- Last in First Out - Processes most recent records first, in a last in first out manner.
- First in, First Out - Processes older records first, in a first in first out manner.
- Custom priority ascending: Processes records in ascending order based on a priority attribute (date or number) specified in the contact list or API payload.
- Custom priority descending: Processes records in descending order based on the priority attribute. When custom priority is used, if a runtime misconfiguration is detected - such as missing or invalid priority data - the system falls back to first in, first out processing of the misconfigured records.
For Copilot dial mode, configure the Call settings:
- Select the Max number of concurrent calls for Copilot Mode that refers to the maximum number of calls the AI agent can make concurrently. The maximum number that you can specify is 500.
- Under Operating hours, select the checkbox if calls can be made outside of queue hours. This setting is available for Copilot dial mode only.
- Select the action for how the call needs to be handled if the AI agent fails during the call.
- Stop making calls immediately: No further calls are made.
- Continue making calls:
- Rate of failure reaches: Select a value from the Percent dropdown list. The default value is one and the maximum value is five.
For preview dial mode, configure the Call settings:
- Automatic: The system initiates the call after a countdown timer expires. The timer starts when a representative accepts the invite. Specify the duration in seconds for the timer. Service representatives can start the call early or cancel it before the timer expires.
- Manual: The service representative must manually start the call after reviewing customer details.
Note
Timer and delayed start are available on Teams Phone Extensibility only. If you're using Azure Communication Services, preview calls start automatically after the representative accepts the invite.
For AI agent-led predictive dial mode, configure the Call settings:
- Select the action for how the call needs to be handled if the AI agent fails during the call.
- Stop making calls immediately: No further calls are made.
- Continue making calls:
- Rate of failure reaches: Select a value from the Percent dropdown list. The default value is one and the maximum value is five.
- Select the action for how the call needs to be handled if the AI agent fails during the call.
For AI agent-led progressive dial mode, configure the Call settings:
- Select the max number of calls that can be assigned to the representative in Maximum calls per representative. This setting is available for the progressive dial mode. A lower number indicates a balanced call volume for the representative. You can specify up to five calls.
- Select the action for how the call needs to be handled if the AI agent fails during the call.
- Stop making calls immediately: No further calls are made.
- Continue making calls:
- Rate of failure reaches: Select a value from the Percent dropdown list. The default value is one and the maximum value is five.
Note
For AI agent-led engagements, answering machine detection is configured in the Copilot IVR agents.
For representative-led progressive and predictive dial modes,
- Select the action if answering machine is detected.
- End call immediately ends the call if a voicemail or answering machine is detected.
- Leave a voicemail plays the text in Voicemail prompt at the appropriate time, at the end of the greeting.
- Call is abandoned after: Enter the duration after which a call is considered abandoned if no service representative connects after the customer answers.
- Abandoned message: Enter the message that plays to the customer waiting on line if the call is abandoned before the call ends.
Important
The call connection time for service representative-led progressive and predictive dial modes isn't compliant with the Telephone Consumer Protection Act (TCPA). Review applicable telecommunications regulations before using service representative-led modes.
- Select the action if answering machine is detected.
For AI agent-led engagements, select Use rules to set rules for the following parameters that help control the throttling and pacing for the proactive engagement:
- Abandonment rate: (Copilot, progressive, and predictive modes). The percentage of customers who hang up before connecting with a representative.
- Average wait time: (Copilot, progressive, and predictive modes). The average amount of time it takes for customers to connect to representatives.
- Escalation count: (Copilot mode). The total number of escalations made from the AI agent.
- Open concurrent escalations: (Copilot mode). The total number of open escalations that aren't resolved.
- Percentage of queue: (Predictive mode) To balance queue capacity, set how much percent of the queue you want dedicated to the proactive engagement.
For representative-led progressive and predictive dial modes, select Use rules to set rules for the following parameters that help control the throttling and pacing for the proactive engagement:
- Abandonment rate: The maximum percentage of customers who don't get connected to a representative before the threshold mentioned in the duration. The proactive engagement pauses if the threshold is reached and requires manual intervention to restart the proactive engagement.
- Percentage of queue: To balance queue capacity, set the percent of the queue you want dedicated to the proactive engagement.
Select Next.
Display number configuration
On Display number configuration, choose the phone numbers to use for outbound calls.
The Workstream number is the default display number and you can't change it for the engagement.
In Display numbers, select one or more phone numbers to use as display numbers. You can't use shared numbers for existing workstreams as display numbers.
Note
Calls originate from the display number. Display numbers must match the number type of the workstream number. For example, if the workstream uses Azure Communication Services Direct Routing numbers, display numbers must also be Azure Communication Services Direct Routing numbers. You can use numbers that aren't used in an outbound workstream. You configure multiple display numbers at the engagement level only. You can't add multiple display numbers on the workstream itself.
Under Distribution, choose how the system selects the number to use for each call:
- Automated: The system rotates through display numbers by using pseudo-random selection, ensuring equal distribution across all configured numbers. You can't control a specific number to be used for a specific call.
- Rule-based: Create custom rules to distribute calls based on contact attributes. Specify up to five rules by using the following fields:
- Field: The contact attribute to match on, such as State, City, or Zip code.
- Condition: The matching condition, such as Starts with.
- Value: The value to match.
- Display number: The number to use when the rule matches.
Select Next.
Reattempts
On the Reattempts page, configure retry behavior for contacts who aren't reached on the first attempt.
Under Abandonment reasons, select the call outcomes that trigger a reattempt:
- No answer
- Busy
- Failed
- Answering Machine
This list of systemic outcomes is fixed. You can't add custom values to it.
In Disposition codes, select any disposition codes that trigger a reattempt. These codes represent business outcomes that service representatives set during or after a call. To make a code available for reattempt selection, create it under the category Not right party. The same disposition codes also appear on the representative's screen during the call. Learn more in Configure disposition codes.
Under Retry settings, specify Number of attempts, Wait time, and one of the following Priority values:
- Same as new deliveries
- Higher than new deliveries
- Lower than new deliveries
Under Follow up on SMS, optionally select an SMS proactive engagement configuration to use when all retry attempts are exhausted. Select None if no fallback is needed.
Note
SMS fallback is currently in preview and requires opting in to the preview.
Select Next.
Frequency limits
On the Frequency limits page, do as follows:
Select Use frequency limits to turn on frequency controls, and then enter values for:
- Maximum engagements per day: The maximum number of times you can reach a contact in a day across all channels.
- Maximum engagements per week: The maximum number of times you can reach a contact in a week across all channels.
Under Schedule, select at least one phone number type and set quiet hours for each:
- Mobile Phone
- Business Phone (for voice channel only)
- Home Phone (for voice channel only)
For voice channel, if you select more than one number type, set the preferred contact order by using the arrows to reorder the phone numbers. The system respects the quiet hours you set for each number type and doesn't place calls during those windows. You must set quiet hours for every phone number type you select before you can proceed.
Under Time zones, select how to determine the time zone for each contact:
- Use customer's local time zone when available (defaults to UTC if not available): The system uses the time zone attribute on each contact record to evaluate quiet hours in that contact's local time. If no time zone is specified on the contact, UTC is used. You must explicitly provide the time zone value in the uploaded file or API payload - the system doesn't auto-detect or geo-infer time zones.
- Use Coordinated Universal Time (UTC): The system evaluates all contacts against quiet hours by using UTC, regardless of their location.
Select Next.
Summary
Review all settings on the Summary page, and select Create.
File upload
If you select Upload a file as the intake method, the File upload step appears where you can upload your contact list. You can skip this step to upload the file at a later time.
Supported file formats: CSV (.csv) only.
File upload constraints:
- Maximum file size: 10 MB
- The file must include all required columns; extra columns are optional
- Use the same value for ID column to link contacts in the same account
Required columns:
- UniqueIdentifier: The value used to identify and update or insert the contact record. Must correspond to the Contact unique identifier attribute selected in the Details step.
- MobilePhoneNumber, BusinessPhoneNumber, or HomePhoneNumber: At least one phone number column is required. You can include multiple phone number columns.
Optional columns:
Named fields are columns whose names correspond to attributes on the Contact table. Values in these columns are used to create or update the contact record during processing. Any extra columns that don't match a Contact attribute are treated as pass-through data and are made available on the representative desktop during the call.
Data entered in the Priority column is used for custom prioritization when the call order is set to Custom priority ascending or Custom priority descending.
To download a sample file that contains the required columns and formatting, select Download sample.
Processing behavior: Records are processed immediately when the file upload begins.
Note
The uploaded file isn't stored in any form and can't be downloaded. To access delivery results and records, query the relevant tables in Microsoft Dataverse directly. Learn more in Use proactive engagement tables for reporting.
Upload a file to an existing engagement:
To add a new file to an engagement that you already created, go to Copilot Service admin center > Productivity > Proactive engagements. Select the engagement, and then select Run from file. The system added the new file to the existing pending deliveries.
Learn more about available outcomes and SIP-based result values in Outcomes for proactive engagement.
Manage proactive engagements
Configure multiparty (account) engagements
Contact chaining lets you group related contacts, such as members of the same household or account, and treat them as a single unit for engagement purposes.
- You can group up to five contacts when you are uploading a file or submitting requests through the API.
- All contacts in the chain are considered for every attempt. The system dials contacts in the order they appear in the file or API array.
- If all phone numbers across all chained contacts are exhausted on an attempt, the system waits for the configured retry interval before starting the next attempt and cycles through all contacts again.
Configure call cancellation and suppression
You can cancel pending calls and optionally suppress future calls that match defined criteria.
In the site map, select Productivity under Support experience, and select Manage for Proactive engagements.
Select Go to settings, and then select Add a cancellation policy.
Specify filter criteria using any combination of the following in AND conditions:
- Proactive engagement configuration ID
- Country/Region
- State
- Postal code
Optionally, specify an end date in Execute policy until. Contacts matching the criteria won't be processed for new calls during the specified period.
Optionally, enter a Comment. Cancelled calls are marked in the delivery tables with a reference to the cancellation policy to enable reporting.
Note
Cancellation applies to queued calls only. You can also trigger cancellation and suppression through the CCaaS API. Learn more in Use CCaaS_CreateProactiveVoiceDelivery API.
Related information
Overview of proactive engagement
Dial modes for proactive engagement
Outcomes for proactive engagement
Best practices for proactive engagement campaigns
How proactive engagement works
Overview of conversational journeys
Use proactive engagement tables for reporting
Use CCaaS_CreateProactiveVoiceDelivery API
Use CCaaS_CreateOperation API
Use CCaaS_CreateProactiveDelivery API
Proactive Outbound dashboard