OpenConnect API

Integrate Experience Cloud with contact center platforms for seamless CRM automation

Replaces "Connect API" - Complete Integration Guide

Why OpenConnect is Critical for Oracle & Zendesk

OpenConnect enables Experience Cloud to integrate with various contact center platforms, including telephony, voice, ACD, routing, and contact center solutions, to facilitate CRM automation and seamless data transfer.

Key Challenges Addressed

OpenConnect solves common inefficiencies caused by operating multiple disparate systems in Oracle & Zendesk environments. By seamlessly connecting your CRM with contact center routing platforms and telephony voice channels, OpenConnect enhances workflow efficiency in several critical ways:

  • Eliminates manual data entry between systems
  • Provides real-time synchronization of customer interaction data
  • Enables automated workflow triggers based on telephony events
  • Creates unified agent experiences across platforms
  • Improves data accuracy and reduces human error
  • Accelerates response times with automated routing and data population
🔐 Authentication Required

All OpenConnect API requests require a valid API key (JWT token) for authentication. Generate your API key from the Configuration → API Keys section before proceeding with integration setup.

Building a Connection

Follow this comprehensive 6-step process to establish a working OpenConnect integration. Each step is critical to ensure proper authentication and data flow between your contact center platform and Experience Cloud.

1

Verify Platform Requirements

Ensure your contact center platform supports both Ingress and Egress API connections. This is essential for bidirectional data flow between systems.

Required Information: You'll need your JWT Key, CRM ID, and Event Name to complete the integration.

2

Generate API Key

Create a new OpenConnect API Key or use an existing one from your Experience Cloud account. Navigate to Configuration → API Keys to manage your keys.

Security Best Practice: Use domain allow-lists to restrict API key usage to authorized domains only.

3

Obtain CRM ID

For Oracle (Service Cloud/Fusion): Use your domain name as the CRM ID.

For Zendesk: Use the hostname from your Zendesk environment URL.
Example: From https://mycompany.zendesk.com/support, use mycompany

4

Get Event Name

Navigate to your PopFlow in Experience Cloud, select the appropriate CRM instance, and copy the exact event name (case and length sensitive) from the published PopFlow configuration.

Important: Event names must match exactly - they are case-sensitive and space-sensitive!

5

Configure Parameters

Set up the required query parameters (agentid, jwt, event) and optionally include custom interaction data to personalize workflows.

All parameter names are case-sensitive.

6

Test Your Integration

Use the testing sections below to validate your API calls using GET or POST methods. Start with simple test calls before implementing in production.

Note: OpenConnect has a 128 KB payload size limit per message.

Supported SendMessage Endpoints

OpenConnect provides two types of endpoints for different integration scenarios:

CTI (Computer Telephony Integration) Endpoints

Use CTI endpoints for telephony and contact center integrations:

Endpoint Response Format
https://connect.openmethodscloud.com/api/sendmessage/CTI Plain string: "Result:OK"
https://connect.openmethodscloud.com/api/sendmessage/v1/CTI JSON formatted:
{ "result": "Success", "message": "OK" }
https://connect.openmethodscloud.com/api/sendmessage/bc/CTI Browser-based: Opens new window, auto-closes on success

CRM (Customer Relationship Management) Endpoints

Use CRM endpoints for integrations with Zendesk, Oracle, and other CRM systems:

Endpoint Response Format
https://connect.openmethodscloud.com/api/sendmessage/CRM Plain string: "Result:OK"
https://connect.openmethodscloud.com/api/sendmessage/v1/CRM JSON formatted:
{ "result": "Success", "message": "OK" }
https://connect.openmethodscloud.com/api/sendmessage/bc/CRM Browser-based: Opens new window, auto-closes on success
💡 Recommendation

Use the /v1/CTI or /v1/CRM endpoints for modern integrations as they return structured JSON responses, making error handling and logging significantly easier.

âš ī¸ Key Differences

CTI: Requires agentid, jwt, and event
CRM: Requires agentid, jwt, crmId, and event

CTI endpoints are typically used for telephony events like "On Ring", "On Answer", "On Hold", "On End".
CRM endpoints require an additional crmId parameter to identify the CRM instance.

Request Parameters

CTI (Telephony) Connection Parameters

For CTI integrations, include these required parameters:

agentid Required

The CTI login user name (case-sensitive). This is the agent's login username in your telephony system.

jwt Required

Your API key from Experience Cloud. Generate this in Security → API Keys.

event Required

PopFlow event name (case-sensitive). Common telephony events: On Ring, On Answer, On Hold, On End.

CRM Connection Parameters

For CRM integrations (Zendesk, Oracle, etc.), include these required parameters:

agentid Required

The CRM login user name (case-sensitive). This is the agent's username in your CRM system.

jwt Required

Your API key from Experience Cloud. Generate this in Security → API Keys.

crmId Required for CRM

Your CRM instance name. For Oracle, use your domain. For Zendesk, use the hostname from your Zendesk URL (e.g., "mycompany" from mycompany.zendesk.com).

event Required

The exact PopFlow event name (case and space sensitive) from your published PopFlow configuration in Experience Cloud.

Optional Context Data

Pass additional custom data elements in your requests to personalize workflows. This can include interaction data, customer information, routing data, or ACD-specific fields.

// Examples of optional context data
"customerTier": "Platinum",
"orderId": "ORD-12345",
"callType": "Support",
"previousInteractions": 5,
"accountValue": 25000
âš ī¸ Payload Size Limitation

OpenConnect limits the payload size to 128 KB per message due to variable-length encoding. Keep your data payloads within this limit to avoid request failures.

Sending JWT for Authentication

Recommended: Authorization Header (Bearer Token)

It is strongly recommended to include your JWT in the Authorization header using the Bearer token scheme. This approach ensures secure and standardized transmission of authentication credentials.

Authorization: Bearer <your_jwt_token>

Fallback: Query Parameter or Request Body

In scenarios where it's not technically feasible to include the JWT in the header (such as certain browser-based requests or limited client environments), the token may be passed as a fallback:

For GET Requests

Include the token as a query parameter:

?agentid=<agent_id>&jwt=<your_jwt_token>&event=<event_name>

For POST Requests

Include the token in the request body as a JSON field:

{
  "agentid": "<agent_id>",
  "jwt": "<your_jwt_token>",
  "crmid": "<crm_id>",
  "event": "<event_name>"
}

Example API Calls

POST Request (Recommended)

POST requests provide better security and flexibility for passing complex data structures. Set the Content-Type header to application/json.

POST https://connect.openmethodscloud.com/api/sendmessage/v1/CRM
Content-Type: application/json
Authorization: Bearer <your_jwt_token>

{
  "agentid": "john.doe",
  "crmid": "mycompany",
  "event": "CustomerOnboarding",
  "customerId": "CUST-12345",
  "customerTier": "Premium",
  "source": "InboundCall"
}

JavaScript / Node.js Example

const axios = require('axios');

async function triggerOpenConnect() {
  try {
    const response = await axios.post(
      'https://connect.openmethodscloud.com/api/sendmessage/v1/CTI',
      {
        agentid: 'john.doe',
        event: 'CustomerOnboarding',
        customerId: 'CUST-12345',
        tier: 'Premium'
      },
      {
        headers: {
          'Content-Type': 'application/json',
          'Authorization': `Bearer ${process.env.OPENCONNECT_JWT}`
        }
      }
    );

    console.log('Success:', response.data);
  } catch (error) {
    console.error('Error:', error.response?.data || error.message);
  }
}

triggerOpenConnect();

Python Example

import requests
import os

def trigger_openconnect():
    url = 'https://connect.openmethodscloud.com/api/sendmessage/v1/CTI'
    headers = {
        'Content-Type': 'application/json',
        'Authorization': f'Bearer {os.environ["OPENCONNECT_JWT"]}'
    }
    payload = {
        'agentid': 'john.doe',
        'event': 'CustomerOnboarding',
        'customerId': 'CUST-12345',
        'tier': 'Premium'
    }

    try:
        response = requests.post(url, json=payload, headers=headers)
        response.raise_for_status()
        print('Success:', response.json())
    except requests.exceptions.RequestException as error:
        print('Error:', error)

trigger_openconnect()

cURL Example

curl -X POST https://connect.openmethodscloud.com/api/sendmessage/v1/CTI \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -d '{
    "agentid": "john.doe",
    "event": "CustomerOnboarding",
    "customerId": "CUST-12345",
    "tier": "Premium"
  }'

Troubleshooting

Experience Not Triggered?

If your PopFlow experience isn't launching, check these common issues:

  1. Event Name Mismatch
    Ensure the event name is typed correctly with exact case and length (including spaces). Event names are case-sensitive and must match exactly what's configured in Experience Cloud.
  2. Unpublished PopFlow
    Double-check that the PopFlow you're trying to trigger is published to the event being called in your API request.
  3. Profile Mismatch (Oracle Service Cloud)
    If using Service Cloud CRM, ensure the published profile matches the CRM user's profile. Mismatched profiles will prevent the experience from launching.
  4. Invalid or Expired API Key
    Verify your JWT token is valid and hasn't expired. Regenerate if necessary from the API Keys section.
  5. Domain Restrictions
    If you've configured domain allow-lists on your API key, ensure requests are coming from authorized domains.

Error Messages & Status Codes

Status Code Error Message Description & Resolution
401 Unauthorized Invalid or missing JWT token. Verify your API key is correct and properly formatted in the Authorization header or request body.
400 Bad Request Invalid request data. Check that all required parameters are present and correctly formatted. Ensure JSON is valid and payload is under 128 KB.
404 Not Found Event name not found or PopFlow not published. Verify the event exists and is published in Experience Cloud.
500 Server Error Internal server error. If this persists, contact OpenMethods support with request details and timestamps.
âš ī¸ Common Error Response

Both 401 and 400 errors return the message: "Invalid token or data error". Check the HTTP status code to determine which issue you're encountering.

Supported Contact Center Platforms

OpenConnect has been tested and verified with the following contact center platforms. Each platform has specific integration guides available in the Experience Cloud knowledge base.

8x8
✓ Supported
Amazon Connect
✓ Supported
Cisco UCCE
✓ Supported
Cisco UCCX
✓ Supported
Cisco WebEx CC
✓ Supported
Five9
✓ Supported
Genesys PureCloud
✓ Supported
Genesys PureConnect
✓ Supported
Genesys PureEngage
✓ Supported
InContact Central
✓ Supported
InContact Hub
✓ Supported
TalkDesk
✓ Supported
Twilio Flex
✓ In Progress
✓ Supported
â„šī¸ Platform-Specific Guides

For detailed integration instructions specific to your contact center platform, please refer to the platform-specific guides in the Experience Cloud knowledge base.

Zoom Contact Center — View the complete Zoom Contact Center User Guide →

Best Practices

Security

  • Always use Authorization header with Bearer token scheme instead of including JWT in query parameters or request body
  • Never expose your API key in client-side code or commit it to version control systems
  • Store API keys in secure environment variables or secrets management systems
  • Configure domain allow-lists on your API keys to restrict usage to authorized domains only
  • Rotate API keys periodically (recommended every 90 days) for enhanced security
  • Use separate API keys for development, staging, and production environments
  • Monitor API key usage logs for suspicious activity

Performance & Reliability

  • Implement retry logic with exponential backoff for failed requests (max 3 retries recommended)
  • Set appropriate timeout values (recommended: 10-30 seconds for API calls)
  • Use the /v1/CTI endpoint for structured JSON responses and better error handling
  • Cache API responses when appropriate to reduce redundant calls
  • Monitor API response times and set up alerts for degraded performance
  • Use asynchronous/non-blocking requests in high-volume scenarios
  • Keep payload sizes well under the 128 KB limit - aim for < 64 KB for optimal performance

Error Handling

  • Always check HTTP status codes before processing responses
  • Log failed requests with full context (timestamp, parameters, error message) for debugging
  • Implement graceful degradation - don't let OpenConnect failures break critical user workflows
  • Validate all request parameters before sending to catch errors early
  • Handle both network errors and API errors appropriately
  • Provide meaningful error messages to users when integrations fail

Testing & Validation

  • Test with sample data in a non-production environment before going live
  • Verify event names match exactly (case and space sensitive) in all environments
  • Test with various payload sizes to ensure you stay within the 128 KB limit
  • Validate that all required PopFlows are published before deploying
  • Test error scenarios (invalid tokens, missing parameters, timeout conditions)
  • Document your integration configuration for future reference

Need Help?

If you encounter issues or have questions about OpenConnect, consult these resources:

  • API Keys Documentation - Review the complete guide to generating and managing API keys in Experience Cloud
  • Platform-Specific Integration Guides - Access detailed setup instructions for your specific contact center platform
  • Experience Cloud Knowledge Base - Search for troubleshooting articles and integration examples
  • Account Administrator - Contact your organization's Experience Cloud administrator for environment-specific configuration
  • OpenMethods Support - Submit a support ticket for technical assistance with integration issues
📧 Support Ticket Tips

When contacting support, include: your CRM type (Oracle/Zendesk), event name, sample API request, error messages received, and approximate timestamp of failed requests. This helps support teams diagnose issues faster.