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.

1.2 Choose Your Sign-Up Method
Select your preferred sign-up method:
- Email and password
- Google account
- Microsoft account

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

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

2. Connecting to RingCentral
2.1 Navigate to Settings
From your dashboard, click on "Settings" in the sidebar navigation.

2.2 Find RingCentral Connection Section
Scroll to the "Organization RingCentral Connection" section.

2.3 Connect RingCentral Account
Click on "Connect Organization with 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.

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.

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

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.

3.1 Dashboard Components
- Navigation Sidebar: Access different sections of the application
- Extensions Summary: Shows the number of configured extensions
- Routing Rules Summary: Displays total number of active routing rules
- Recent Call Activity: Shows recent call forwarding statistics

4. Adding Extensions
4.1 Navigate to Extensions
Click on "Extensions" in the sidebar navigation.

4.2 Add a New Extension
Click the "Add Extension from RingCentral" button.

4.3 Select an Extension
Choose from the list of available RingCentral extensions to add to Flowyte.

4.4 View Extensions List
Your newly added extension will appear in the extensions list.

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

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.

5.2 Add a New Rule
On the extension details page, click the "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)

5.4 Save the Rule
Click "Add Rule" to save your new routing rule.

5.5 View Rules List
Your new rule will appear in the rules list.

5.6 Edit or Delete Rules
Use the actions column to edit or delete existing 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.

6.2 Confirm Switching to Map-Based Routing
Read the warning about switching to map-based routing and confirm.

6.3 US Map Interface
The US map interface will appear, showing all states.

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

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

6.6 Set Region Destination
Choose where calls from this region should be forwarded:
- Extension number
- External phone number

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

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.

8.2 View Current Plan
Review your current plan details:
- Plan name
- Features
- Usage limits
- Renewal date

8.3 Upgrade Plan
Click "Upgrade Subscription" to view available 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.
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.
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.
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.
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:
9.8 API Request Examples
Basic Availability Check
Check if agents are available for a specific phone number using your routing logic:
{ "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.
{ "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
{ "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
{ "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
{ "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
{ "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.