January 2026
Release Notes: 2026-01-23 — Caps — Cap Settings
Section titled “Release Notes: 2026-01-23 — Caps — Cap Settings”coming soon
Originally published at https://help.mojaai.com/en/articles/13476919-release-notes-2026-01-23-caps-cap-settingsRelease Notes: 2026-01-23 — DNI — Tags and Number Pools for Landing pages
Section titled “Release Notes: 2026-01-23 — DNI — Tags and Number Pools for Landing pages”Historical release note for Tags/Snippets, Number Pools, DNI, Dynamic Number Insertion, Javascript, and Google Ads attribution.
Looking for the current setup guide? See DNI, Tracking Tags/Snippets, and Number Pools. For Google Ads upload setup, see Google Ads Integration: Conversion Postbacks with Snippets & DNI.
Location: Integrations → Tags, Numbers → Number Pools, Call Tracking
Release Date: 11-14-2025
📝 Overview
Section titled “📝 Overview”The Call Attribution and Number Pooling release connects web sessions to inbound calls using dynamic JavaScript tags and flexible number assignment. It enables real-time visitor tracking, session-level attribution, and scalable number management — so you can tie every call back to its true origin with confidence.
Note: In the portal, these website tracking scripts may appear as Tracking Tags or Snippets. Both terms refer to the JavaScript installed on your landing pages to capture visitor-session data and power DNI attribution.
✨ What’s New
Section titled “✨ What’s New”MojaAI now supports a fully integrated system for:
-
🏷️ Capturing visitor data from landing pages using JavaScript tags
-
🔢 Dynamically assigning and tracking phone numbers from provisioned number pools
-
📈 Attributing inbound calls to specific sessions and marketing campaigns
-
⚙️ Managing number provisioning asynchronously with full audit tracking
💡 All visitor interactions are tracked using a unique visitor_id, ensuring persistent attribution across reloads and return visits.
🎯 Why This Matters
Section titled “🎯 Why This Matters”🔍 Know where every call came from
Section titled “🔍 Know where every call came from”Calls are automatically linked to the session, tag, and campaign that sourced them.
🔄 Assign dynamic phone numbers on the fly
Section titled “🔄 Assign dynamic phone numbers on the fly”Visitors see campaign-specific numbers pulled from your number pools — updated in real time.
🚀 Scale effortlessly
Section titled “🚀 Scale effortlessly”Number pools expand automatically via provisioning webhooks, with all changes tracked and auditable.
📊 Full session context on every lead
Section titled “📊 Full session context on every lead”Attribution includes UTM parameters, GCLID, referrer, browser info, and more — tied directly to call-level logs.
This session context is also what enables Moja’s Google Ads integration. When a visitor arrives from a Google ad, the tag/snippet captures the Google click identifier, such as gclid, gbraid, or wbraid. When DNI assigns that visitor a trackable number and the visitor calls, Moja can connect the call back to the original ad click and upload the qualified call conversion to Google Ads.
💡 Example Use Cases
Section titled “💡 Example Use Cases”-
A visitor lands on a product or lead-gen page through an email campaign. The MojaAI tag captures their session and replaces the visible phone number with one from your pool.
-
When the visitor calls, MojaAI automatically matches the call to the captured session and updates attribution tables.
-
Later, your team expands the number pool for seasonal traffic. MojaAI provisions the new numbers asynchronously and logs them in the pool’s order history.
🚀 Getting Started
Section titled “🚀 Getting Started”If you plan to use Google Ads conversion uploads, make sure Google Ads auto-tagging is enabled and that your Moja tag/snippet is installed on every landing page receiving Google Ads traffic. Without the tag/snippet and DNI number assignment, Moja cannot reliably send call conversions to Google Ads.
1️⃣ Create a Number Pool
Section titled “1️⃣ Create a Number Pool”-
Navigate to Numbers → Number Pools
-
Click Create Pool
-
Choose a number prefix (local or toll-free), define the pool size, and submit
-
MojaAI provisions the numbers asynchronously and displays their status in the pool table
🟦 Tip: Once provisioned, the pool is ready to use with your tracking tags.
2️⃣ Create a Tracking Tag
Section titled “2️⃣ Create a Tracking Tag”-
Navigate to Integrations → Tags
-
Click Create Tag
-
Enter a tag name and select the Number Pool created earlier
-
Choose the on-page number to replace
-
Submit to generate a custom JavaScript snippet
-
Embed the snippet in the
<head>section of your landing page
🟩 Reminder: The snippet must be placed before any scripts that render dynamic page content.
3️⃣ Track Attribution Events
Section titled “3️⃣ Track Attribution Events”-
Open the Call Tracking section
-
View inbound call records linked to visitor sessions
-
Attribution includes: tag ID, campaign,
visitor_id, UTM metadata, GCLID, FBCLID, referrer, browser data, and more
🟧 Insight: Every call includes full session context for reporting, analytics
Originally published at https://help.mojaai.com/en/articles/12886313-release-notes-2026-01-23-dni-tags-and-number-pools-for-landing-pagesRelease Notes: 2026-01-23 — RTB — RTB Requests Reporting Enhancements
Section titled “Release Notes: 2026-01-23 — RTB — RTB Requests Reporting Enhancements”RTB Requests Reporting Enhancements
Location: Reporting → RTB Requests SectionWhat Changed
-
Added new columns for improved visibility into routing outcomes:
-
Total Routes
-
Failed Routes (ineligible routes, met caps, outside HOO, etc.)
-
Successful Routes
-
Bid Won → If Yes, Duration and Payout are displayed (conditional on successful call transfer).
-
Duration
-
Payout
-
CLID
-
-
Added API response detail per call, including the actual ping associated with the call.
-
If a call was made, the CLID is now included in the details.
-
Users can click View Call to see specific call details tied to the CLID.
Why This Matters
These updates provide clearer insights into why routes succeed or fail, make bid outcomes more transparent, and align reporting data with API responses. This reduces friction when troubleshooting calls or validating performance.
Example Use Cases
-
Identify if a call failed due to restrictions (caps, budget, state, etc.).
-
Confirm that a winning bid properly shows Duration and Payout.
-
Use CLID details to validate calls against API logs.
CSV exports for RTB request tables
Section titled “CSV exports for RTB request tables”RTB request tables now support CSV export. Exports are available for Inbound RTB Life Logs, Inbound RTB Requests, and Outbound RTB Requests.
Exported files use the same date range, filters, search, and sort settings currently applied to the table. Large exports stream with progress feedback and can be cancelled while running.
Getting Started
Navigate to the RTB Requests section on the Reporting page. Look for the new columns in the table, then click View Call for complete call details.
Inbound RTB bid filter
Section titled “Inbound RTB bid filter”Inbound RTB Requests now include a bid filter in the advanced filters area. Use it to switch between:
-
All pings - show all inbound RTB request pings.
-
With bids - show only pings that produced one or more bids.
-
No bids - show pings that did not produce a bid.
The selected bid filter also applies to CSV exports, so exported data matches the filtered table view. This helps teams separate bid and no-bid traffic quickly while troubleshooting inbound RTB request activity.
Originally published at https://help.mojaai.com/en/articles/13476931-release-notes-2026-01-23-rtb-rtb-requests-reporting-enhancementsRelease Notes: 2026-01-23 — RTB — RTB Requests Reporting Enhancements
Section titled “Release Notes: 2026-01-23 — RTB — RTB Requests Reporting Enhancements”real-time bidding, rtb, real time bidding, ping, pings
Feature Update
Section titled “Feature Update”Location: Reporting → RTB Requests
Release Date: 9/29/25
📝 Overview
Section titled “📝 Overview”The RTB Requests reporting view has been enhanced to provide clearer visibility into routing outcomes, bid results, and call-level details. These improvements make it easier to understand why routes succeed or fail and to validate performance against RTB API responses.
✨ What Changed
Section titled “✨ What Changed”📈 New Routing Outcome Columns
Section titled “📈 New Routing Outcome Columns”The RTB Requests table now includes additional columns to improve transparency:
-
Total Routes
-
Failed Routes
*(ineligible routes, caps reached, outside hours of operation, etc.)* -
Successful Routes
-
Bid Won
-
If Yes, Duration and Payout are displayed
-
Displayed only when a call is successfully transferred
-
☎️ Expanded Call Metrics
Section titled “☎️ Expanded Call Metrics”Additional call-level fields are now available directly in reporting:
-
Duration
-
Payout
-
CLID
These values help tie routing outcomes directly to call performance.
🔍 API Response & Call Detail Visibility
Section titled “🔍 API Response & Call Detail Visibility”Each RTB request now includes:
-
The actual RTB ping/response associated with the call
-
CLID included when a call is placed
-
A View Call action that links directly to detailed call records tied to the CLID
🟦 Traceability: Reporting data now aligns more closely with RTB API behavior and call execution.
🎯 Why This Matters
Section titled “🎯 Why This Matters”These enhancements make RTB reporting more actionable and easier to troubleshoot by:
-
Clarifying why routes succeed or fail
-
Making bid outcomes more transparent
-
Aligning routing data with API responses and call records
-
Reducing friction when validating performance or investigating issues
💡 Example Use Cases
Section titled “💡 Example Use Cases”-
Identify whether a call failed due to caps, budgets, geography, or hours-of-operation rules
-
Confirm that winning bids correctly display Duration and Payout
-
Use CLID to cross-reference RTB activity with call logs and external API records
🚀 Getting Started
Section titled “🚀 Getting Started”-
Navigate to Reporting → RTB Requests
-
Review the new routing and bid-related columns in the table
-
Click View Call to access full call details associated with the CLID
🧭 Roadmap
Section titled “🧭 Roadmap”Additional reporting enhancements and expanded analytics are planned to further improve RTB visibility and performance analysis.
Originally published at https://help.mojaai.com/en/articles/13148324-release-notes-2026-01-23-rtb-rtb-requests-reporting-enhancementsRelease Notes: 2026-01-23 — Routing — Clone Setup
Section titled “Release Notes: 2026-01-23 — Routing — Clone Setup”NEW FEATURE RELEASE: Clone Setup for Campaigns, Targets, Routing Plans & IVRs
Location: Campaigns, Targets, Routing Plans, IVRs sections Release Date: 12/10/25
Summary
Section titled “Summary”This release introduces the ability to clone existing configurations across the platform. Users can now duplicate Campaigns, Targets, Routing Plans, and IVRs to speed up setup when creating similar configurations. This eliminates the need to manually recreate entire configurations when only minor differences are needed.
Why This Matters
Section titled “Why This Matters”Networks managing multiple similar campaigns often need to create configurations that are nearly identical, such as the same vertical with different publishers. Previously, this required manually recreating each configuration from scratch.
This release enables customers to:
-
Quickly create new campaigns based on existing ones
-
Duplicate targets, routing plans, and IVRs with a single click
-
Reduce setup time significantly when managing multiple similar configurations
-
Maintain consistency across related configurations
What’s Included
Section titled “What’s Included”- Clone Campaigns – duplicate entire campaigns including all nested elements
-
Clone Targets – create exact copies of existing targets
-
Clone Routing Plans – duplicate routing plan configurations
-
Clone IVRs – copy IVR configurations including all versions
-
Automatic Naming – cloned items receive a “ - Dupe“ suffix automatically
-
Active/inactive status preserved – cloned campaigns, routing plans, targets, and RTB targets keep the same active/inactive status as the source item. Review cloned configurations before sending production traffic to them, especially when cloning an active item.
How It Works (End-to-End)
Section titled “How It Works (End-to-End)”1. Select an item to clone – Navigate to the list view for Campaigns, Targets, Routing Plans, or IVRs
-
Click Clone – Use the Clone button on any existing item
-
Review the copy – The system automatically creates a duplicate with “ - Dupe“ appended to the name
-
Edit as needed – Navigate directly to the cloned item to make any necessary changes
-
Confirm status before traffic – The cloned item keeps the source active/inactive status. If needed, adjust the status before sending traffic to it.
Feature Details
Section titled “Feature Details”Clone Campaigns
Section titled “Clone Campaigns”What Is Clone Campaigns?
Clone Campaigns creates a complete copy of an existing campaign, including all configuration details and associated targets. This allows users to quickly set up new campaigns based on proven configurations.
How Clone Campaigns Works
1. Navigate to the Campaigns list view
-
Click the Clone button on any campaign
-
A new campaign is created with the original name plus “ - Dupe“ (e.g., “Flight Booking” becomes “Flight Booking - Dupe”)
-
The system automatically navigates to the edit view for the new campaign
-
All campaign information and targets are retained
-
Publisher and publisher number assignments are NOT copied (must be configured separately)
Clone Targets
Section titled “Clone Targets”What Is Clone Targets?
Clone Targets creates an exact 1:1 copy of an existing target configuration, allowing users to quickly set up similar targets without manual re-entry.
How Clone Targets Works
1. Navigate to the Targets list view
-
Click the Clone button on any target
-
A new target is created with “ - Dupe“ appended to the name
-
All target configuration details are copied exactly
Clone Routing Plans
Section titled “Clone Routing Plans”What Is Clone Routing Plans?
Clone Routing Plans duplicates existing routing plan configurations, enabling users to create variations of proven routing logic quickly.
How Clone Routing Plans Works
1. Navigate to the Routing Plans list view
-
Click the Clone button on any routing plan
-
A new routing plan is created with “ - Dupe“ appended to the name
-
All routing configuration details are copied exactly
Clone IVRs
Section titled “Clone IVRs”What Is Clone IVRs?
Clone IVRs creates a complete copy of an IVR configuration, including all versions, allowing users to build on existing IVR flows.
How Clone IVRs Works
1. Navigate to the IVRs list view
-
Click the Clone button on any IVR
-
A new IVR is created with “ - Dupe“ appended to the name
-
All IVR versions and configuration details are copied
Where This Lives in the UI
Section titled “Where This Lives in the UI”- Campaigns → Campaigns list view → Clone button
-
Targets → Targets list view → Clone button
-
Routing Plans → Routing Plans list view → Clone button
-
IVRs → IVRs list view → Clone button
Backward Compatibility & Safety
Section titled “Backward Compatibility & Safety”- Existing configurations are not affected
-
Cloning creates new items without modifying originals
-
Cloned items can be edited independently of source items
-
No migration is required
Delete Items from the Portal
Section titled “Delete Items from the Portal”Release Date: 02/14/26
You can now delete items directly from the portal. The delete button (trash icon) is available in the Actions column of every list view.
What You Can Delete
Section titled “What You Can Delete”-
Campaigns
-
Targets (standard & RTB)
-
RTB Groups
-
Buyers
-
Publishers
-
Routing Plans
-
IVRs
-
Call Flows
How to Delete an Item
Section titled “How to Delete an Item”-
Navigate to the list view for the item type (e.g., Campaigns)
-
Click the delete button (trash icon) in the Actions column
-
Confirm the deletion in the modal
Important: Deletions are soft deletes — the record is marked as deleted and removed from your view, but not permanently erased. If you need a record restored, contact the Moja team.
Originally published at https://help.mojaai.com/en/articles/13476914-release-notes-2026-01-23-routing-clone-setupRelease Notes: 2026-01-23 — Routing — Enhanced Hours of Operation
Section titled “Release Notes: 2026-01-23 — Routing — Enhanced Hours of Operation”hours of operation, business hours, breaks, availability, target hours
Manual Editing, Multiple Time Ranges & Schedule Copying
Section titled “Manual Editing, Multiple Time Ranges & Schedule Copying”Location: Targets / RTB Targets → Hours of Operation
Release Date: 12/8/25
📝 Overview
Section titled “📝 Overview”Hours of Operation has been upgraded to support greater precision, flexibility, and speed when managing availability schedules. You can now manually enter exact times, define multiple operating windows per day, and copy schedules across days — all with a consistent, improved display across Targets and Campaigns.
✨ What’s New
Section titled “✨ What’s New”⌨️ Manual Time Editing
Section titled “⌨️ Manual Time Editing”You can now enter times directly using hour, minute, and AM/PM fields.
-
As you type, the system automatically validates each entry
-
Times are converted into the correct internal format in real time
-
Ideal for fine-grained adjustments and exact availability windows
🟦 Tip: Perfect for entering non-round times like 8:15 AM or 4:45 PM.
🕒 Multiple Time Ranges Per Day
Section titled “🕒 Multiple Time Ranges Per Day”You can now configure more than one operating window within the same day.
-
Supports breaks, staggered shifts, and split schedules
-
No need to force continuous availability ranges
🟩 Example: Open from 9:00–12:00, closed for lunch, then open again 1:00–5:00.
📋 Copy Schedule Across Days
Section titled “📋 Copy Schedule Across Days”Instead of recreating schedules day by day, you can now:
-
Copy a day’s hours
-
Apply them to multiple other days with a single action
🟨 Time Saver: Configure once and reuse across weekdays or recurring patterns.
📊 Improved Hours Display Across Targets & Campaigns
Section titled “📊 Improved Hours Display Across Targets & Campaigns”Operating hours now render using the upgraded Hours Grid component.
-
Fully supports multi-range schedules
-
Consistent display across Targets, RTB Targets, and Campaigns
-
Clear visual representation of complex availability
🎯 Why This Matters
Section titled “🎯 Why This Matters”This enhancement makes managing complex operating schedules easier, faster, and more accurate.
Whether your team:
-
Runs multiple shifts
-
Closes midday
-
Requires precise open/close times
These tools reduce repetitive work and ensure routing logic always reflects true business availability.
💡 Example Use Cases
Section titled “💡 Example Use Cases”-
Set morning and afternoon operating windows on the same day
-
Model a midday break without creating a continuous range
-
Configure hours once and copy Monday → Friday
-
Fine-tune availability using exact times like 8:15 AM or 4:45 PM
🚀 Getting Started
Section titled “🚀 Getting Started”-
Navigate to any Target → Hours of Operation section
-
Type exact times using the hour / minute / AM–PM inputs
-
Add multiple time ranges for any day
-
Use Copy Schedule to apply hours to other days
-
View updated hours instantly across Targets and Campaigns
🟩 No additional setup required — changes apply immediately.
Originally published at https://help.mojaai.com/en/articles/13148216-release-notes-2026-01-23-routing-enhanced-hours-of-operation
Release Notes: 2026-01-23 — Routing — Routing Plan Overrides
Section titled “Release Notes: 2026-01-23 — Routing — Routing Plan Overrides”NEW FEATURE RELEASE: Routing Plan OverridesLocation: Campaign page
Routing Plan Overrides let you set up special-case rules so certain calls can bypass the default routing plan.What’s New
Match on: Tell the system what to look at to trigger the override. You can match on two fields:
- Publisher → limits the override to calls from a specific Publisher
Only calls from Pub A with caller ID555-123-4567 trigger this override.
- Caller ID (Number) → the callerID of the caller
Any call into this campaign with 555-123-4567 triggers the override.
Publisher: Select the publisher name from the drop down
Filter type: Caller ID is the only option
Filter Operator: Select an option
-
Equals — Exact match
-
Starts with — Matches beginning of caller ID
-
Ends with — Matches end of caller ID
-
Contains — Matches anywhere in caller ID
-
Regex — Regular expression pattern matching
Priority: Use if multiple overrides exist within the same campaign.
Lower numbers = higher priority (0 executes before 1)
Status: Enable/disable an override without changing the base plan.
Routing Plan to target: Select the routing plan to apply when this override matches.Why This Matters
Sometimes you need to handle certain calls or publishers differently than the default routing logic. Overrides let you do this without changing your entire routing plan.Example Use Cases
-
Route test numbers directly to a test campaign.
-
Ensure VIP callers always reach a dedicated plan.
-
Apply special routing rules for traffic from a specific publisher.
-
Redirect problem numbers to a different target.
Getting Started
You’ll find Routing Plan Overrides inside the Campaign page. Start by selecting a Publisher or Caller ID to match on, enter the Caller ID you want to handle differently and choose the routing plan that should be used when the override applies.
Release Notes: 2026-01-23 — Routing — SIP Trunk Targets
Section titled “Release Notes: 2026-01-23 — Routing — SIP Trunk Targets”[NEW FEATURE RELEASE]
SIP Trunk Targets
Location: Targets
Release Date: 2025-11-24
Overview
You can now route outbound calls through SIP trunks using SIP Targets. This allows campaigns and routing plans to send calls to any valid SIP endpoint, with support for authentication and custom SIP headers.
What’s New
Moja now supports SIP Trunk Targets as routable endpoints, allowing calls to be delivered directly to a buyer’s SIP infrastructure instead of PSTN or standard number targets.
-
SIP Target Type in UI:
-
When creating a Target, you can now select SIP Target and provide:
-
SIP URI (e.g.,
sip:[email protected]:5070) -
Optional headers and auth credentials
-
Variable substitution for dynamic headers
-
Routing Plan Support:
-
Add SIP Targets as route actions via “Route to SIP Target”
-
Set priorities and weights just like traditional number-based targets
-
-
RTB Compatibility:
-
SIP Targets work with Real-Time Bidding allocations, including buyer-level routing.
Why This Matters
This release enables direct interoperability between Moja and enterprise buyers who rely on SIP trunks to receive call traffic. It:
-
Removes the dependency on PSTN delivery for SIP-native buyers.
-
Enables advanced routing configurations with header injection and credential management.
-
Unlocks a new segment of buyers previously constrained by infrastructure compatibility.
Example Use Cases
-
A VoIP provider delivers RTB calls to their SIP SBC using URI-based routing.
-
A buyer bypasses Moja’s default recording layer by routing directly to a SIP device.
-
A routing plan allocates a percentage of traffic to a SIP target with specific custom headers for testing or vendor segmentation.
Getting Started
-
Go to:
Targets >Create Newand select SIP Targetas the Target Type under the Routing Settings section. -
Fill out SIP URI, headers and credentials and save.
-
Required:
sip_endpoint(e.g.sip:[email protected]:5070) -
Optional:
sip_username,sip_password,sip_headers
-
-
Add to a routing plan, then assign the plan to a campaign
Release Notes: 2026-01-23 — Routing — SIP Trunk Targets
Section titled “Release Notes: 2026-01-23 — Routing — SIP Trunk Targets”sip, outbound sip, call transfers, routing
Location: Targets → RTB Targets
Release Date: 11-24-2025
📝 Overview
Section titled “📝 Overview”You can now route outbound calls through SIP trunks using SIP Targets. This enables campaigns and routing plans to send calls directly to any valid SIP endpoint — with full support for authentication, custom SIP headers, and dynamic metadata injection.
✨ What’s New
Section titled “✨ What’s New”🎯 SIP Trunk Targets as Routable Endpoints
Section titled “🎯 SIP Trunk Targets as Routable Endpoints”Moja now supports SIP Targets as first-class routing destinations, allowing calls to be delivered straight into a buyer’s SIP infrastructure (instead of PSTN or standard number targets).
🆕 SIP Target Type in the UI
Section titled “🆕 SIP Target Type in the UI”When creating a Target, you can now choose SIP Target and configure:
-
🔗 SIP URI (e.g.,
sip:[email protected]:5070) -
🔐 Optional authentication credentials (username/password)
-
🏷️ Custom SIP headers
-
🔄 Dynamic variable substitution for header values
🔀 Routing Plan Support
Section titled “🔀 Routing Plan Support”You can now:
-
Add SIP Targets as actions inside routing plans using “Route to SIP Target”
-
Configure priorities, weights, and fallback logic like any other target type
⚡ RTB Compatibility - COMING SOON
Section titled “⚡ RTB Compatibility - COMING SOON”Future release will enable SIP Targets to be fully supported within Inbound RTB flows, enabling:
-
Dynamic SIP target assignment (upcoming release)
-
SIP-level delivery to RTB auction winners (upcoming release)
-
Real-time endpoint allocation via RTB logic (upcoming release)
🟦 Note: In a future release, SIP Targets will work everywhere number-based targets do — including RTB, campaigns, and routing plans.
🎯 Why This Matters
Section titled “🎯 Why This Matters”This release enables direct SIP interoperability between Moja and enterprise buyers that rely on SIP trunks.
It:
-
🚫 Removes dependency on PSTN for SIP-native buyers
-
🧩 Enables advanced routing with header injection & credential control
-
🔓 Unlocks new buyer segments previously limited by infrastructure compatibility
💡 Example Use Cases
Section titled “💡 Example Use Cases”-
A routing plan allocates a percentage of traffic to a SIP endpoint using unique headers for testing, segmentation, or vendor separation - Available now
-
A VoIP provider receives RTB calls directly into their SIP SBC via URI routing - Coming soon
-
A buyer in an RTB auction is assigned a SIP Target with credentials and custom headers; if they win, Moja securely dials their SIP trunk - Coming soon
🚀 Getting Started
Section titled “🚀 Getting Started”1️⃣ Create a SIP Target
Section titled “1️⃣ Create a SIP Target”-
Go to Targets → Create New
-
Under Routing Settings, select SIP Target
-
Fill out the SIP configuration fields:
-
Required:
sip_endpoint(e.g.,sip:[email protected]:5070)
-
Optional:
-
sip_username -
sip_password -
sip_headers
-
-
🟩 Tip: Headers support dynamic variables like campaign_id, buyer_id, or RTB metadata.
2️⃣ Add the SIP Target to a Routing Plan
Section titled “2️⃣ Add the SIP Target to a Routing Plan”-
Open a routing plan → select Route to SIP Target
-
Configure priority/weight
-
Save the plan
3️⃣ Assign the Routing Plan to a Campaign
Section titled “3️⃣ Assign the Routing Plan to a Campaign”-
Go to your campaign settings
-
Choose the routing plan containing your SIP Target
-
Save and activate
🟧 Reminder: SIP-targeted calls originate from Moja’s SIP infrastructure — ensure your SIP firewall/SBC accepts our IPs.
Originally published at https://help.mojaai.com/en/articles/13148195-release-notes-2026-01-23-routing-sip-trunk-targetsRelease Notes: 2026-01-24 — Integrations — Google Ads Integration
Section titled “Release Notes: 2026-01-24 — Integrations — Google Ads Integration”NEW FEATURE RELEASE: Google Ads Integration
Location: Integrations → Google Ads
We’ve launched a fully integrated Google Ads experience that makes it simple, secure, and automated for you to send call conversion data directly into your Google Ads account. This helps you improve campaign performance and optimize bidding strategies using accurate call conversion data.What’s New
Connect Your Google Ads Account Securely
MojaAI now supports secure OAuth authorization for Google Ads, including encrypted storage of your credentials.
Manage Conversion Actions in One Place
Create, select, and manage conversion actions directly from your Integrations page. From here, you can set the default conversion action that conversions will be sent to.
Automatically Upload Call Conversions
Eligible call conversions are automatically sent to Google Ads every hour. The system respects your configured upload delays and Google Ads lookback windows.
Track Upload Performance
You can access detailed statistics for your conversion uploads, including counts of successful and failed uploads, timestamps, durations, retry counts, and error messages.
Reliable Delivery With Automatic Retries
“If Google Ads is temporarily unavailable, MojaAI automatically retries the upload until successful - once per hour up to a maximum of 10 times.
Cleaner Navigation and Improved Integration
Google Ads–related routes and workflows have been reorganized for greater clarity and easier setup.Why This Matters
Accurate conversion tracking is essential for optimizing bidding strategies and evaluating advertising performance. With this integration, MojaAI ensures:
-
Reliable delivery of call conversions
-
Reduced manual work
-
Better data for Smart Bidding
-
Higher fidelity in measuring marketing performance
Example Use Cases
-
Automatically feed Google Ads high-quality call conversions for improved optimization
-
Maintain accurate conversion data even during temporary outages
-
Ensure only eligible conversions are sent based on your configured rules
Getting Started
-
Go to Integrations → Google Ads.
-
Click “Authorize Google Ads Access” and complete the OAuth flow.
-
Select your default conversion action.
-
Conversions will begin syncing automatically every hour.
Upload statistics and retry information are available on the “Overview” tab of each linked Google account.
Release Notes: 2026-01-24 — Integrations — Google Ads Integration
Section titled “Release Notes: 2026-01-24 — Integrations — Google Ads Integration”google, google ads, integrations, conversion postbacks
🎉 Now Live
Location: Integrations → Google Ads
Release Date: Wed, 12/04/2025
📝 Overview
Section titled “📝 Overview”We’ve launched a fully integrated Google Ads experience that makes it simple, secure, and automated to send call conversion data directly into your Google Ads account. This enables more accurate optimization, smarter bidding strategies, and improved campaign performance using high-quality call conversion data.
✨ What’s New
Section titled “✨ What’s New”🔐 Connect Your Google Ads Account Securely
Section titled “🔐 Connect Your Google Ads Account Securely”MojaAI now supports secure OAuth authorization for Google Ads.
-
Encrypted storage of credentials
-
No manual API keys required
-
Safe, revocable access at any time
🟦 Security First: Credentials are encrypted and never exposed.
🎯 Manage Conversion Actions in One Place
Section titled “🎯 Manage Conversion Actions in One Place”You can now create, select, and manage conversion actions directly from the Integrations page.
-
Choose which conversion actions to use
-
Set a default conversion action for uploads
-
Centralized configuration for all linked accounts
⏱️ Automatically Upload Call Conversions
Section titled “⏱️ Automatically Upload Call Conversions”Eligible call conversions are uploaded automatically every hour.
-
Respects your configured upload delays
-
Honors Google Ads lookback windows
-
No manual exports or uploads required
🟩 Automation: Once enabled, syncing runs continuously in the background.
📈 Track Upload Performance
Section titled “📈 Track Upload Performance”Gain visibility into every conversion upload with detailed statistics:
-
Successful vs. failed uploads
-
Upload timestamps and durations
-
Retry counts
-
Google Ads error messages
🟨 Insight: Quickly diagnose issues and verify delivery health.
🔁 Reliable Delivery With Automatic Retries
Section titled “🔁 Reliable Delivery With Automatic Retries”If Google Ads is temporarily unavailable, MojaAI ensures reliable delivery.
-
Automatic retries once per hour
-
Up to 10 retry attempts per conversion
-
Upload resumes automatically when Google Ads is available
🟧 Resilience: No lost conversions due to temporary outages.
🧭 Cleaner Navigation & Improved Integration Flow
Section titled “🧭 Cleaner Navigation & Improved Integration Flow”Google Ads–related pages and workflows have been reorganized to provide:
-
Clearer setup steps
-
Improved discoverability
-
Faster onboarding for new integrations
🎯 Why This Matters
Section titled “🎯 Why This Matters”Accurate conversion tracking is essential for evaluating performance and optimizing bids. With this integration, MojaAI delivers:
-
✅ Reliable delivery of call conversions
-
🔄 Reduced manual work
-
🤖 Better data for Smart Bidding
-
📊 Higher-fidelity marketing performance measurement
💡 Example Use Cases
Section titled “💡 Example Use Cases”-
Automatically feed Google Ads high-quality call conversions for improved optimization
-
Maintain accurate conversion data even during temporary Google Ads outages
-
Ensure only eligible conversions are uploaded based on your configured rules
🚀 Getting Started
Section titled “🚀 Getting Started”-
Go to Integrations → Google Ads
-
Click Authorize Google Ads Access and complete the OAuth flow
-
Select your default conversion action
-
Call conversions will begin syncing automatically every hour
📊 Upload statistics and retry information are available on the Overview tab of each linked Google Ads account.
🧭 What’s Next
Section titled “🧭 What’s Next”Meta (Facebook) Ads integrations are coming soon — expanding automated conversion tracking across additional ad platforms.
🔮 Roadmap: Meta Ads integrations
Originally published at https://help.mojaai.com/en/articles/13148224-release-notes-2026-01-24-integrations-google-ads-integrationRelease Notes: 2026-01-24 — RTB — Advanced Filters for RTB Campaigns
Section titled “Release Notes: 2026-01-24 — RTB — Advanced Filters for RTB Campaigns”NEW FEATURE RELEASE! Advanced Filters for RTB Campaigns
Location: RTB Campaigns → Create / Edit PageAdvanced Filters let you control which traffic enters each RTB campaign by allowing or blocking calls based on state, ZIP code, and/or publisher.
You can mix these options in any combination — for example, allow traffic from California and Nevada but block certain ZIP ranges or publishers — all directly from the campaign page.
This feature helps campaign managers target higher-quality calls, reduce unwanted traffic, and adjust routing instantly without backend changes.What’s New
-
Flexible Rules: Allow or block calls by state, ZIP code, and publisher.
-
Combinations Supported: Combine multiple filters for precise targeting.
-
Real-Time Validation: Filters are checked automatically when saving a campaign.
-
Reusable Setup: Saved filters stay attached to the campaign and can be updated anytime.
Why It Matters
Advanced Filters give you fine-grained control over your RTB campaigns.
You can focus spend on high-performing areas and publishers, maintain compliance with geographic restrictions, and react quickly to changing traffic quality — all from the dashboard.
Works great with Custom Tags: Use tags like [STATE] or [ZIP_CODE] inside Advanced Filters to dynamically match incoming session data and create adaptive routing logic.Example Use Cases
-
Compliance: Block calls from states with regulatory restrictions.
-
Performance: Exclude ZIP codes with low conversion rates.
-
Partner management: Route calls only from approved publishers.
-
Dynamic routing: Combine
[STATE]or[ZIP_CODE]tags with filters for precise, adaptive targeting.
Getting Started
-
Go to Targets/RTB → RTBs.
-
Open an existing RTB or create a new one.
-
Scroll to the Advanced Filters section.
-
Click Add Condition and choose State, ZIP, or Publisher.
-
Set each rule to Allow or Block, then Save.
All filtering and tag logic run automatically when the RTB executes—no additional setup required.
Originally published at https://help.mojaai.com/en/articles/13476916-release-notes-2026-01-24-rtb-advanced-filters-for-rtb-campaignsRelease Notes: 2026-01-24 — RTB — Custom Tags with RTB
Section titled “Release Notes: 2026-01-24 — RTB — Custom Tags with RTB”Custom Tags with RTBs
Location: Targets/RTB → RTBs
Custom Tags let you insert dynamic variables into RTB requests — URL, headers, query params, or body — using bracketed placeholders such as [CALLER_ID], [ZIP_CODE], or user-defined tag IDs.
The system resolves these tags at request time, preserves numeric types, and fills in missing ZIP or State data using NPANXX lookup.
All resolved values can be viewed under Reporting → RTB Requests → (+) beside each RTB entry.What’s New
-
Variables Modal in RTB Builder — Insert tags into Query, Headers, or Body fields using a searchable picker.
-
Body & Raw Body Support — Tags work in both structured and raw JSON payloads; results visible in Reporting.
-
Numeric Tag Handling —
Tags ending with _NUMERIC are automatically emitted as numbers (not strings) when the request is built.
This prevents errors when buyer or partner APIs expect numeric types (e.g., sending "bid": 100 instead of "bid": "100").
By enforcing numeric typing at runtime, the system eliminates a common source of downstream parsing errors and ensures API compliance.
-
Dynamic Resolution Pipeline — Tag placeholders resolve from the current call/session context, with NPANXX fallback for ZIP and State.
-
Pre-Resolution for Filtering — ZIP and State tags are resolved before filters run so Advanced Filters stay compatible.
-
Sequential Filter Evaluation —
Filters now evaluate left-to-right within each group operator (AND/OR).
Previously, mixed operators could yield inconsistent results. Now, each group executes sequentially, producing predictable routing logic — especially when tag-based filters (e.g., [STATE], [PUBLISHER_ID]) are used.
- Request Logging Upgrades — All query, body, and raw data captured per RTB request and displayed in the Reporting panel.
Why This Matters
Custom Tags make RTB calls more flexible and data-rich without engineering changes.
They ensure correct numeric typing, consistent location data resolution, and predictable filter behavior — improving delivery accuracy and troubleshooting visibility.
The combination of tag-based substitution and improved filter sequencing ensures routing behaves predictably even under complex targeting logic or conditional rules.
Special Note: Custom Tags and Advanced Filters work together within the same RTB configuration. You can use tags like [STATE] or [ZIP_CODE] inside filter conditions to build precise, data-driven routing logic directly from the RTB page.
Example Use Cases
-
Add
[CALLER_ID]and[ZIP_CODE]to a POST body; Moja auto-resolves ZIP/State from NPANXX if missing. -
Include
[BUYER_ID]in headers and[PAYOUT_NUMERIC]in the JSON body for buyer-specific attribution. -
Reference
[STATE]or[ZIP_CODE]tags in filters to refine targeting without editing the RTB schema.
Getting Started
-
In the left navigation, go to Targets/RTB → RTBs.
-
Select an existing RTB or click Create New.
-
In Query, Headers, or Body, click Variables to insert a tag.
-
Save your RTB.
-
Run a test call and view resolved parameters under Reporting → RTB Requests → (+) beside the RTB**.**
Inbound RTB Behavior: You cannot create Custom Tags directly in Campaigns, but if a Campaign references an RTB that uses them, those tags automatically pass through and resolve in the RTB request.
Originally published at https://help.mojaai.com/en/articles/13476921-release-notes-2026-01-24-rtb-custom-tags-with-rtbRelease Notes: 2026-01-24 — RTB — Multi-Step RTB Target Configuration
Section titled “Release Notes: 2026-01-24 — RTB — Multi-Step RTB Target Configuration”NEW FEATURE RELEASE: Multi-Step RTB Target Configuration
Location: Targets/RTBs -> RTBs
Overview
The Multi-Step RTB release enables chained bidding sequences—where multiple API requests can occur in order, and each step can use results from previous ones.
It allows flexible “ping-pong” auctions and real-time validation flows, so you can confirm winners or apply advanced decision logic before routing.What’s New
You can now define step-based logic within a single RTB target:
-
Ping-Then-Full Flow: Configure an initial limited “ping” call, then follow with the complete payload once a winning route is determined.
-
Step-Chained Evaluation: Define multiple steps inside an RTB target that execute in sequence.
-
Automatic Variable Chaining: Fields returned in one step (like BID_ID or SESSION_TOKEN) are automatically available in subsequent steps.
-
Per-Step Logic: Assign different payout, duration, or priority rules to each step.
-
RTB Target-Group Behavior: The winning step concept applies when the target is used inside an RTB Target Group only (the selected step determines the effective route for that group). runOnRTBGroupWin setting triggers a post-auction call once a winning route is selected.
-
Expanded Logging: Step responses are recorded to aid troubleshooting and analysis. Built-in resilience using continueOnFailure, ensuring the auction continues even if an intermediate step fails.
-
Backward Compatible: Single-step targets continue to work unchanged.
Why This Matters
Previously, advertisers had to create separate RTBs to simulate multi-layer logic, which complicated setup and reduced transparency.
Now, you can manage complex bidding strategies in one place — cutting down configuration time and minimizing routing errors.
Multi-step RTBs make it easier to:
-
Optimize call routing dynamically based on performance metrics.
-
Run A/B variations between buyer groups or targeting tiers.
-
Improve payout control without duplicating campaigns.
Example Use Cases
-
Two-Step Bid Logic: Send an initial ping to gather responses, then post the complete payload only to the selected bidder.
-
Dynamic Testing: Send the same call through multiple targets and route to whichever performs best.
-
Conditional Fallback: Automatically redirect to alternate buyers when response thresholds aren’t met.
-
Tiered Bidding: Create priority-based sequences for premium vs. secondary routes.
Release Notes: 2026-01-24 — RTB — RTB JavaScript Response Processing
Section titled “Release Notes: 2026-01-24 — RTB — RTB JavaScript Response Processing”FEATURE ENHANCEMENT RELEASE
RTB JavaScript Response Processing
Location: Routing → RTBs → RTB Steps
Overview
We’ve enhanced MojaAI’s RTB engine with JavaScript-based response processing, giving you far more flexibility in transforming and shaping RTB responses before routing decisions occur. This improvement unlocks dynamic business logic, deeper control, and greater consistency across multiple buyers or data sources — all without engineering support.
What’s New
Custom JavaScript Processing
You can now write JavaScript directly within an RTB step to transform the API response in real time. This lets you:
Add or modify fields
Apply conditional business rules
Normalize responses across different buyers
Filter and reshape data structures
Build dynamic logic that reacts to real-time bid values
Enhanced Visibility & Testing
The RTB editor now includes:
A built-in JavaScript editor
Test execution using live or example RTB responses
Clear output panels for execution results
Validation and error reporting to help catch mistakes immediately
Secure Execution Environment
Your code runs inside a hardened sandbox with:
No external network access
No timers, async functions, or Node.js APIs
Automatic fallback to the original response on error
Strict performance and safety limits
Why This Matters
This enhancement gives Moja customers the ability to implement complex business logic without engineering involvement. It enables:
Faster setup for multi-buyer RTB workflows
More accurate and consistent routing decisions
Tailored transformations based on each buyer’s unique response structure
Power-user flexibility for advanced routing strategies
Campaign operators can now move significantly faster while maintaining reliability and full control.
Example Use Cases
Here are a few practical ways teams can use RTB JavaScript Response Processing:
-
Conditional Routing Based on Bid Value
if (response.bid_amount > 5) {
response.route_priority = “premium”;
}
return response; -
Normalizing Buyer Responses
response.normalized_payout = Number(response.payout) || 0;
return response; -
Filtering Available Offers
return response.offers.filter(o => o.active); -
Array Transformation for Next Steps
response.offers = response.offers.sort((a, b) => b.payout - a.payout);
return response;
Getting Started
-
Open an RTB
Navigate to Routing → RTBs and select your desired RTB. -
Select a Step
Pick the step whose API response you want to customize. -
Open “Process Response (JavaScript)”
Scroll to the code editor within the step configuration. -
Test Your Script
Run your JavaScript against:
A real test RTB call
A sample response you paste in
You’ll see:
Execution output
Validation results
Any errors in your script -
Save & Apply
Once validated, save the change.
Your script will now automatically run during every RTB execution.
Release Notes: 2026-01-24 — RTB — RTB Predefined Phone Number Option
Section titled “Release Notes: 2026-01-24 — RTB — RTB Predefined Phone Number Option”NEW FEATURE RELEASE: RTB Predefined Phone Number Option
Release Date:
Location: RTB page → Parameters section
What’s New
RTB formulas can now use a Predefined Phone Number instead of relying on an API response.
This gives teams consistent call routing when an RTB integration does not provide a phone number.
New Options:
-
Use Predefined Phone Number (skip phone mapping):
-
Checkbox that tells the system to skip phone mapping and use a fixed number for all RTB calls.
-
Predefined Phone Number:
-
Input field for entering the number (E.164 format – e.g.
+15551234567).
Behavior & Validation:
-
If unchecked, phone mapping is still required.
-
If checked, only payout and duration mappings must be defined.
-
Backend and RTB execution services apply the flag uniformly to ensure reliable routing.
Why This Matters
Some RTB APIs don’t return a destination number, which can interrupt call flow.
This feature keeps calls running smoothly by letting users define a fixed number directly within RTB.
It’s also helpful for testing, staging, and controlled routing flows that demand predictable behavior.Example Use Cases
-
Partner APIs that omit the
phonefield -
Testing or sandbox campaigns using a consistent test number
-
Campaigns that require uniform tracking numbers for analytics
Getting Started
-
Go to the RTB page.
-
Open the Parameters section.
-
Check Use Predefined Phone Number (skip phone mapping).
-
Enter the Predefined Phone Number in E.164 format.
-
Save the RTB formula – no further mapping changes required.

