← Back to Home

Flowyte Setup Guide

Follow this comprehensive guide to set up and configure your Flowyte visual call routing system for RingCentral

Flowyte User Guide

Welcome to Flowyte! This step-by-step guide will walk you through setting up and configuring your visual call routing system for RingCentral.

1. Sign Up and Account Creation

1.1 Visit the Flowyte Website

Navigate to flowyte.com and locate the "Sign Up" or "Get Started" link.

Flowyte Homepage

1.2 Choose Your Sign-Up Method

Select your preferred sign-up method:

  • Email and password
  • Google account
  • Microsoft account
Sign-up options

1.3 Account Verification

If needed, verify your account via the email sent to your inbox.

Account verification

1.4 Welcome to Flowyte

After verification, you'll be redirected to your Flowyte dashboard.

Flowyte Dashboard

2. Connecting to RingCentral

From your dashboard, click on "Settings" in the sidebar navigation.

Navigation to settings

2.2 Find RingCentral Connection Section

Scroll to the "Organization RingCentral Connection" section.

RingCentral connection section

2.3 Connect RingCentral Account

Click on "Connect Organization with RingCentral" button.

Connect RingCentral button

2.4 Super Admin Notice

Read the important authentication notice about using your RingCentral Super Admin account. This is very important to make sure the Super Admin with the (Super Admin) tag in the RingCentral account makes this authentication request. Failure to use the correct user will result in failed redirection of calls.

Super Admin notice

2.5 Authorize Flowyte

You'll be redirected to RingCentral's authorization page. Login with your RingCentral credentials and authorize Flowyte to access your account.

RingCentral authorization page

2.6 Verify Connection

Once connected, you'll see a confirmation message and your RingCentral connection details.

Connection verified

At any point, if you wish to revoke Flowyte access to RingCentral, you may do so with the disconnect button or from RingCentral. The Token will automatically refresh until access is revoked.

3. Dashboard Overview

After successful setup, you'll land on your dashboard, which provides an overview of your call routing system.

Dashboard overview

3.1 Dashboard Components

  1. Navigation Sidebar: Access different sections of the application
  2. Extensions Summary: Shows the number of configured extensions
  3. Routing Rules Summary: Displays total number of active routing rules
  4. Recent Call Activity: Shows recent call forwarding statistics
Dashboard components

4. Adding Extensions

Click on "Extensions" in the sidebar navigation.

Navigate to extensions

4.2 Add a New Extension

Click the "Add Extension from RingCentral" button.

Add extension button

4.3 Select an Extension

Choose from the list of available RingCentral extensions to add to Flowyte.

Select extension dialog

4.4 View Extensions List

Your newly added extension will appear in the extensions list.

Extensions list

4.5 Activate Extension

Toggle the switch to activate the extension for call routing (ON position).

Activate extension toggle

5. Creating Routing Rules

5.1 Select an Extension

From the Extensions list, click on the "Rules" button for the extension you want to configure.

Select extension rules

5.2 Add a New Rule

On the extension details page, click the "Add Rule" button.

Add rule button

5.3 Configure Rule

Fill in the rule details:

  • Caller ID (or select "Default Rule")
  • You may use the star key to have variables such as 928* would route anything with a 928 area code to the destination of choice.
  • Destination Type (Extension or External)
  • Destination (extension number or phone number)
Configure rule dialog

5.4 Save the Rule

Click "Add Rule" to save your new routing rule.

Save rule

5.5 View Rules List

Your new rule will appear in the rules list.

Rules list

5.6 Edit or Delete Rules

Use the actions column to edit or delete existing rules.

Edit or delete rules

6. Geographic Routing Setup

6.1 Enable Map-Based Routing

On the extension details page, toggle the "Enable Map-Based Routing" switch.

This feature is only available for Premium Accounts. See billing tab to upgrade.

Enable map-based routing

6.2 Confirm Switching to Map-Based Routing

Read the warning about switching to map-based routing and confirm.

Confirm map-based routing

6.3 US Map Interface

The US map interface will appear, showing all states.

US map interface

6.4 Create a Region

Click the "Add Region" button to create a new geographic region.

Create region

6.5 Configure Region

Name your region and select the states that belong to it.

Configure region

6.6 Set Region Destination

Choose where calls from this region should be forwarded:

  • Extension number
  • External phone number
Set region destination

6.7 Select States

Choose the "Select States" button to assign the states to the region. Click save to move onto the next region.

Select states

7. Testing Your Configuration

7.1 Test Flow

From an external phone, call into your RingCentral call flow, verify the calls are being routed properly. You may check the RingCentral Analytics to see the redirected calls as needed.

If you need any assistance please reach out to support@flowyte.com

8. Managing Your Subscription

8.1 Access Billing

Go to "Settings" > "Billing & Subscription" in the sidebar.

Access billing

8.2 View Current Plan

Review your current plan details:

  • Plan name
  • Features
  • Usage limits
  • Renewal date
View current plan

8.3 Upgrade Plan

Click "Upgrade Subscription" to view available plan options.

Upgrade plan
Plan options

8.4 Update Payment Information

Manage your payment methods in the Payment Methods section. If subscription is cancelled, you will have access until the end of the billing cycle.

9. API Presence Sync (Premium Feature)

Prerequisites: This feature requires an active Premium subscription and is available as an add-on service. This is crucial for businesses using RTB leads, insurance reps licensed in specific states, or legal/financial services that need to verify agent availability before routing calls.

9.1 Subscribe to Presence Sync Add-on

From the Billing page, locate the Presence Sync add-on and click "Subscribe" to enable this premium feature.

Subscribe to Presence Sync

9.2 Access Integrations Tab

Once subscribed, the "Integrations" tab will appear in your sidebar navigation. Navigate to this new section to configure your API presence sync.

9.3 Generate API Keys

In the Integrations tab, create your API keys that will be used to query agent presence status. These keys are essential for checking queue availability before routing calls.

Generate API Keys

9.4 Enable Presence Sync on Extensions

Navigate to your Extensions and enable presence sync only on inbound routing extensions. This is critical - do not enable this on regular extensions.

Important: Only enable presence sync on inbound routing extensions. The system will automatically detect downstream possible queues.

Enable Presence Sync on Extensions

9.5 Monitor Queue Presence

Return to the Integrations tab to view the real-time presence monitoring of your queues. You'll see the status of all downstream queues that the system has automatically detected.

Note: Downstream extensions must be configured as queues in RingCentral for presence monitoring to work properly.

Monitor Queue Presence Status

9.6 Use Cases Overview

API Presence Sync is particularly valuable for:

  • RTB (Real-Time Bidding) Leads: Verify agent availability before accepting expensive leads
  • Insurance Companies: Ensure licensed agents are available in specific states before routing calls
  • Legal Services: Route calls to attorneys licensed in the caller's jurisdiction
  • Financial Services: Connect clients with appropriately licensed advisors
  • Geographic Compliance: Ensure regulatory compliance by routing to properly licensed professionals

Next Steps: With presence sync configured, you can now use API queries to check agent availability before routing calls. This helps prevent wasted leads and ensures optimal call distribution.

9.7 API Endpoints Overview

The Presence Sync API provides a single endpoint for checking agent availability in real-time. When you make an API call, the system follows the exact same routing logic as a real call would, determining the destination queue based on your configured rules and geographic routing.

Base URL

https://flowyte.com/api/presence/check-availability

Authentication

All API requests require authentication using your API key in the Authorization header:

Authorization: Bearer your_api_key_here
Content-Type: application/json

9.8 API Request Examples

Basic Availability Check

Check if agents are available for a specific phone number using your routing logic:

POST /api/presence/check-availability
{
  "number": "+14805551234",
  "customer_id": "cust_flw_9a8b7c6d5e4f",
  "call_id": "call_abc123"
}

Specific Queue Check

Check availability for a specific inbound routing extension:

Important: If you have more than one inbound routing extension with Flowyte enabled, or plan to in the future, make sure to include the inbound_queue_ext parameter to specify which extension's routing rules to follow. Without this, the system will use your default presence-enabled extension.

POST /api/presence/check-availability
{
  "number": "+19285559876",
  "customer_id": "cust_flw_2x9y8z3w4v5u",
  "inbound_queue_ext": "1001",
  "call_id": "rtb_call_456"
}

🚨 Critical: Customer ID Requirement

The customer_id field must be the exact customer ID generated by Flowyte when you created your API key. This is not your internal customer identifier. You can find your Flowyte-generated customer ID in the Integrations tab where your API keys are displayed. Using an incorrect customer_id will result in authentication errors.

API Request Field Explanations

Required Fields:
  • number - The caller's phone number
    Format: +1AAANNNNNNN (e.g., +14805551234). Can include dashes, spaces, or parentheses - they will be stripped automatically.
  • customer_id - Your Flowyte-generated customer ID
    This is the specific customer ID generated by Flowyte when you created your API key. Found in the Integrations tab where your API keys are displayed. This must match the customer ID associated with your API key.
Optional Fields:
  • inbound_queue_ext - Specific inbound routing extension
    Found in your Extensions list in Flowyte - use the RingCentral Extension Number (e.g., "1001", "2500"). Required if you have multiple inbound routing extensions.
  • call_id - Unique call tracking identifier
    Any unique string to correlate API requests with actual calls in your logs. Helpful for debugging and analytics.

9.9 API Response Examples

Successful Response - Agents Available

HTTP 200 OK
{
  "available": true,
  "queue_found": true,
  "queue_name": "Arizona Sales Team",
  "total_agents": 5,
  "available_agents": 2,
  "response_time_ms": 45,
  "timestamp": "2025-01-10T15:30:45.123Z",
  "call_id": "call_abc123"
}

Successful Response - No Agents Available

HTTP 200 OK
{
  "available": false,
  "queue_found": true,
  "queue_name": "Legal Services - CA",
  "total_agents": 3,
  "available_agents": 0,
  "response_time_ms": 38,
  "timestamp": "2025-01-10T15:31:12.456Z",
  "call_id": "rtb_call_456"
}

Error Response - No Queue Found

HTTP 404 Not Found
{
  "error": true,
  "message": "No routing rules found for this number",
  "code": "NO_ROUTE_FOUND",
  "timestamp": "2025-01-10T15:32:01.789Z",
  "call_id": "call_abc123"
}

Error Response - Invalid API Key

HTTP 401 Unauthorized
{
  "error": true,
  "message": "Invalid or expired API key",
  "code": "INVALID_API_KEY",
  "timestamp": "2025-01-10T15:33:15.012Z"
}

9.10 How Routing Logic Works

When you make a presence check API call, Flowyte follows the exact same logic path that a real incoming call would take:

1. Number Analysis

The system extracts the area code from the caller's phone number and determines the caller's state using the same lookup tables used for live calls.

2. Extension Routing

If you specify an inbound_queue_ext, the system checks that extension's routing rules. If not specified, it uses your default inbound routing extension with presence sync enabled.

3. Geographic Routing

For extensions with map-based routing enabled, the system checks your configured regions to find which queue should handle calls from that state/area code.

4. Standard Rules Fallback

If geographic routing doesn't find a match, the system falls back to your standard routing rules (caller ID patterns, default rules) just like a real call would.

5. Queue Presence Check

Once the destination queue is determined, the system checks the real-time presence status of agents in that queue and returns the availability data.

9.11 Integration Examples

RTB Lead Verification (JavaScript)

// Check agent availability before accepting RTB lead
// Note: customer_id must be your Flowyte-generated customer ID from the Integrations tab
const FLOWYTE_CUSTOMER_ID = 'cust_flw_9a8b7c6d5e4f'; // Replace with your actual customer ID

async function checkAgentAvailability(phoneNumber, leadId) {
  try {
    const response = await fetch('https://flowyte.com/api/presence/check-availability', {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer flw_live_sk_1234abcd5678efgh',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        number: phoneNumber,
        customer_id: FLOWYTE_CUSTOMER_ID, // Use your Flowyte-generated customer ID
        call_id: `rtb_${leadId}_${Date.now()}`
      })
    });
    
    const data = await response.json();
    
    if (data.available && data.available_agents > 0) {
      // Accept the lead - agents are available
      return { accept: true, queue: data.queue_name };
    } else {
      // Reject the lead - no agents available
      return { accept: false, reason: 'No agents available' };
    }
  } catch (error) {
    // Handle API errors
    console.error('Presence check failed:', error);
    return { accept: false, reason: 'API error' };
  }
}

// Example usage:
// checkAgentAvailability('+14805551234', 'lead_12345')

Insurance State Compliance (Python)

# Verify licensed agents are available in caller's state
# Note: customer_id must be your Flowyte-generated customer ID from the Integrations tab
import requests
import json

# Replace with your actual Flowyte-generated customer ID
FLOWYTE_CUSTOMER_ID = "cust_flw_2x9y8z3w4v5u"

def check_licensed_agent_availability(phone_number, internal_customer_id):
    url = "https://flowyte.com/api/presence/check-availability"
    headers = {
        "Authorization": "Bearer flw_live_sk_5678wxyz9012mnop",
        "Content-Type": "application/json"
    }
    
    payload = {
        "number": phone_number,
        "customer_id": FLOWYTE_CUSTOMER_ID,  # Use your Flowyte-generated customer ID
        "inbound_queue_ext": "1002",  # Insurance intake queue
        "call_id": f"insurance_{internal_customer_id}"
    }
    
    try:
        response = requests.post(url, headers=headers, json=payload)
        data = response.json()
        
        if response.status_code == 200:
            if data["available"] and data["available_agents"] > 0:
                return {
                    "route_call": True,
                    "queue": data["queue_name"],
                    "agents_available": data["available_agents"]
                }
            else:
                return {
                    "route_call": False,
                    "reason": "No licensed agents available",
                    "total_agents": data.get("total_agents", 0)
                }
        else:
            return {
                "route_call": False,
                "reason": f"API Error: {data.get('message', 'Unknown error')}"
            }
    
    except Exception as e:
        return {
            "route_call": False,
            "reason": f"Connection error: {str(e)}"
        }

# Example usage:
# result = check_licensed_agent_availability('+19285559876', 'customer_789')

🚀 Pro Tips for Integration

  • Rate Limiting: The API is rate-limited to prevent abuse. Cache results for a few seconds when possible.
  • Timeout Handling: Set reasonable timeouts (5-10 seconds) for your API calls.
  • Error Handling: Always handle API errors gracefully - assume agents are unavailable on errors.
  • Call ID Tracking: Use unique call IDs to correlate API checks with actual calls in your logs.
  • Response Time: Typical response times are 20-100ms for optimal lead routing decisions.

Congratulations!

You've successfully set up and configured your Flowyte visual call routing system. Your calls will now be intelligently routed based on your specific rules and conditions.

For additional assistance, please contact our support team at support@flowyte.com.