Documentation Index

Fetch the complete documentation index at: https://docs.natterbox.com/llms.txt

Use this file to discover all available pages before exploring further.

Use SSO to log in and access the Help Center, where you can create and manage your support tickets to reduce your resolution times.

How to report on a 3-way call that wasn't completed

Prev Next

When an agent initiates an attended transfer or conference call but the transfer doesn't complete (the three parties are merged but the agent never drops off), the third Call Reporting record that normally represents the completed transfer is never created. This guide walks you through building a Salesforce Flow to identify these incomplete 3-party calls using a custom checkbox field.

How it works

In a standard attended transfer, the Natterbox platform creates three Call Reporting records. When the 3-way call is not completed (all three parties are merged but the transfer is never finalised), only two records exist:

Record

Direction

Description

UUID relationship

Record 1

Inbound

The original call (e.g. Alice → Bob)

To UUID = Bob's channel

Record 2

Outbound

The consult leg (e.g. Bob → Clive)

From UUID = Bob's channel (matches Record 1 To UUID)

The key identifier for this scenario is that all four Conversation Count and Instance fields equal 1 on both records:

Field Label

Field Name

Value on Record 1 (Inbound)

Value on Record 2 (Outbound)

From Conversation Count

nbavs__From_Instance_Count__c

1

1

From Conversation Instance

nbavs__From_Conversation_Instance__c

1

1

To Conversation Count

nbavs__To_Instance_Count__c

1

1

To Conversation Instance

nbavs__To_Conversation_Instance__c

1

1

When a transfer does complete normally, these counts increase beyond 1 because additional conversation legs are recorded. The combination of matched UUID records with all counts remaining at 1 is what differentiates an incomplete 3-party call from a completed transfer.

Prerequisites

  • Salesforce System Administrator permissions (to create fields and Flows)

  • Access to the Call Reporting object (nbavs__Call_Reporting__c)

  • Familiarity with Salesforce Flow Builder

Create the custom field

  1. Navigate to Salesforce Setup > Object Manager > search for Call Reporting.

  2. Click Fields & Relationships > New.

  3. Select Checkbox as the data type > Next.

  4. Enter the following details:

    • Field Label: Three-Party Call

    • Field Name: Three_Party_Call (auto-populated)

    • Default Value: Unchecked

    • Description: When checked, indicates that a 3-party call or attended transfer was attempted but the transfer was not completed.

  5. Click Next.

  6. Set field-level security as required > Next.

  7. Add to page layouts > Save.

Build the Flow

This Record-Triggered Flow fires when an inbound Call Reporting record is created. It uses a Scheduled Path to wait 1 hour before running the logic, ensuring all related records have been created by the Natterbox platform before checking.

Create the Flow and configure the trigger

  1. Navigate to Setup > Flows > New Flow.

  2. Select Record-Triggered Flow > Create.

  3. Configure the trigger:

    • Object: Call Reporting (nbavs__Call_Reporting__c)

    • Trigger the Flow When: A record is created

    • Entry Conditions (All conditions are met):

      • nbavs__Call_Direction__c Equals Inbound

      • nbavs__From_Instance_Count__c Equals 1

      • nbavs__From_Conversation_Instance__c Equals 1

      • nbavs__To_Instance_Count__c Equals 1

      • nbavs__To_Conversation_Instance__c Equals 1

    • Optimise the Flow For: Actions and Related Records

Why these entry conditions?

  • Call Direction = Inbound — we only look at the original inbound leg.

  • All four count/instance fields = 1 — this is the signature of an incomplete 3-party call. If the transfer had completed, these values would be greater than 1.

Add a Scheduled Path

  1. Click the + icon on the Start element to add a Scheduled Path.

  2. Configure:

    • Path Label: Check After 1 Hour

    • Time Source: Call Reporting: Created Date

    • Offset Number: 1

    • Offset Options: Hours After

This delay ensures the outbound consult record (Record 2) has been created before the Flow checks for it.

Get Records: find the matching outbound consult

On the Scheduled Path, add a Get Records element:

  1. Label: Get Matching Outbound Record

  2. Object: Call Reporting (nbavs__Call_Reporting__c)

  3. Filter Conditions (All conditions are met):

    • nbavs__From_UUID__c Equals {!$Record.nbavs__To_UUID__c}

    • nbavs__Call_Direction__c Equals Outbound

    • nbavs__From_Instance_Count__c Equals 1

    • nbavs__From_Conversation_Instance__c Equals 1

    • nbavs__To_Instance_Count__c Equals 1

    • nbavs__To_Conversation_Instance__c Equals 1

  4. Sort Order: Created Date, Descending

  5. How Many Records to Store: Only the first record

This looks for an outbound record where:

  • The From UUID matches the inbound record's To UUID — confirming the same agent initiated the consult.

  • All four count/instance fields = 1 — confirming the transfer was not completed on the outbound side either.

Decision: was an outbound consult found?

  1. Add a Decision element after the Get Records.

  2. Label: Outbound Consult Found?

  3. Outcome 1 — Yes:

    • Condition: {!Get_Matching_Outbound_Record} Is Null equals {!$GlobalConstant.False}

  4. Default Outcome: No Match (end the Flow — this was a standard inbound call, not a 3-party attempt)

Update Records: tick the 3-Party Call checkbox

On the "Yes" path, add an Update Records element:

  1. Label: Mark as Incomplete 3-Party Call

  2. How to Find Records to Update: Use the Call Reporting record that triggered the flow

  3. Set Field Values:

    • Field: Three_Party_Call

    • Value: {!$GlobalConstant.True}

Save and activate

  1. Click Save.

  2. Enter a Flow Label, e.g. Identify Incomplete 3-Party Calls.

  3. Click Activate.

Flow logic summary

Step

Element

Purpose

1

Trigger

Fires on inbound CRO records where all count/instance fields = 1

2

Scheduled Path

Waits 1 hour to ensure the outbound consult record has been created

3

Get Records

Finds the outbound consult by matching inbound To UUID = outbound From UUID, with all counts = 1

4

Decision

Confirms a matching outbound consult leg exists

5

Update Record

Sets 3-Party Call checkbox = TRUE

Field reference

Field label

API name

What it tells you

From Conversation Count

nbavs__From_Instance_Count__c

Total number of conversations the From party had on this call

From Conversation Instance

nbavs__From_Conversation_Instance__c

Which conversation number this record represents for the From party

To Conversation Count

nbavs__To_Instance_Count__c

Total number of conversations the To party had on this call

To Conversation Instance

nbavs__To_Conversation_Instance__c

Which conversation number this record represents for the To party

From UUID

nbavs__From_UUID__c

Unique identifier for the From party's channel

To UUID

nbavs__To_UUID__c

Unique identifier for the To party's channel

Building a report

Once the Flow is active and has populated the Three-Party Call field, you can build a report to surface these records.

  1. Navigate to Reports from the App Launcher.

  2. Click New Report > select report type Call Reporting.

  3. Add the following filters:

    • Three-Party Call equals True

    • Call Reporting: Created Date = your desired time frame (e.g. THIS WEEK, THIS MONTH)

  4. Group rows by To Natterbox User (to see which agents had incomplete 3-party calls).

  5. Add the following fields:

    • From Number — the caller's number

    • To Natterbox User — the agent who attempted the transfer

    • Conversation Start Time

    • To UUID — use this to cross-reference the outbound consult leg

Troubleshooting

Issue

Cause

Solution

Checkbox not ticking on any records

Flow not activated, or no records meeting entry criteria

Check the Flow is active. Verify you have inbound records where all four count/instance fields = 1 and a matching outbound record exists.

Checkbox ticking on normal calls (false positives)

A standard inbound call happens to have a matching outbound with the same To UUID → From UUID link

Review the matched records. Consider adding additional filter criteria such as a time window (e.g. outbound Created Date within 5 minutes of inbound Created Date).

Checkbox not ticking on known incomplete Three-Party Call

The outbound consult record may not yet exist when the Flow runs

Increase the Scheduled Path delay (e.g. 2 hours). Alternatively, check the UUID values on both records to confirm they match.