Outbound Assistant that performs call transfer to ...
# support
j
Hi there. I am creating an outbound assistant that should handle multi-route call transfers to two different teams (Team A and B), and the two teams have their own numbers. However, under each team (and their corresponding number), there are at least 10 live team members with different extensions. How can I execute this using the "transferCall" tool? How can I make the number (with extension) dynamic instead of just being hard-coded? Thanks https://cdn.discordapp.com/attachments/1330738086669451375/1330738086849544273/Capture.PNG?ex=678f11eb&is=678dc06b&hm=e4b98b0dc32918c016abc308e77f0d22946f9abb8a4fc262e0208d472204dd84&
v
@Jerome Matthew Hello! To execute a multi-route call transfer to two different teams using the "transferCall" tool, you can dynamically assign the phone numbers with extensions for each team member by utilizing the
PhoneNumberTransferDestination
option. Here's how you can set it up: 1. Define the phone numbers for Team A and Team B. 2. For each team, create a list of extensions for the live team members. 3. When initiating a transfer, dynamically select the appropriate phone number and extension based on the team and available team member. To make the number with extension dynamic, you can use variables or a database to store the team members' extensions and retrieve them when needed. This way, you don't have to hard-code the numbers and extensions. Would you like to proceed with setting up the dynamic transfer now? If so, please provide the phone numbers for Team A and Team B, and let me know how you'd like to manage the extensions for the team members (e.g., through a database, variables, etc.).
You can continue this conversation by mentioning me in the message.
j
@Vapi I'd like to set it up using a database (maybe using make.com) since I want the live agents accept transferred calls via round robin setup
v
@Jerome Matthew That's a great approach! Using a database in conjunction with a service like make.com (formerly Integromat) allows you to manage the call distribution in a round-robin fashion effectively. Here's a high-level overview of how you can set this up: 1. **Database Setup**: Create a database with tables for Team A and Team B. Each table should have records for each team member, including their phone number and extension, as well as a field to track the last time they received a call. 2. **Make.com Scenario**: Set up a scenario in make.com that: - Triggers when a call needs to be transferred. - Retrieves the list of team members from the appropriate team's table. - Sorts the team members based on the last call received to implement the round-robin logic. - Selects the next team member to receive the call. - Updates the database with the new last call received time for that team member. 3. **Dynamic Transfer**: When the "transferCall" tool is called, use the phone number and extension retrieved from the make.com scenario to dynamically set the
PhoneNumberTransferDestination
. 4. **API Integration**: Integrate the make.com scenario with your VAPI system so that when a transfer is initiated, the scenario runs and provides the dynamic phone number and extension for the transfer. Would you like to start integrating the database with your VAPI system now? If so, please ensure you have the database schema ready and access to make.com to create the scenario. If you need assistance with the integration or setting up the scenario, please let me know!
j
Just wanna ask, what should I input into the "number" field in that case (and not a static single number) @Vapi ?
v
@Jerome Matthew In the case of using a dynamic number for the "number" field in the "transferCall" tool, you would not input a static single number. Instead, you would use a variable that represents the selected team member's phone number and extension. This variable would be populated with data retrieved from your database via the make.com scenario. Here's a step-by-step process: 1. **Retrieve Data**: When a call needs to be transferred, your system triggers the make.com scenario to retrieve the next available team member's details from the database. 2. **Select Number**: The make.com scenario applies the round-robin logic and selects the appropriate team member's phone number and extension. 3. **Pass Dynamic Data**: The selected phone number and extension are then passed back to your VAPI system as a single string (e.g., "1234567890*123" where "1234567890" is the phone number and "123" is the extension). 4. **Use Variable**: In the "transferCall" tool, you would use this dynamic string as the value for the "number" field. For example, if the variable containing the dynamic number is named
dynamicNumber
, you would use it like this in your API call or script:
Copy code
json
{
  "number": dynamicNumber
}
This ensures that each time a call is transferred, it goes to the correct team member based on the round-robin distribution logic you've set up with your database and make.com scenario.
j
What is the best/most efficient data base to use in order to pull this off easily together with the round-robin logic? Is it airtable @Vapi ?
v
@Jerome Matthew Airtable is indeed a popular choice for this kind of application due to its user-friendly interface, ease of integration with services like make.com, and its ability to handle custom logic like round-robin distribution. It's essentially a spreadsheet with the power of a database, which makes it accessible for users who are not deeply technical. Here are a few reasons why Airtable could be a good fit: 1. **Ease of Use**: Airtable's interface is intuitive, making it easy to set up and manage without extensive database knowledge. 2. **API Access**: Airtable provides a straightforward REST API that you can use to read and write data programmatically, which is essential for integrating with your VAPI system. 3. **Integration**: It has strong integration support with automation platforms like make.com, which can handle the round-robin logic and trigger actions based on database changes. 4. **Real-Time Collaboration**: Multiple users can update the database in real-time, which is beneficial for dynamic environments like call centers. 5. **Custom Views**: You can create different views (e.g., grid, calendar, kanban) to visualize the data and track call assignments. 6. **Templates**: Airtable offers templates that can help you get started quickly with common use cases. However, the "best" or "most efficient" database can depend on various factors, including the scale of your operation, specific requirements, existing tech stack, and personal or organizational preferences. Other databases like Google Sheets, Microsoft Power Automate, or even a custom SQL database could also serve the purpose if they better align with your needs and technical capabilities. Ultimately, you should choose a database solution that you're comfortable with, that integrates well with your existing systems, and that can scale with your operations. If you're already considering Airtable and it fits your criteria, it's a solid choice to proceed with.
s
@Jerome Matthew This article provides a detailed step-by-step explanation of how to implement dynamic call transfers, including examples and configuration tips for the transferCall tool. https://vapi.notion.site/Dynamic-Call-Transfers-A-Step-by-Step-Guide-181008c8393f80d99a36f0965f570cf9?pvs=4
@Jerome Matthew Please let me know if this was helpful. If it was, we will add it to the documentation.
j
Will look into it, thanks
2 Views