Salesforce Interaction Details

Created by Seb Coulthread, Modified on Tue, 23 Apr 2024 at 10:32 PM by Seb Coulthread

Introduction

The Talkative Salesforce integration (min. version 1.24) includes a new Salesforce object called Interaction Detail.

Why

Interaction Details can be thought of as interaction-related data that only exists in certain contexts. For example, interaction reservation events only occur for inbound interactions. These can be saved as Interaction Details when this information is available.

Interaction Details vs. Interaction Data

The Interaction Data object deals with arbitrary key/value data similar to Interaction Detail. However, there is a key difference. Interaction Data is mostly collected directly from customers using data collection forms. As such, it can be any key/value pair. Interaction Details have clear specifications as to the data type and structure, making them more predictable to use in Salesforce reports and flows.

Enabling Interaction Details

Once you've created a Salesforce integration, you can optionally enable any of the available Interaction Detail types. When new interactions reach an ended state, any enabled Interaction Detail types will be sent to your Salesforce org. All Interaction Detail types will be disabled by default. To enable a selection of Interaction Detail types:

  1. Go to your Salesforce configuration page in the Talkative platform: /settings/salesforce/api-configs
  2. On the page, click Interaction Detail Settings
  3. On the resulting page, select which Interaction Detail types you wish to be sent to Salesforce and click Update Salesforce Interaction Details.

   

Technical details

The Interaction Detail feature is made up of two Salesforce objects used for storing information about an interaction. These objects are:

  • Interaction Detail (API name TalkativeEngage__InteractionDetail__c)
  • Interaction Detail Value (API name TalkativeEngage__InteractionDetailValue__c)

The main object is Interaction Detail. Depending on what kind of detail it is, an Interaction Detail record will have one or more child Interaction Detail Value records. Currently, Interaction Details are only sent to Salesforce when an interaction has ended.

Relevant Interaction Detail fields:

NameAPI NameDescription
Interaction Detail IDNameAn auto-generated ID for use in Salesforce
TypeTalkativeEngage__Type__cThis is a code unique to each kind of Interaction Detail record. It can be used to filter relevant records by type.
InteractionTalkativeEngage__Interaction__cThe parent Interaction record this detail to which this detail belongs
TimestampTalkativeEngage__Timestamp__cAn optional Date/Time field. If a detail is time-based (ie an event that happened at a particular time), this field captures that information.
External IDTalkativeEngage__ExternalId__cWhen new records are sent to Salesforce at the end of an interaction, the Talkative Salesforce package uses this ID to determine whether an existing record already exists or whether it needs to create a new one.

 

Relevant Interaction Detail Value fields:

NameAPI NameDescription
Interaction DetailTalkativeEngage__InteractionDetail__cThe parent Interaction Detail for this record.
Interaction Detail Value IDNameAn auto-generated ID for use in Salesforce
KeyTalkativeEngage__Key__cThe reference key in the key/value pair for this record.
ValueTalkativeEngage__Value__cThe value for in the key/value pair for this record.

Interaction Detail Types

Each Interaction Detail record will have a slightly different structure, depending on the kind of detail. The following is a list of supported Interaction Details:

NOTE: TalkativeEngage__Value__c is a Long Text Area. All values, regardless of whether they are integers, booleans or strings, will be stored as text.

NameTimestampDetail ValuesDescription
RESERVATION_CREATEDtrueKey: ownerId, Value: Saleforce user/queue IDWhen an interaction reservation was created for a user.
RESERVATION_ACCEPTEDtrueKey: ownerId, Value: Saleforce user/queue IDWhen an interaction reservation was accepted by a user.
RESERVATION_REJECTEDtrueKey: ownerId, Value: Saleforce user/queue IDWhen an interaction reservation was rejected by a user.
RESERVATION_RESCINDEDtrueKey: ownerId, Value: Saleforce user/queue IDrescinded by the system.
RESERVATION_TIMED_OUTtrueKey: ownerId, Value: Saleforce user/queue IDWhen an interaction reservation timed out.
RESERVATION_COMPLETEDtrueKey: ownerId, Value: Saleforce user/queue IDWhen an interaction reservation was completed by a user.
CUSTOMER_JOURNEY_ENTRYtrueKey: url, Value: string
Key: interactionStarted, Value: boolean
Key: interactionEnded, Value: boolean
A timestamp for when a customer visits a page on your website. Also indicates if this was the page on which the interaction started/ended.

 

Using Interaction Details in reports

Interaction Details can be used in reports for filtering.

Report Types

By default, Salesforce can create a report type that links Interactions to Interaction Details. However, it may not make a report type that also includes Interaction Detail Values. This can be done as follows:

  1. In your Salesforce org, go to the Setup area.
  2. In the sidebar search, type report. From the sidebar results, select Report Types.
  3. If you are greeted with a "What is" page, click Continue.
  4. You should now be on the index page for Report Types. Click New Custom Report Type in the top-middle of the index.
  5. On following create page, fill in the fields. When done, click Next:
    • Primary Object: Interaction
    • Report Type Label: Interaction With Details And Values
    • Report Type Name: this should auto-fill from the previous field
    • Description: A report for Interactions, Interaction Details and Interaction Detail Values
    • Store in Category: Other Reports
      image
  6. On the following Report Records Set page:
    1. Click in the box that states (Click to relate another object).
    2. In the resulting B box, select Interaction Details as the relationship.
    3. Optional: Select `"A" records may or may not have related "B" records.
    4. Click in the next box that states (Click to relate another object)
    5. In the resulting C box, select Interaction Detail Values as the relationship.
    6. Optional: Select `"B" records may or may not have related "C" records.
      image
  7. Click Save.

    Reports

    Once a report type exists with Interactions linked to both Interaction Details and Interaction Detail Values, you should be able to create reports based on that report type. For example:

    1. Go to the Reports tab of your Service Console app.
    2. Click New Report near the top-right of the page.
    3. In the newly opened modal, use the search bar to search for Interactions
    4. Select the report type that includes Interaction Details and Interaction Detail Values.
    5. Click Start Report
  8. From here you can:

    • Add columns from Interactions, Interaction Details and Interaction Detail Values
    • Filter by Interaction Detail type or Interaction Detail Value key/value
  9. Filtering reports

    You can filter reports by Interaction Detail Values by utilising cross filters. The following is an example of using cross filters to view which URLs interactions have started on.

    1. Create a new report with the report type created in the previous Report Types section.
    2. In the report, add Value to the Group Rows section.
    3. Also, add Key to the Columns section.
      image
    4. Switch to the Filters tab.
    5. Add a normal filter for Key where Key equals "URL"
      image
    6. Add a cross filter
      1. Click the dropdown button next to the Filters heading and select Add Cross Filter.
      2. In the newly added cross filter, select `Show Me "Interaction Details" "with" "Interaction Detail Values". Then click Apply.
        image
      3. In the newly added search box below, search for and select Key and then from the pull-out options, select "equals" "interactionStarted". Then click Apply.
        image
      4. In the search box, search for and select Value and then from the pull-out options, select "equals" "true". Then click Apply.
        image
  10. You should now have a report that displays which pages interactions are starting on and groups by URL.

    image

    Using Interaction Details in flows

    Interaction Details can be used in flows as you would use any other Salesforce Object. The following is an example of a flow to get the name of the user that accepted an interaction:

    1. Start conditions:
      • Object: Interaction Detail
      • Entry Conditions:
        • TalkativeEngage__Type__c = RESERVATION_ACCEPTED
    2. Get Records:
      • Object: Interaction Detail Value
      • Condition Requirements:
        • TalkativeEngage__InteractionDetail__c = {!$Record.Id}
      • Store only the first record (the Interaction Detail will only have one Interaction Value)
    3. Get Records:
      • Object: User
      • Condition Requirements:
        • Id = {!get_detail_value.TalkativeEngage__Value__c}
      • Store only the first record (there should only be one match at most)
    4. Assignment:
      • {!owner_name} (custom variable) = {!get_owner.FirstName}

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select atleast one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article