Send Phonexa leads to Juiced
This guide adds Juiced as a buyer in Phonexa LMS. You build a custom integration in Integration Builder that posts JSON to the Juiced API, with an optional ping stage, then assign it to the buyer's campaign.
Route: Lead platform as buyer. In Phonexa, build a Juiced integration in Integration Builder (or request one through Request New Integration), add Juiced as a buyer, and select the integration on the buyer's campaign.
You need access to Integration Builder or your Phonexa account manager, plus a Juiced source, its bearer token, and the field names from View API Spec.
The gotcha: Juiced answers 201 for sold and unsold leads alike. Set Sold::Sign on response.data.status equal to accepted, not on the HTTP code.
Before you start
- In Phonexa LMS: access to Client Management (Buyer List, Integration Builder and Campaigns). Phonexa says only Global Admin, LMS Admin and Call Logic users can open Integration Builder. If you would rather not build it, the Request New Integration form (Support > Wiki) sends the specs to your account manager (Request New Integration).
- In Juiced: a source, its bearer token, and the endpoint and field names from View API Spec.
- Pick the source type. Use Vendor when a vendor runs the Phonexa account and sends you leads, and Internal when the leads are your own. A ping returns its id in
data.id, and the post carries it asping_id. A vendor source reads its price fromdata.price(ping reference). - Optional partner header. If Juiced gave you a partner ID for partner-attributed traffic, add
X-Partner-Id. Leave it out otherwise.
Step by step
-
Create a source in Juiced and copy a token
Go to Ingest > Sources > New source, set the Source type, turn on Test mode and click Create source. On the Authentication tab click New bearer token > Create token and copy it. Open Overview > More actions (⋯) > View API Spec for the endpoint and field names. See setting up a source.
-
Create the integration
Go to Client Management > Setup > Integration Builder, click Add New Record, keep New as the type, enter a name, select the product and confirm. On the Integration Config tab, click Add new to add a variable for the Juiced token, then Save Integration (Integration Builder).
-
Map the request
On the Request Mapping tab, set Request::Url to
https://usejuiced.com/api/v1/leadsand Method Type to POST. Click Headers (Show) and addAuthorization(Bearer plus your token variable),Content-Type: application/jsonandAccept: application/json. Set Data Type to JSON and add one String node per Juiced key, entering the lead variable in each Value field (Twig is supported). -
Add the ping stage (Ping-Post products)
For a Ping-Post product, the ping request goes to
https://usejuiced.com/api/v1/pingwith the same headers and only the fields marked Required for ping (alwayszip). Every valid ping returns200, so readresponse.data.status. Saveresponse.data.idwith Lead Stash Variables to Save or Optional Lead Variables and send it asping_idin the post body. Phonexa's article does not show a dedicated ping ID field, so check in your account. -
Map the response
On the Response Mapping tab, set Data Type to JSON and fill in the signs from the response parsing table below. Phonexa's examples use dot notation for nested keys, such as
response.price.unitValue; for Juiced, useresponse.data.status == "accepted". -
Check the integration on the Testing tab
On the Testing tab, fill in the required config fields. Click Perform Test under Request Preview to check the request format; Phonexa says no lead is sent. Paste a sample Juiced response with
"status": "accepted"insidedataand click Perform Test under Response Check, then repeat with"rejected". For Ping-Post, the ping response must pass before the post test runs. -
Assign it to the buyer's campaign
Add Juiced at Client Management > Buyer List > Add New Buyer (Buyer List). Then go to Client Management > Setup > Campaigns, click Configure on the campaign, open the Integration tab and select the Juiced integration (campaign integration).
-
Send a test lead and go live
With Test mode on in Juiced, send a lead with zip
00001(accepted) and one with00003(rejected) through the campaign. How you send a test lead depends on your Phonexa setup, so check in your account. In Juiced, open Entries > Incoming logs with the Test only filter, confirm both arrived and that Phonexa marked only the first as sold, then turn off Test mode.
Field mapping
| Juiced key | Phonexa value |
|---|---|
first_name, last_name | The product's name fields, picked in the Value field |
email, phone | Email and phone variables |
zip | Zip code. Always required, on the ping and the post |
state and other list fields | Use Array Mapping if your values differ from the Juiced List of Values |
ping_id | The response.data.id value saved from the ping response |
Custom answers, sub IDs, trusted_form_cert_url | Keys you add on the Juiced source's Fields tab first |
Example request
POST https://usejuiced.com/api/v1/leads
Authorization: Bearer <your token>
Content-Type: application/json
Accept: application/json
{
"ping_id": "ping_01HZX4K2M8",
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"phone": "5555550100",
"zip": "00001"
}
For a direct post product, leave out ping_id. See the leads and ping API references.
Response parsing
| Juiced returns | Meaning | Phonexa Response Mapping |
|---|---|---|
Ping 200: data.status matched | Juiced wants the lead; post with data.id | Accept::Sign response.data.status == "matched"; Accept::Price response.data.price |
Ping: no_match, duplicate, rejected | Juiced does not want the lead | Not accepted; no post |
201 + data.status accepted | Sold or accepted, with its data.price | Sold::Sign response.data.status == "accepted"; Sold::Price response.data.price |
201 + data.status rejected | Received, not sold, price 0 | Reject::Sign response.data.status == "rejected" |
201 + data.status duplicate | Duplicate, price 0 | Reject::Sign also matches "duplicate" |
401 unauthenticated | Missing or invalid credentials | Error. Fix the Authorization header |
422 | error.code (for example validation_failed or ping_mismatch) and the field errors | Error. Error::Reason response.error.code. Fix the field and resend |
The data.status values are Juiced's default mapping. Confirm them on your source's API spec.
TrustedForm and Jornaya
If your Phonexa leads carry a TrustedForm certificate URL or a Jornaya LeadiD, add a field such as trusted_form_cert_url or jornaya_leadid to the Juiced lead category or source, mark it Deliverable if your buyers ask for it, and add a JSON node for it in Request Mapping. See passing TrustedForm and Jornaya to Juiced.
Troubleshooting
- Unsold leads are marked sold. Sold::Sign checks the HTTP code or is too broad. Use
response.data.status == "accepted". - Unauthorized (401). Check the space after
Bearerand that no line break was pasted. A new Juiced token expires the old one 24 hours later; Phonexa warns that changes to Integration Config affect running integrations, so update affected campaigns. - 422 on the post after a ping. Read
error.code:ping_mismatchmeans the post does not match its ping. Check thatping_idcarriesresponse.data.idfrom the ping and the post repeats the same ping fields. - List values rejected. A List of Values field got a value Juiced does not list. Add an Array Mapping; values are case-sensitive.
- Fields missing in Juiced. A key does not match a Juiced field Title. Open the log's post inspector to see the payload as received.
More fixes in webhook troubleshooting.
Frequently asked
Can Phonexa send leads to Juiced?
Yes. Build a Juiced integration in Phonexa’s Integration Builder that posts JSON to the Juiced API with a bearer token header, add Juiced as a buyer, and select the integration on the buyer’s campaign.
Can Phonexa ping Juiced before posting?
Yes, for Ping-Post products. Phonexa pings the Juiced v1 ping endpoint and, when data.status is matched, posts the full lead with ping_id set to data.id.
What if I do not want to build the integration myself?
Use the Request New Integration form under Support, Wiki in Phonexa and choose Ping Post or Direct Post. Give the Juiced URLs, headers, a sample request and a sample response, and it goes to your account manager.
How does Phonexa know a lead sold to Juiced?
Juiced returns HTTP 201 with data.status. Set Sold::Sign to response.data.status equal to accepted and Sold::Price to response.data.price. Rejected and duplicate statuses mean not sold, with price 0.
How do I pass a TrustedForm certificate from Phonexa to Juiced?
Add a field such as trusted_form_cert_url to the Juiced lead category or source and add a JSON node for it in the integration’s Request Mapping.
Route Phonexa traffic to the right buyer
Juiced routes each lead to your buyers by bids, caps and criteria, and moves unsold leads to your marketplace.
Scale your lead business, without limits
Juiced puts you in full control of your leads, routing, and revenue, so you can automate, optimize, and grow without chaos.
