Home Flows

Flows

Documentation on call flows, routing configurations, and automation to optimize communication processes.
By Osama and 1 other
9 articles

Flow Overview

Introduction In Evo Voice, Flows serve as visual communication programs, comprising interconnected Nodes linked by Transitions. Communication progresses from Node to Node until the Flow concludes or a communication path is established, such as by dialing a user who answers. It's vital to recognize that Flows facilitate both voice (e.g., incoming phone numbers) and text/chat-based media (e.g., SMS). Example Below is a simple Flow illustration that initiates a call to a user upon execution. Subsequently, this Flow could be assigned to a phone number. For instance: Upon dialing the designated 10-digit phone number, it will ring the specified user. Flow Components As previously mentioned, a Flow comprises Nodes connected by Transitions. Each Node possesses settings defining its behavior. Nodes encompass functionalities such as Text to Speech, Audio Playback, and Audio Recording. Refer to the image below for an overview of the primary Flow components. Nodes - Nodes are depicted as boxes within the Flow designer. Node Title - Each Node features a title displayed in the title bar of the Node box. The default title corresponds to the Node type (e.g., "Say"), but it can be customized by double-clicking the title bar. Node Transitions - Nodes are represented by icons denoting their types (e.g., the Say node has a speech icon). Hovering over the icon reveals the Node's actual type, also visible in the Node Properties pane. Asynchronous Transitions: - A clock symbol alongside a Transition denotes an "Asynchronous Transition," executed after the main communication flow. Notably, certain nodes may not function properly in Asynchronous Transitions, such as the Dial node. Node Properties On the right side of the screen, the Properties tab exhibits settings for the currently selected Node. For example, the Say node allows specification of the desired speech content and voice. Channels Upon Flow execution, such as when dialing a phone number, a Channel is assigned. The system currently supports three Channel types: - Voice: Standard voice communication, encompassing incoming/outgoing phone calls and SIP device calls. - Chat: Text/image/video-based communication, including SMS messages and emails. - Fax: Exclusively for Fax Numbers. While most Nodes are Channel-agnostic, some are Channel-specific. For instance, a Dial node cannot function in a Chat channel. To address this, a Channel Selector node can be employed to handle different communication types based on the Channel. In the depicted example, the Flow utilizes a Channel Selector node to differentiate actions based on the communication channel type

Last updated on Jan 13, 2025

Modularity

Introduction to Modularity in Evo Voice Please note that Modularity is an advanced topic and it is important that you first understand the basic principles of Endpoints, Flows, and Nodes as well as the Data System In Evo Voice, Modularity refers to reducing the amount of duplication and complexity that exists in Flows. Modularity in Evo Voice entails minimizing duplication and complexity within Flows, enhancing system usability. While there's no performance penalty for redundant Nodes, consolidating functionality into reusable Flows streamlines operations. Example Scenario: Standard Business Center Consider a standard business center's communication requirements: 1. Call screening for select customers. 2. Direct ringing for specific customers. 3. Voicemail handling with email, text, and push notifications. 4. Distinct operator groups for English and Spanish speakers. 5. Dedicated main line with operator and voicemail functionalities. Version 1: Flow per Customer Initially, creating a separate Flow for each customer seems straightforward: However, this approach leads to inefficiencies: - Updating flows for operational changes becomes cumbersome. - Addition of new operators or features necessitates flow modifications. - Maintenance of duplicated functionalities is labor-intensive. Version 2: Flow per Scenario A more efficient strategy involves creating Flows for distinct scenarios: 1. Call screening by English-speaking operators. 2. Call screening by Spanish-speaking operators. 3. Direct ringing for customers. 4. Handling main line calls. Call Screening Flows Utilize Flow Parameters for customization: - Greeting (Audio File) - Email Address - Mobile Number Version 3: Unified Call Screening Flow Consolidate English and Spanish call screening into a single Flow using a Boolean Node to differentiate: Configure each Endpoint (Customer) accordingly: Direct Customer Flow Similar to call screening flows but directs calls to customers directly Business Center Main Line Utilize the Direct Customer Flow with specified operator and contact details Version 4: Streamlining Voicemail Create a dedicated Voicemail Flow with parameters for greeting, email, and mobile: Voicemail Flow consists of: 1. Play greeting. 2. Record caller's voice. 3. Email/SMS recording to destination. Integrate Voicemail Flow into Call Screening and Direct Customer Flows, eliminating redundant voicemail nodes: Conclusion By strategizing Flow design and employing appropriate Flow Parameters, complex communication challenges can be transformed into reusable, manageable Flows, enhancing system efficiency and flexibility.

Last updated on Jan 13, 2025

Channels

Introduction to Multi-Channel Communication in Evo Voice Evo Voice stands out as a multi-channel communication platform, offering versatility in connecting users across various communication mediums. To clarify this concept amidst tech jargon, let's define what a channel signifies in the realm of Voice and explore how Evo Voice implements a multi-channel approach. Evo Voice caters to three primary Channel types: Voice, Chat, and Fax (the latter not covered in this document). Our focus will delve into Voice and Chat functionalities. Endpoints, Sessions, Channels, and Flows In Evo Voice, an Endpoint denotes a communication initiator or receiver, such as a Phone Number or a User capable of placing or receiving calls. A Session, referring to a single communication instance, corresponds to a specific Channel Type, like an incoming call being a Voice Channel Session. Each new session triggers the execution of the Flow associated with the receiving Endpoint. For instance: While an Endpoint like an Incoming Phone Number may handle both voice calls and SMS messages, the Channel Selector Node within a Flow discerns the Channel type, directing actions accordingly: Voice Voice remains the primary communication channel, particularly prevalent in business scenarios where phone calls dominate. Phone Numbers and Users Voice communication in Evo Voice occurs via two means: 1. Incoming Phone Numbers receiving calls. 2. Users initiating or receiving calls through the App, Soft Phone, or SIP endpoint. In both scenarios, Evo Voice executes the Flow linked to the corresponding Endpoint, aiming to connect callers with desired parties. Chat Unlike straightforward Voice sessions, Chat sessions involve message-based interactions, commencing upon message receipt and pausing until further messages are received. Endpoint Types Evo Voice supports various Chat endpoints, including SMS, Email, Skype Bots, Slack Bots, Facebook Bots, Web Chat, and User Chat. Despite endpoint diversity, Chat flows operate uniformly. For instance, a Say Node responds to users regardless of the messaging mechanism. Examples of Chat Sessions Example 1: Reply to Chat Message - A single Say Node in a Flow replies consistently to incoming messages: Messages elicit consistent responses, initiating new sessions with each interaction. Example 2: Reply and Gather - This example involves responding to messages and prompting for information using the Gather Node: [Insert Image: Gather Node Example] Sessions pause awaiting further input, with new sessions initiated upon subsequent messages. Example 3: Chat with User - Demonstrates actual interaction between users via Chat nodes: [Insert Images: Chat Node Interaction] Users engage in a Chat session initiated by a Chat node, maintaining communication until termination. Session Establishment The Voice Flow system facilitates complex scenarios effortlessly, primarily aiming to establish communication channels between callers and destinations. Two key nodes, the Dial Node and Chat Node, facilitate channel establishment: - Dial Node: Facilitates traditional phone call connections, supporting both internal and external parties. - Chat Node: Similar to the Dial Node but tailored for Chat-based sessions, inviting multiple parties to a Chat initiated by the original sender. [Insert Image: Chat Node Example] With these nodes, Evo Voice streamlines communication, fostering seamless interactions across diverse channels.

Last updated on Jan 07, 2025

Data Systems

Introduction: Evo Voice's Data System is a robust framework that facilitates intricate customization of communication Flows, offering users extensive control over their interactions. Before delving into this section, it's advisable to grasp the fundamentals of Endpoints, Flows, and Nodes, as these concepts won't be extensively covered here. Fields and Types: Fields serve as containers for specific data types, such as String, Number, Boolean, etc. Each node within Evo Voice utilizes these fields to execute tasks, with each node's behavior governed by its associated properties, determined by the field types. The provided screenshot below displays a comprehensive list of Fields along with their respective Types indicated in parentheses. For instance, the "What to Say" field is classified as a String type. Data Type Table: Evo Voice encompasses various types, as illustrated in the table below. Typically, the most frequently utilized types include String, Number, Boolean, and Audio File. | Type | Description | | --- | --- | | String | Text. This is the most common data type, used for anything where text can be entered, e.g. "Hello World" | | Number | Numeric type with decimals allowed, e.g. 5, 10, -10, 45.2 | | Boolean | A yes/no value | | Date | A specific date | | Audio File | A reference to an audio file (commonly used with the Play node) | | Time Zone | A reference to a time zone (typically used when time of day is involved) | | Phone Number | A reference to a purchased incoming phone number (typically used for specifying caller ID) | | User | A reference to a user | | Endpoint | A reference to any endpoint including Phone Numbers and Users | | Time | A reference to a specific time of day (typically used for time of day logic) | | File | A reference to a specific file (including audio files) | | Fax Number | A reference to a specific fax number | Data Type Examples: String: Number: Boolean: Phone number: Audio File: Nodes and Properties In Evo Voice, Nodes and Properties are fundamental components that shape the behavior of communication flows. Let's break down their roles: Nodes are the building blocks of communication flows, each representing a specific action or functionality within the system. They operate based on a set of defined properties that determine their behavior. Every Node comes with a set of properties, which are configurable settings defining how the Node will execute its task. These properties are akin to parameters that govern the Node's actions. For instance, consider the "What to Say" property in the Say Node, which is a String type field. This property dictates the text the Node will speak during a call or message interaction. By default, these properties are configured by directly inputting values into the provided editor interface. This allows users to customize the behavior of Nodes according to their specific requirements and preferences. In the provided screenshots, you can observe how the properties of a Say Node are displayed in the editor interface. These properties provide users with granular control over the behavior of each Node, ensuring tailored communication flows. Value Sources: When configuring a property for a Node, you'll notice a dropdown menu referred to as the "Value Type Selector" positioned to the left of the field. This selector, depicted in the provided image, allows users to choose the source from which the property value will be derived. This dropdown menu offers various options, each determining the origin of the property value. Here's a breakdown of the available value sources: | Value Source | Description | | --- | --- | | Specific Value | This is the default choice. The value is entered directly into the field. | | Expression | This is only available with String fields, this allows you to put placeholders into the value | | Session Parameter | Session parameters are values such as Caller ID, Dialed Number, etc. which vary from call to call | | Flow Parameter | Flow Parameters are specified on the Parameters tab in the Flow Editor | | Customer Data | Customer data comes from the Customer associated with the Endpoint that initiated the Flow | | Endpoint Data | Endpoint data comes from the Endpoint that initiated the Flow, e.g. the Incoming Phone Number | | User | User data is a special source that only becomes valid after using a User Lookup Node. | | System Setting | System settings are configured in the System section under Global Data | Specific Value: This is the default value source for a node field. It means that the value directly entered into the field is used. For instance, in the provided example, the text "Hello World" will be spoken whenever that node is executed. Expression: This value source is similar to Specific Value but allows for more dynamic content generation. It enables the use of placeholders and variables within the string. For example, if we want to incorporate the caller's ID into a spoken response, we can use this value source. The drop-down menus below the editor facilitate the insertion of values into the expression. Session Parameters: Also known as Call parameters, these values change with each session. For instance, the Caller ID will be unique for every call. The availability of session parameters may vary depending on the type of communication. For example, the caller number may not be accessible during an email flow. Here's an overview of available Session Parameters: | Value Source | Description | | --- | --- | | Caller Number | This is the CID "caller ID" for the incoming call. | | Caller Name | The CID name for the incoming call (if available). | | Dialed Number | This is the number that the User dialed (in the case of a User flow). | | Body | For text-based communication, e.g., SMS or Email, this is the body of the message. | | Email From/To/etc. | Email specific fields. | Flow Parameters Flow Parameters are crucial components defined within the Parameters tab, serving various essential functions in Evo Voice. Here's a breakdown of their purposes: 1. Settings for Endpoint Assignment: Flow Parameters allow users to specify settings while assigning a Flow to an Endpoint, enabling tailored configurations for different scenarios. 2. Placeholders for Node Output Properties: They act as placeholders for output properties on a Node, facilitating dynamic content generation based on the specific requirements of each Flow execution. 3. Settings for Flow Integration: Flow Parameters also serve as settings that can be specified when integrating one Flow into another, enhancing modularity and reusability. Flow + Endpoint Settings Flow Parameters offer the flexibility for customization on a per-Endpoint basis. For instance, consider a scenario where a custom message needs to be conveyed to callers associated with different phone numbers. By creating a new Flow Parameter, such as "Message," and setting its type to String, users can tailor messages specific to each Endpoint. Additionally, marking the "Public" box ensures accessibility and visibility of the Flow Parameter for configuration purposes. After configuring the desired settings for our Say node, we proceed by selecting "Flow Parameter" as the Value Source for dynamic content integration. Subsequently, we choose the specific Flow Parameter, such as "Message," to be incorporated into the node's functionality. This ensures that the content displayed or spoken by the Say node is dynamically determined by the value of the selected Flow Parameter. Once the Flow is saved with these configurations, we navigate back to the Endpoints section to apply these settings. Here, we edit one of the incoming Phone Numbers and access the Flow tab. Within this tab, we select the previously configured Flow. Upon selection, a visual representation akin to the provided screenshot appears, showcasing the editable "Message" field. It's important to note that each Endpoint associated with this Flow will now have its own editable "Message" field. This setup enables the customization of messages for every individual Endpoint utilizing this specific Flow, ensuring tailored communication experiences based on distinct Endpoint configurations. Output Properties Output Properties in Evo Voice nodes are data points generated by a node after its execution, distinct from input properties that drive the node's behavior during execution. For instance, consider the Record Audio node, which produces two output parameters: an Output Audio File named "Recorded File" and an Output String titled "Recorded File URL," as shown in the provided image. Suppose we aim to send a text message containing a link to the recorded audio file for playback. To achieve this, we first create a new Flow parameter named "RecordingUrl" of String type, as depicted in the screenshot. Next, we modify the Recorded File URL Property of the Record Audio node to store the URL of the audio file in our newly created Flow Parameter, ensuring its accessibility post-execution. Subsequently, we configure the SMS node to utilize the "RecordingUrl" Flow Parameter by setting the Message value source to Expression. This enables us to dynamically insert the URL into the message content, as demonstrated in the example screenshot. Upon sending the SMS message, the expression retrieves the URL stored in the Flow Parameter, allowing users to access the audio file by tapping the link provided within the message. Flow Parameters with Other Flows Finally, Flow Parameters can also be utilized across different flows, enabling seamless integration and data sharing between interconnected flows, a concept further elaborated upon in the Modularity section. Customer Data Customer Data in Evo Voice allows users to leverage data associated with the customer who initiated the flow from the endpoint. For instance, suppose we want our Say node to deliver a personalized message to each customer. Here's how we can achieve this: 1. Navigate to the System section and access the Customer Fields tab. 2. Add a new field named "Message" of type String, ensuring to save the changes. 3. Proceed to edit one of the customers in your database. Upon editing, you'll notice the newly added "Message" field, allowing you to input a customized greeting or message for that customer. 4. Next, edit one of your phone numbers and link it to the previously modified customer. Assign the associated flow to the phone number you're testing with. 5. Finally, customize your Say node to utilize the customer data. This involves configuring the Say node to access the "Message" field from the customer data. Endpoint Data Endpoint Data in Evo Voice is akin to Customer Data, but it utilizes fields defined directly on the endpoint. Suppose we aim to create a customized message for each endpoint, here's the process: 1. Access the System section and navigate to the Endpoint Fields tab. 2. Add a new field named "Message" with a String type, ensuring to save the changes. 3. Proceed to edit one of your phone numbers. Within the Data tab of the endpoint configuration, input the desired message into the "Message" field. 4. Lastly, configure your Say node to utilize the endpoint data. This involves adjusting the Say node settings to fetch the "Message" field from the endpoint data. By following these steps, you can effectively leverage endpoint data to create personalized messages tailored to each endpoint. User Data User Data in Evo Voice is a unique form of value source. Initially, every flow possesses "User Data," albeit it starts empty by default. To harness the potential of "User Data," follow these steps: 1. Create a new Endpoint field, such as "Message," with a String type. Optionally, you can adjust the Endpoint type to User if needed. 2. Utilize either a Set User node or a User Lookup node to establish the "user context," essentially populating the user data. 3. Once the user data is set, you can freely access and employ the user data fields within your flow for various purposes. System Settings (Global Data) System Settings in Evo Voice offer Global Data as a valuable value source. While not extensively utilized, it serves specific needs. Here's how to leverage Global Data: 1. Navigate to the System section and access the Global Data field. 2. Add a new Global Data field and assign it a value, such as "Hello from the Global Settings." 3. Subsequently, integrate this global value into your flow as needed. Users and Data Fields Users of Evo Voice have the capability to modify User/Endpoint fields as well as Customer fields within the application. Let's explore how to implement a "Do Not Disturb" feature as an example: 1. Create a new Endpoint:User field named "DoNotDisturb." 1. Set the User Mode to "Read Write" to grant users the ability to modify this field via the app. User Mode in Evo Voice dictates the accessibility and permissions of fields within the application. It offers three values: - Hidden: Conceals the field entirely from users. - Read Only: Displays the field in the app, but users cannot alter its content. - Read Write: Exhibits the field in the app, allowing users to freely modify its content. Additionally, users can access and modify Customer fields. To achieve this, follow these steps: 1. Create a new Customer Field, such as "After Hours." 2. Specify the User Mode as either Read Only or Read Write. 3. Enable modification of Customer data for specific users via the User screen. It's essential to note that for a Customer field to be visible and modifiable by users, it must have a User Mode of Read Only or Read Write, and users must possess Read Only or Read Write permissions for Customer Fields. Summary In summary, this section provides an in-depth understanding of Evo Voice's data system, including the origin of Flow Parameters and various methods of retrieving values

Last updated on Jan 06, 2025

Cookie Recipe

Introduction Cookies in Evo Voice enable the storage of arbitrary string data associated with a unique identifier, such as caller ID or user name. Similar to web cookies, they consist of a name and a value but are stored in the database linked to the incoming identifier. Usage Three main nodes facilitate cookie handling: Get Cookie Node, Set Cookie Node, and Delete Cookie Node. Example Consider a simple example where we greet users differently based on whether a cookie exists. If the cookie exists, we welcome them back; otherwise, we prompt them for their name and save it in a cookie. Flow Overview Get Cookie Node - Retrieves a cookie named "Name" and stores it in the flow parameter "Name." - Transition: Found if the cookie exists; Not Found if not. Prompt Node - Prompts the user for their name. - Stores the name in the flow parameter. Set Cookie Node Flows - set cookie node - Sets a cookie named "Name" with the value obtained from the user input. Greeting Node - Greets the user using the stored name. Flow Execution 1. On the first run, since the cookie doesn't exist, the prompt node collects the user's name. 2. The name is stored in the flow parameter and used to set a cookie. 3. The user is greeted. 4. On subsequent runs, the existing cookie is retrieved, and the user is greeted using a template. Conclusion With Evo Voice's cookie functionality, personalized user experiences can be created by storing and retrieving user-specific data efficiently.

Last updated on Dec 10, 2024

Nodes

Introduction to Nodes Nodes serve as the fundamental elements of Flows, providing distinct units of functionality. Key Points: - Each node operates independently within a Flow, with only one node active at a time. - Upon completing its task, a node transitions to the next based on predefined connections. Example: The Say Node is configured to communicate "Hello World" to the caller or via SMS, then transitions to the next step upon completion. Node Transitions Nodes utilize transitions to determine subsequent steps within a Flow. - Single Transition: For example, the Say Node transitions to "Done" after completing its task. - Multiple Transitions: Some nodes, like the Dial Node, offer dynamic transitions, such as "No Answer" or asynchronous transitions like "Recording Ready." Asynchronous Transitions Asynchronous transitions, marked by a clock icon, occur independently of the main flow. For instance: - The Dial Node's "Recording Ready" transition triggers when the recording is available, even if the main call flow has ended. Note: Due to their asynchronous nature, certain nodes, like Dial, cannot be used after such transitions as the call context no longer exists. Node Properties Node properties define behavior and are displayed in the Properties Pane. For example: - Each property specifies how the node operates, such as the Say Node's speech content and voice selection. - Properties are categorized by type (e.g., String, Number, Boolean) and linked to documentation for further reference. Summary Nodes are the foundational building blocks of Flows, executing individual tasks and transitioning sequentially. They operate independently, offering flexibility and precision in designing Flow processes.

Last updated on Dec 27, 2024

Setting Up Call Forwarding to a New Phone Number

This guide provides step-by-step instructions for forwarding a client’s main phone line to another number or voicemail. Request Overview Clients may request to forward their main phone line to a different number or voicemail. For example, Blackhawk requested that the SummersLaw main line be forwarded to a voicemail or another phone number. Accessing the Client’s Account For agents and admins, accessing client accounts requires the appropriate admin permissions in Evo Voice. 1. Log in to Evo Voice as an admin. 2. Use the Switch Account option to access the correct client account. 3. Use the Search Toolbar to find the client’s account. - Example: Searching for Summers Law. 4. Open the client’s main phone number. - The main phone number is typically labeled as “Main Inbound” in the flow setup. Configuring Call Forwarding After accessing the client’s account and locating the main phone number, you will now configure the call forwarding settings to ensure that calls are redirected as requested. 1. Open the Flow Tab for the selected phone number. 2. Set the following options: - When → Set to Always - Flow → Select Call Forward Always with Local Voicemail (or a similar forwarding flow available for EvoTech clients). - Number to Dial → Enter the forwarding phone number. If forwarding to voicemail, use the next option. - VM User → If the voicemail or receiving phone is already configured, search for and select it here. 3. Click Save to apply the changes.

Last updated on Feb 18, 2025

Call Flow Setup: Route to External Number with DID Rollback (Business & Afterhours)

Overview This article outlines how to set up a custom EvoVoice call flow that routes inbound calls to an external number first, and then either: - Rolls back to a backup DID (during business hours), or - Rolls back to a voicemail extension (during afterhours), if the external number does not answer. This flow was based on a request for Commercial West Real Estate and can be adapted for other organizations needing similar logic. Scenario: Commercial West Real Estate Call Handling Requirements: | Condition | Behavior | | ----- | ----- | | Business Hours | Call rings external number 303-905-3830 → if no answer, rollback to DID +17198515995 | | Afterhours | Call rings same external number 303-905-3830 → if no answer, send to voicemail extension 5995 | ✅ EvoVoice Setup Steps Step 1: Create Time-Based Routing Rule 1. Go to Flows > Scheduling 2. Define Business Hours and Afterhours (or reuse existing schedule) 3. Assign schedule to your flow entry node Step 2: Call Routing for Business Hours 1. Use a Time Check Node or Scheduling Node 2. If current time is in Business Hours, proceed to: - ➡️ Call Node (External Number): 303-905-3830 - Set Timeout Behavior to "On No Answer": - ➡️ Add another Call Node pointing to internal DID: +17198515995 - Configure retry/timeout as needed Step 3: Call Routing for Afterhours 1. From the same Time Check Node: - If time is Afterhours, go to: - ➡️ Call Node (External Number): 303-905-3830 - Set Timeout Behavior to: - ➡️ Voicemail Node for Extension 5995 🔁 Sample Flow Logic Summary [Start Node] | ├── [Scheduling Node: Business Hours] | | | ├── [Call External: 303-905-3830] | | | | | └── On No Answer → [Call Internal DID: +17198515995] | └── [Afterhours] | ├── [Call External: 303-905-3830] | | | └── On No Answer → [Voicemail: Ext 5995] ⚠️ Important Notes - Rollback to DID (e.g., from external number → DID like +17198515995) is not standard behavior. Confirm with EvoVoice support if this type of rerouting is supported in your current call infrastructure. - For voicemail routing, ensure Ext 5995 is active and properly linked to the user or shared mailbox. - Always test call timeout triggers and confirm each failover path works correctly after deployment. 🛠️ Troubleshooting Tips | Issue | Solution | | --- | --- | | Call doesn't rollback to DID | Confirm DID is reachable within system, not external only | | Voicemail not triggered | Ensure Ext 5995 is active and attached to voicemail node | | External call not timing out | Adjust timeout settings in Call Node |

Last updated on Jun 27, 2025