Video walkthrough: Watch the full campaign setup walkthrough.
Use this guide to create a simple static call campaign in Moja AI. You will create the required publisher, buyer, target, routing plan, and campaign, then connect them so calls can route correctly and payouts can be tracked.
Before you start
You should know:
The publisher/source that will send calls
The buyer that will receive calls
The destination phone number or SIP endpoint for the buyer
Buyer payout amount and conversion rule
Publisher payout amount and payout rule
Whether the campaign needs call recording, TCPA scrubbing, caps, duplicate rules, webhooks, or QAI
Tip: For a basic static campaign, create records in this order: Publisher → Buyer → Target → Routing Plan → Campaign → Tracking Number + Publisher payout.
1. Create the publisher record
In Moja AI, go to Publishers.
Click Create New.
Enter the publisher name.
Use the source of calls for the campaign.
If the publisher is internal, use a clear name such as Internal Publisher.
Review optional settings, including:
Call recording permissions
Access for later review
Save the publisher record.
2. Create the buyer record
Go to Buyers in the left navigation.
Click Create New.
Enter the buyer name, such as Test Buyer.
Complete any relevant optional fields:
Phone number
Email
Revenue limits
Active/inactive status
Call recording permissions
Click Create to save the buyer.
3. Create the target
Go to Targets / RTBs.
Select Targets.
Click Create New.
Enter a target name, such as First Target.
Choose the buyer you created earlier.
Select the target type:
Number Target for a phone number destination
SIP Target for SIP routing
If using a number target, enter the destination phone number.
4. Configure target payout and routing rules
Set the buyer payout amount based on your agreement.
Choose the payout condition, such as:
Call level
Length connected
Enter the conversion threshold, such as 90 seconds.
Review concurrency limits if needed.
Confirm the timezone.
Confirm the target status is active.
Decide whether call recording is allowed for this target.
Save the target.
5. Set target availability and duplicate rules
Decide whether the target should be:
Always Open, or
Available only during specific hours
If using scheduled availability:
Enable the desired days
Add a start and end time
Copy the schedule to other days if needed
Configure duplicate call handling if the buyer does not pay for repeat conversions.
If needed, enable duplicate settings and define the rule by:
Caller
Target
Use advanced filtering only if you need to filter by state, publisher, or ZIP code.
6. Review optional target integrations and caps
If required, configure Agent Availability Check by entering the API endpoint.
Choose the correct request type:
GET
POST
Define the expected response condition, such as availability greater than zero.
Use Advanced CAP settings if you need to limit:
Connected calls
Converted calls
Raw calls
Revenue
Save the target after confirming all optional settings.
7. Create the routing plan
Go to Routing Plan in the left navigation.
Click Create New.
Name the routing plan, such as Test Routing Plan.
In the route section, select the target you created earlier.
Confirm the target appears as open/available.
Save the routing plan.
This routing plan will be used as the campaign’s destination logic.
8. Create the campaign and assign the routing plan
Go to Campaigns.
Click Create New.
Enter the campaign name.
Confirm or set the timezone.
Set Execution Mode to Routing Plan.
Select the routing plan you created in the previous step.
Confirm the routing configuration points to the correct target path.
9. Add a tracking number to the campaign
In the Number Group section, click Add Number.
If no number is available, click Create New under Number.
Search for a number by:
ZIP code
City
State
800 number search
Select an available number.
Click Purchase Selected.
Confirm the purchase when prompted.
Refresh the page if needed.
Select the newly purchased number from the dropdown.
Note: If a purchased number does not appear after refresh, pause and verify provisioning before continuing.
10. Assign the publisher and set publisher payout
Select the publisher associated with the tracking number.
Enter the publisher payout amount, such as $15.
Confirm the payout logic aligns with your margin expectations.
Choose the payout condition, such as Call Converted.
This ensures the publisher is paid only when the buyer-side conversion condition is met.
11. Configure campaign-level options
Confirm the campaign status is set to Active.
Decide whether call recording should be enabled.
If compliance scrubbing is required, configure the TCPA scrubbing provider.
Choose the default Moja scrubbing option or enter a third-party API key if applicable.
Use Test Connection to validate any external scrubbing integration.
12. Review duplicate routing, caps, webhooks, and QAI
Before saving the campaign, review optional advanced settings:
Duplicate call routing — use only if your buyer agreement requires rerouting or special handling for repeat callers.
Duplicate pair routing — use if you need to prevent repeat payouts within a defined period.
Publisher caps — use if you need to limit volume or revenue by publisher.
Incoming or outgoing webhooks — configure only if your workflow requires external event delivery.
QAI — if using QAI, add a disposition and define qualifying questions for call analysis.
Save the campaign after all required and optional settings are complete.
13. Create and verify the campaign
Click Create to save the campaign.
Open the campaign after it is created.
Confirm the following are correct:
Campaign name
Timezone
Execution mode
Routing plan
Target
Tracking number
Publisher assignment
Publisher payout
Active status
Recording setting
Duplicate settings
Use the open-in-new-window icons to inspect the routing plan and target details if needed.
14. Test the campaign and review reporting
Place a test call to the campaign tracking number.
Go to the reporting page.
Locate the test call record.
Review the call log for:
Campaign name
Publisher attribution
Routing plan used
Buyer result
Call length
Caller ID
Tracking number
Payout status
Expand the call live details to inspect the call flow and confirm routing behavior.
Verify whether a payout was created based on the conversion rules.
Cautionary notes
Confirm publisher and buyer payout terms before creating targets or campaigns.
Duplicate call settings can prevent payouts even when calls still route successfully.
Call recording settings may be overridden by higher-level buyer or publisher settings.
Compliance scrubbing may incur additional cost; verify pricing before enabling it.
QAI disposition tracking requires a QAI subscription.
If using external APIs for availability checks or scrubbing, validate the connection before going live.
Tips for efficiency
Create the publisher and buyer records first so they are ready when building the target.
Use consistent naming conventions, such as Test Publisher 1, Test Buyer, and Test Routing Plan, for easier troubleshooting.
Keep the first campaign simple by using one target and one routing plan before adding advanced logic.
Use the copy schedule feature to quickly apply the same availability window across multiple days.
Test the campaign immediately after creation to confirm routing, attribution, and payout behavior before scaling.
Final verification checklist
After setup is complete, verify:
Publisher record exists and is active.
Buyer record exists and is active.
Target is assigned to the correct buyer.
Target payout and conversion threshold are correct.
Target availability is open during expected call hours.
Routing plan points to the correct target.
Campaign execution mode is set to Routing Plan.
Campaign is assigned to the correct routing plan.
Tracking number is attached to the campaign.
Publisher is assigned to the number group.
Publisher payout and payout condition are correct.
Campaign status is Active.
Call recording, TCPA scrubbing, duplicate routing, caps, webhooks, and QAI settings are configured only if needed.
The test call appears in reporting with the expected routing, attribution, and payout status.
Source Loom
