Eloqua Integration Guide
Overview
This guide explains how to connect Bridged with Oracle Eloqua to sync contacts, accounts, and engagement data. The integration supports reading profiles from Eloqua for activation and broadcasting, as well as writing qualified leads and conversation outcomes back to Eloqua.
Oracle Eloqua provides REST APIs for real-time operations and a Bulk API for large data volumes .
Prerequisites
Before starting, ensure you have:
An Oracle Eloqua account with API access enabled
An Eloqua user with Administrator or AppCloud Developer permissions
The Eloqua Company Name (site name), which is the subdomain in your Eloqua URL (e.g.,
companynameinhttps://companyname.eloqua.com)The Eloqua objects and fields you wish to read from or write to (e.g., contacts, custom objects)
Connection Methods
Bridged supports two connection methods for Eloqua:
Method | Best for | Setup complexity |
|---|---|---|
OAuth 2.0 (Preferred) | Production integrations, secure, supports refresh tokens | Medium |
Basic Authentication | Legacy setups, internal tools | Low |
Recommendation: OAuth 2.0 is the preferred method for production integrations. Basic authentication is supported as a fallback for legacy scenarios .
Step 1: Create an App in Eloqua (OAuth 2.0)
To use OAuth 2.0 authentication, you must register an application with Oracle Eloqua .
Log in to your Eloqua instance as an Administrator.
Navigate to Settings → AppCloud Developer (gear icon in the top right).
Click Create App.
Complete the required fields:
Name:
Bridged IntegrationDescription:
Integration with Bridged for lead and conversation syncIcon: Optional
Under Lifecycle Setup, configure as needed (default settings are acceptable).
Under Authentication to Eloqua:
OAuth Callback URL:
https://gateway.bridged.media/auth/eloqua/callback
Click Save.
After saving, scroll down to the Authentication to Eloqua section and record:
API Client ID (Consumer Key)
API Client Secret (Consumer Secret)
Important: Store the Client Secret securely. You will not be able to retrieve it again.
Step 2: Configure Bridged to Connect to Eloqua
Log in to your Bridged dashboard.
Navigate to the Integrations section in your Bridged dashboard. If you do not see this section, contact
support@bridged.media.Click Eloqua → Connect Account.
Choose your authentication method:
Option A: OAuth 2.0 (Preferred)
Eloqua supports three OAuth 2.0 flows. Bridged uses the Authorization Code grant, which is recommended for most applications .
Enter your Company Name (site name from your Eloqua URL).
Enter your Client ID and Client Secret from Step 1.
Click Connect with Eloqua.
You will be redirected to Eloqua's login page (
login.eloqua.com).Enter your Eloqua credentials and grant access to the Bridged app.
You will be redirected back to Bridged.
OAuth Token Details :
Access Token expires in 8 hours
Refresh Token expires in 1 year
Authorization Code expires in 60 seconds
Bridged automatically handles token refresh using the refresh token.
Option B: Basic Authentication
Note: Basic authentication requires your Eloqua company name, username, and password. This method is less secure than OAuth 2.0 and is provided for legacy compatibility.
Enter your Company Name (e.g.,
companynamefromhttps://companyname.eloqua.com)Enter your Username in the format:
CompanyName\UserNameEnter your Password
Click Connect
Step 3: Configure Sync Settings
Once connected, configure the following:
Setting | Options | Description |
|---|---|---|
Objects to sync | Contacts, Custom Objects, Accounts | Choose which Eloqua objects Bridged can access |
Sync direction | Read only, Write only, Read + Write | Define data flow |
Field mapping | Custom | Map Eloqua fields to Bridged profile attributes |
Sync frequency | Real-time (webhooks), Hourly, Daily | Determines how often data is pulled |
Bulk sync limit: Each bulk operation is limited to 50 records per request. For larger datasets, Bridged automatically paginates through multiple requests.
Bulk API Considerations
Eloqua's Bulk API has the following limits :
Limit Type | Value |
|---|---|
Exports per hour | 2,000 |
Imports per hour | 2,000 |
Sync actions per hour | 4,000 |
Export records per request | 50,000 maximum |
Import request size | 32 MB maximum |
Import definition fields | 100 fields maximum |
Export definition fields | 250 fields maximum |
Bridged automatically respects these limits and queues requests when approaching rate thresholds.
Step 4: Configure Webhooks for Real-time Sync (Optional)
Eloqua supports outbound webhooks that can send real-time notifications when contacts are created or updated .
To configure a webhook in Eloqua:
In Eloqua, navigate to Settings → Apps.
Open the Webhook app.
Click Create Webhook.
Configure the webhook:
Webhook Name:
Bridged Real-time SyncRequest Type:
POSTWebhook Type:
OutboundWebhook URL:
https://gateway.bridged.media/webhooks/eloquaEloqua Object:
Contact(or your desired object)
Configure Authorization (if required):
None (default)
Basic Auth: Username and password
Bearer Token: Access token
API Key: Key-value pair
Optionally configure Headers and JSON Payload.
Select a test contact record and click Test to verify the connection.
A
2xxresponse is required before the webhook can be used .
Save the webhook configuration.
After configuration, you can use the webhook in Eloqua programs or campaigns to trigger real-time syncs to Bridged .
Step 5: Test the Integration
In Bridged, go to Integrations → Eloqua → Test Connection.
Confirm that a test contact can be read from Eloqua.
Create a test contact in Eloqua and verify it appears in Bridged (if reading is enabled).
In Bridged, mark a test contact as "qualified" and verify it writes back to Eloqua.
Using the Eloqua REST API for Testing
You can verify your integration by making a test API call using the access token :
bash
curl --request GET \
--url "https://{companyname}.eloqua.com/api/rest/2.0/assets/contacts?limit=10" \
--header "Authorization: Bearer {access_token}"Common Use Cases
Playbook | Direction | Description |
|---|---|---|
Activation | Read | Pull contact list from Eloqua to broadcast WhatsApp messages |
Qualification Agent | Read + Write | Read historical engagement, score contact, write score back to Eloqua |
Nurture & Conversion | Write | Log conversation outcomes and qualified contacts to Eloqua |
Rate Limiting & Performance
Rate limits depend on your Eloqua plan, not on Bridged. Refer to Oracle documentation for your specific API call limits.
Bulk operations: Maximum 50 records per request.
For large data volumes, use Eloqua's Bulk API which supports up to 50,000 records per export .
Security & Permissions
Bridged supports OAuth 2.0 (preferred) and Basic Authentication.
OAuth 2.0 access tokens expire after 8 hours; refresh tokens expire after 1 year .
Credentials are encrypted and never stored in plain text.
All API calls are made over TLS 1.2+.
You can revoke access at any time from Eloqua AppCloud Developer → Your App → Delete App or revoke tokens.
Troubleshooting Authentication Errors
Error Code | Description | Solution |
|---|---|---|
2500 | Unknown error | Retry the request or contact support |
2501 | Unknown token | Obtain a new access token |
2502 | Unknown site ID | Verify your company name/site name |
401 | Unauthorized | Check credentials and token validity |
Troubleshooting
Issue | Likely cause | Solution |
|---|---|---|
Connection fails | Invalid company name or credentials | Verify company name format and OAuth credentials |
No data appears | Field mapping incorrect | Check that Eloqua field names match Bridged profile attributes |
Write fails | Missing write permissions | Ensure the Eloqua user has appropriate permissions |
Bulk operation fails | Exceeds 50 record limit | Split your data into batches of 50 records or fewer |
Rate limiting (429) | Too many API calls | Reduce sync frequency; Bulk API has higher limits |
Authentication errors (401) | Expired OAuth token | Bridged automatically refreshes; check if refresh token is valid |
Webhook not working | Configuration or network issue | Test the webhook in Eloqua; verify callback URL is accessible |
"API_CLIENT_ID" not found | App not properly registered | Revisit Step 1 and ensure app is saved correctly |
Support
For integration support, contact your Bridged account manager or email support@bridged.media