Loading
Help Agent Performance DegradationRead More
Agentforce Contact Center
Table of Contents
Select Filters

          No results
          No results
          Here are some search tips

          Check the spelling of your keywords.
          Use more general search terms.
          Select fewer filters to broaden your search.

          Search all of Salesforce Help
          Configure Callbacks for Salesforce Voice

          Configure Callbacks for Salesforce Voice

          Don’t make your customers wait when no rep is available to take their call. Give them an option to request a callback.

          Required Editions

          This article applies to:

          Salesforce Voice (Native Telephony)

          View supported editions.
          User Permissions Needed
          To configure callback in Agentforce Contact Center:

          Agentforce Contact Center Admin (Salesforce Voice) permission set.

          Learn how to view permissions in this permission set.

          Salesforce Voice uses contact requests to store callback information for voice calls routed by Omni-Channel. A contact request is a Salesforce object that represents a customer’s request for your organization to get back to them about an issue or inquiry. At a scheduled time or when a rep becomes available, the contact request is pushed to the rep in the Omni-Channel utility. If you set up the feature to dial automatically, once the rep accepts the request, Omni-Channel initiates the callback by automatically dialing the customer’s number from the contact request. If you set up the feature so that reps can preview the contact request details first, reps accept the request then review details. To start the callback, they manually click to dial the outbound number specified in the contact request.

          Consider Callback Configuration Options

          You can set up callbacks for Salesforce Voice through one of these options:

          • Interactive voice response (IVR): Configure an Omni-Channel flow that creates contact requests and routes them to reps.
          • Web forms: Capture customer data via a web form to generate contact requests. Then use a record-triggered flow to route the contact requests to reps.
          • Agentforce Voice: AI agents gather information and automatically create contact requests. An Omni-Channel flow then routes the contact requests to reps.

          This article explains how to use IVR to create and route contact requests.

          Before You Begin

          Configure Queued Callbacks through an Omni-Channel Flow

          To route callbacks to available reps right away, without specifying callback timing, configure your IVR for queued callbacks. Create an Omni-Channel flow that offers the callback option, creates a contact request, and routes the request to a rep. Although the flow details can differ based on your business logic, the flow must cover the basics. Review the following example, which illustrates how to use an IVR in an Omni-Channel flow to create and route queued callbacks to a rep.

          1. In Flow Builder, create an Omni-Channel flow.
          2. In the Manager tab, add variables for the Omni-Channel flow. For each of them, select Data Type of Text.
            1. Add a recordId variable and mark it as available for input.
            2. Add a CallerName variable.
            3. Add a CallbackNumber variable.
            4. Add a CallerPhoneNumber variable.
            5. Add a contactRequestId variable.
          3. To store a Salesforce Voice Call record ID in the recordId flow variable and store the incoming caller’s phone number in the CallerPhoneNumber variable, add a Get Records action to the flow.
            1. In the Object field, select Voice Call.
            2. Add a condition where Voice Call ID equals recordId.
              In the Get Records action, voice call is the object. Filter voice call records where all conditions are met and voice call ID equals recordId
            3. For How Many Records to Store, select Only the first record.
            1. For How to Store Record Data, select Choose fields and assign values (advanced).
            2. For Where to Store Field Values, select In separate variables.
            3. In the Field field enter FromPhoneNumber, and in the Variable field enter CallerPhoneNumber.
          4. To associate the Voice Call with a specific contact and store a name in the CallerName variable, add another Get Records action to the flow.
            1. In the Object field, select Contact.
            2. Add a condition where Business Phone equals CallerPhoneNumber.
              Get records action for a Contact where Business Phone equals CallerPhoneNumber
            3. For How Many Records to Store, select Only the first record.
            4. For How to Store Record Data, select Choose fields and assign values (advanced).
            5. For Where to Store Field Values, select In separate variables.
            6. In the Field field enter FirstName, and in the Variable field enter CallerName.
          5. To welcome callers, add a Play Prompt action with a greeting.
            1. In the Record ID Variable field, enter {!recordId}.
            2. For Prompt Type, select Message to enter text read by an AI Voice Profile. Or, to use a prerecorded prompt, select Media.
            3. To optionally personalize the greeting, use the CallerName variable in the message.
              Play Prompt action with a message that greets the customer
          6. Optionally, to check queue status, add a Check Availability for Routing action.
            1. Select the Service Channel that supports voice calls, and Check Availability for Queue.
            2. Choose Select Queue, and select the queue that the call would get routed to.
            3. For Return Output, select Return all.
          7. To the estimated wait time and prompt callers to choose whether to request a callback or wait in a queue, add a Play Prompt action.
            1. In the Record ID Variable field, enter {!recordId}.
            2. For Prompt Type, select Message to enter text read by an AI Voice Profile. Or, to use a prerecorded prompt, select Media. As an example, your prompt can instruct callers to press 1 to stay in a queue or press 2 to request a callback.
              The Play Prompt action configured so that a prompt is played that gives the customer an option to get a callback
            3. In Response Details, turn on User Response Settings. Enter Dual-Tone-Multi-Frequency (DTMF) Response Values that match the instructions from your prompt.
              In Response Details, DTMF response values are set to 1 and 2
          8. Add a Decision action.
            1. Add outcomes that correspond to outputs from the Play Prompt Action. For example, add a Queue option where the Dual-Tone-Multi-Frequency value equals 1 and a Callback option where the Dual-Tone-Multi-Frequency value equals 2.
            2. For each Outcome, in the Resource field, search for Outputs, select the Play Prompt action where you asked for a user response, and then select Dual Tone Multi-Frequency.
              In the Decision action, Define Manually is selected, and Outcome Details are added for a Queue option and a Callback option
          9. For the Queue option, add a Route Work action to route the Voice call to a queue.
          10. For the Callback option, you can optionally add logic to confirm the callback number and give the customer the option to set a new callback number that’s different from the one they called with. Then you set the callback number by using an Assignment action.
            A section of an Omni-Channel flow that contains logic to confirm the callback number and give the customer the option to set a new callback number that’s different from the one they called with.

            For a simplified example, add an Assignment action. In the Variable field, enter CallbackNumber. In the Value field, enter CallerPhoneNumber.

          11. To create a Contact Request object and associate callback information with it, add a Create Records action.
            1. Select Manually for How to set record field values.
            2. Select Contact Request as the object.
            3. To set values for the Contact Request fields, make selections in the Set Field Values section. See next steps for details.
            4. (Required) To mark the contact request as a callback, add the Is Callback field and set the value to True.
            5. (Required) To set a phone number for the callback, add the Preferred Phone Number field and set its value to CallbackNumber.
            6. (Required) To relate the contact request to the voice call, search for WhatId and add the Related To ID field, which represents the WhatId. Set its value to recordId.
            7. (Optional) To specify the service channel that handles callbacks, add the Preferred Channel field and set the value to the service channel that you created for voice calls.
            8. (Optional) To specify the number of callback attempts and delays between callback attempts, add the Available Callback Attempts and Delay Between Callback Attempts fields and set their values. The maximum callback attempts value is 5. The maximum delays between callback attempts value is 10,080 minutes (7 days). If you don’t set a number of callback attempts, the customer receives one callback attempt only with no callback retries.
            9. (Optional) To give the rep time to gather context and preview the contact request details before clicking to dial the outbound call to the customer, add the isPreviewCallback field and set the value to True. Without this field set to true, Omni-Channel dials the call automatically after it routes the contact request and the rep accepts it.
            In the Create Records action, for a contact request object, multiple fields and their values are set
          12. To route the callback, add a Route Work action.
            1. In the How Many Work Records to Route field, select Single.
            2. In the Record ID Variable field, enter {!ContactRequestId}.
            3. Select the service channel that routes contact requests.
            4. In the Route To field, select a destination.
            In the Route Work action, route a single record with the variable contactRequestId to a channel and queue
          13. To let the customer know that their callback request is processed, add a Play Prompt action with a message telling the customer that someone will return their call.
          14. To end the call, add an End Call action.
          15. Save and activate the Omni-Channel flow.
          16. To link the Omni-Channel flow to the claimed phone number, from Setup, in the Quick Find box, enter Communication Channels, and then select Communication Channels.
          17. In the All Channels tab, go to the channel you want to manage and click to see its details.
          18. In the Omni-Channel Routing section, click Edit.
          19. In the Routing Type field, select Omni-Flow. In the Flow Definition field, select the Omni-Channel flow that you created. Select a fallback queue.
          20. Save your work.

          Configure Scheduled Callbacks through an Omni-Channel Flow

          For scheduled callbacks, customers request a callback for a specific time, or admins control callback timing options. After a specified delay, Omni-Channel routes the contact request to a rep. Create an Omni-Channel flow that offers the callback option, creates a contact request, and routes the request to a rep at the specified time. Although the flow details can differ based on your business logic, the flow must cover the basics. Review the following example, which illustrates how to use an IVR in an Omni-Channel flow to create and route scheduled callbacks to a rep.

          1. In Flow Builder, create an Omni-Channel flow.
          2. In the Manager tab, add variables for the Omni-Channel flow. For each of them, select Data Type of Text.
            1. Add a recordId variable and mark it as available for input.
            2. Add a CallerName variable.
            3. Add a CallbackNumber variable.
            4. Add a CallerPhoneNumber variable.
            5. Add a contactRequestId variable.
            6. Add a SlotHour variable.
          3. To store a formula for calculating a scheduled callback, in the Manager tab, add a formula with the API name ScheduledDateTime.
            1. For Data Type, select Date/Time.
            2. Enter a formula to calculate a time option for a scheduled callback. For example: {!$Flow.CurrentDateTime} + (VALUE({!SlotHour}) / 24).
          4. To store a Salesforce Voice Call record ID in the recordId flow variable and store the incoming caller’s phone number in the CallerPhoneNumber variable, add a Get Records action to the flow.
            1. In the Object field, select Voice Call.
            2. Add a condition where Voice Call ID equals recordId.
              In the Get Records action, voice call is the object. Filter voice call records where all conditions are met and voice call ID equals recordId
            3. For How Many Records to Store, select Only the first record.
            1. For How to Store Record Data, select Choose fields and assign values (advanced).
            2. For Where to Store Field Values, select In separate variables.
            3. In the Field field enter FromPhoneNumber, and in the Variable field enter CallerPhoneNumber.
          5. To associate the Voice Call with a specific contact and store a name in the CallerName variable, add another Get Records action to the flow.
            1. In the Object field, select Contact.
            2. Add a condition where Business Phone equals CallerPhoneNumber.
              Get records action for a Contact where Business Phone equals CallerPhoneNumber
            3. For How Many Records to Store, select Only the first record.
            4. For How to Store Record Data, select Choose fields and assign values (advanced).
            5. For Where to Store Field Values, select In separate variables.
            6. In the Field field enter FirstName, and in the Variable field enter CallerName.
          6. To welcome callers, add a Play Prompt action with a greeting.
            1. In the Record ID Variable field, enter {!recordId}.
            2. For Prompt Type, select Message to enter text read by an AI Voice Profile. Or, to use a prerecorded prompt, select Media.
            3. To optionally personalize the greeting, use the CallerName variable in the message.
              Play Prompt action with a message that greets the customer
          7. Optionally, to check queue status, add a Check Availability for Routing action.
            1. Select the Service Channel that supports voice calls, and Check Availability for Queue.
            2. Choose Select Queue, and select the queue that the call would get routed to.
            3. For Return Output, select Return all.
          8. To share the estimated wait time and prompt callers to choose whether to request a callback or wait in a queue, add a Play Prompt action.
            1. In the Record ID Variable field, enter {!recordId}.
            2. For Prompt Type, select Message to enter text read by an AI Voice Profile. Or, to use a prerecorded prompt, select Media. As an example, your prompt can instruct callers to press 1 to stay in a queue or press 2 to request a callback.
              The Play Prompt action configured so that a prompt is played that gives the customer an option to get a callback
            3. In Response Details, turn on User Response Settings. Enter Dual-Tone-Multi-Frequency (DTMF) Response Values that match the instructions from your prompt.
              In Response Details, DTMF response values are set to 1 and 2
          9. Add a Decision action.
            1. Add outcomes that correspond to outputs from the Play Prompt Action. For example, add a Queue option where the Dual-Tone-Multi-Frequency value equals 1 and a Callback option where the Dual-Tone-Multi-Frequency value equals 2.
            2. For each Outcome, in the Resource field, search for Outputs, select the Play Prompt action where you asked for a user response, and then select Dual Tone Multi-Frequency.
              In the Decision action, Define Manually is selected, and Outcome Details are added for a Queue option and a Callback option
          10. For the Queue option, add a Route Work action to route the Voice call to a queue.
          11. For the Callback option, you can optionally add logic to confirm the callback number and give the customer the option to set a new callback number that’s different from the one they called with. Then you set the callback number by using an Assignment action.
            A section of an Omni-Channel flow that contains logic to confirm the callback number and give the customer the option to set a new callback number that’s different from the one they called with.

            For a simplified example, add an Assignment action. In the Variable field, enter CallbackNumber. In the Value field, enter CallerPhoneNumber.

          12. To get a scheduled callback time from the customer, add a Play Prompt action. In this example, we provide callback time slots.
            1. In the Record ID Variable field, enter {!recordId}.
            2. For Prompt Type, select Message to enter text read by an AI Voice Profile. Or, to use a prerecorded prompt, select Media. Ask the caller to select their preferred callback timing slot.
            3. In Response Details, turn on User Response Settings. Enter Dual-Tone-Multi-Frequency (DTMF) Response Values that match the instructions from your prompt.
            A Play Prompt action that asks a customer to press a number for callback scheduling, for example 1 for one hour from now, 2 for 2 hours from now.
          13. To set the value of the SlotHour variable, add an Assignment action. In the Variable field, enter SlotHour. In the Value field, search for Outputs from the Play Prompt action where you asked for users to select a time slot, and select Dual-Tone Multi-Frequency.
          14. To create a Contact Request object and associate callback information with it, add a Create Records action.
            1. Select Manually for How to set record field values.
            2. Select Contact Request as the object.
            3. To set values for the Contact Request fields, make selections in the Set Field Values section. See next steps for details.
            4. (Required) To mark the contact request as a callback, add the Is Callback field and set the value to True.
            5. (Required) To set a phone number for the callback, add the Preferred Phone Number field and set its value to CallbackNumber.
            6. (Required) To relate the contact request to the voice call, search for WhatId and add the Related To ID field, which represents the WhatId. Set its value to recordId.
            7. (Optional) To specify the service channel that handles callbacks, add the Preferred Channel field and set the value to the service channel that you created for voice calls.
            8. (Optional) To specify the number of callback attempts and delays between callback attempts, add the Available Callback Attempts and Delay Between Callback Attempts fields and set their values. The maximum callback attempts value is 5. The maximum delays between callback attempts value is 10,080 minutes (7 days). If you don’t set a number of callback attempts, the customer receives one callback attempt only with no callback retries.
            9. (Optional) To give the rep time to gather context and preview the contact request details before clicking to dial the outbound call to the customer, add the isPreviewCallback field and set the value to True. Without this field set to true, Omni-Channel dials the call automatically after it routes the contact request and the rep accepts it.
            In the Create Records action, for a contact request object, multiple fields and their values are set
          15. To route the callback at the specified time, add a Route Work action.
            1. In the How Many Work Records to Route field, select Single.
            2. In the Record ID Variable field, enter {!ContactRequestId}.
            3. Select the service channel that routes contact requests.
            4. In the Route To field, select a destination.
              In the Route Work action, route a single record with the variable contactRequestId to a channel and queue
            5. To schedule the callback at the time slot that the customer requested, select Schedule work item routing. Then select Schedule a date and time and enter {!ScheduledDateTime}.
              Schedule work item routing for a date and time using a variable called ScheduledDateTime.
          16. To let the customer know that their callback request is processed, add a Play Prompt action with a message telling the customer that someone will return their call.
          17. To end the call, add an End Call action.
          18. Save and activate the Omni-Channel flow.
          19. To link the Omni-Channel flow to the claimed phone number, from Setup, in the Quick Find box, enter Communication Channels, and then select Communication Channels.
          20. In the All Channels tab, go to the channel you want to manage and click to see its details.
          21. In the Omni-Channel Routing section, click Edit.
          22. In the Routing Type field, select Omni-Flow. In the Flow Definition field, select the Omni-Channel flow that you created. Select a fallback queue.
          23. Save your work.

          Initiate Automated Outbound Calls from a Flow

          Reach customers proactively by triggering outbound voice calls directly from a flow. You can trigger appointment reminders, payment notifications, service updates, or AI-led conversations without requiring a rep to place the call manually.

          Required Editions

          This article applies to:

          Salesforce Voice (Native Telephony)

          View supported editions.
          User Permissions Needed
          To procure a Phone number: Agentforce Contact Center Admin (Salesforce Voice) Permission Set

          Let’s consider a high-priority customer support scenario where a client submits an urgent service request via a web portal. Rather than waiting for a manual review, the system automatically detects the new record and triggers an immediate outbound call to connect the customer with an available specialist.

          Note
          Note Outbound Actions are currently supported only in Record-Triggered, Schedule-Triggered, Autolaunched, and Omni-Channel Flows.
          1. From Setup, enter Flows in the Quick Find box, then select Flows.
          2. Click New Flow and select Record-Triggered Flow.
          3. Configure these settings:
            • Object: Cases
            • Trigger: A record is created
            • Condition Requirements: None
            • Optimize the Flow for: Actions and Related Records
          4. Select the Include a Run Asynchronously path.
          5. On the asynchronous path in the Flow Builder, click + and select the Initiate Outbound Voice Call action.
          6. Configure the action parameters:
            • Label: Initiate Outbound Voice Call Action 1
            • API Name: Outbound_Voice_Call_Action_1
            • Amount of Time: 1
            • Units: Days
            • Recipient Phone Number: Select the resource for the customer's phone number.
            • Call Experience Flow: IVR Flow
          7. In the View Output Resources section, select Manually assign variables (advanced).
          8. Map the execution results to your flow resources:
            • Outbound Status: {!status}
            • Outbound Voice Call Id: {!outboundVoiceCallId}
          9. Save and activate your flow.

          Route Inbound Calls to the Last Representative

          Maximize customer service continuity by automatically connecting callers with the specific human representative who most recently handled their case.

          Required Editions

          This article applies to:

          Salesforce Voice (Native Telephony)

          Available in: Agentforce Contact Center with Salesforce Voice
          Available in: Enterprise, Unlimited, and Developer Editions
          User Permissions Needed
          To manage media:

          Agentforce Contact Center Admin (Salesforce Voice) permission set.

          Learn how to view permissions in this permission set.

          Consider a high-priority support scenario where a customer interacts with a specialist on a complex technical resolution over several days. If they call back for an update, the system identifies that previous representative, verifies their online status, and routes the call directly to them to maintain the conversation thread.

          Procedure for Configuring Last Rep Routing

          1. From Setup, in the Quick Find box, enter Flows, and then select Flows.
          2. Click the Omni-channel flow you want to modify. To create a new omni-channel flow, follow these steps.
          3. Add a Play Prompt element to deliver a welcome message and configure these settings:
            • Label: Welcome
            • API Name: Welcome
            • Amount of Time: 1
            • Units: Days
            • Record ID: {!recordId}
            • Prompt Type: Message
            • Language: English (United States)
            • Voice Profile: Jennifer
            • Message: Welcome!

            If the audio plays, the flow follows the Completed path to retrieve call data. If the audio fails to play within the set limit, the Timed Out path serves as an error-handling route to ensure the caller proceeds through the flow.

          4. Add a Get Records element to identify the active voice call data and configure these settings:
            • Label: Get current voice call
            • API Name: Get_current_voice_call
            • Data Source: Salesforce Object
            • Object: Voice Call
            • Filter Voice Call Records Requirements: All Conditions Are Met (AND)
            • Field: Voice Call ID, Operator: Equals, Value: recordId
            • How many records to store: Only the first record
            • How to store record data: Automatically store all fields
          5. Add a Get Records element to fetch the caller's interaction history and configure these settings:
            • Label: Get prev voice call
            • API Name: Get_prev_voice_call
            • Data Source: Salesforce Object
            • Object: Voice Call
            • Filter Voice all Records Requirements: All Conditions Are Met (AND)
            • Field: Caller Contact Info, Operator: Equals, Value: Voice call from get current voice call > caller contact info
            • How many records to store: Only the first record
            • How to store record data: Automatically store all fields
            • Sort Voice Call Order: Descending
            • Sort By: CallEndDateTime
          6. Add Loop element to iterate the historical call collection and configure these settings:
            • Label: Get last voice handled by agent
            • API Name: Get_last_voice_handled_by_agent
            • Collection Variable: Voice Calls from Get prev voice call
            • Specify Direction for Iterating Over Collection: First item to last item
          7. Add a Decision element within the loop to filter the agents and configure these settings:
            • Label: Is Owner an Agent
            • API Name: Is_Owner_a_Agent
            • Select Decision Logic: Define Manually (Default)
            • Outcome Label: Owner is agent
            • Condition Requirements to Execute Outcome: All Conditions Are Met (AND)
            • Resource: Owner ID (User) > User ID, Operator: Starts With, Value: 005
            • Resource: Owner ID (User) > User ID, Operator: Does Not Equal, Value: 005SB00000TbVXBYA3
          8. Add an Assignment element to save the agent details to variables and configure these settings:
            • Label: Assign LAR
            • API Name: Assign_LAR
            • Set variable values: Variable: Last_handled_agent, Operator: Equals, Value: Owner ID (User) > User ID
            • Variable: LAR_agent_name, Operator: Equals, Value: Owner ID (User) > First Name
          9. Add a Play Prompt element to inform the caller that their previous representative is found. Configure these settings:
            • Label: LAR found in loop
            • API Name: LAR_found_in_loop
            • Amount of time: 1 Day
            • Record ID: {!recordId}
            • Prompt Type: Message
            • Language: English (United States)
            • Voice Profile: Jennifer
            • Message: Great !! I have found the last agent who handled your call. His name is Agent {!LAR_agent_name}
          10. Add a Decision element to verify if a representative is identified and configure these settings:
            • Label: Do we have a Last handled agent?
            • API Name: Do_we_have_Last_handled_agent
            • Select decision logic: Default Manual
            • Outcome Label: LAR found
            • Outcome API: LAR_found
            • Condition: All conditions are met (And)
            • Resource: Last_handeled_agent
            • Default Outcome Label: Default Outcome (No agent identified)

            The flow branches into two paths. If an agent is found, the system checks for online availability otherwise the flow routes the caller to the general queue.

          11. Save and Activate the flow.
           
          Loading
          Salesforce Help | Article