| Advertiser | Úvěrová pokladna |
| Country | CZ |
| Segment | Finance |
| Product | Loan |
| Integration type | Lead generation |
| Flows | Ping → Post |
Use global fields and skip mapping entirely
Every prebuilt integration is already mapped to PalDock’s global fields. Populate them once in your lead structure, whether leads arrive through the API or form, and the same fields feed every integration you run.
Integration overview
This prebuilt PalDock integration connects your lead flow directly to the advertiser. It handles field mapping, request delivery and response processing, so you can start sending leads without building the integration from scratch.
The integration uses PalDock’s global fields and returns standardized outcomes for reporting and routing, while preserving advertiser response details for troubleshooting.
Blueprint

{
"nodes": [
{
"id": "1-1",
"type": "startNode",
"position": {
"x": -560,
"y": -160
},
"data": {
"formData": {
"active": true,
"title": "",
"subtitle": "",
"flow": "ping",
"beType": "integration"
}
}
},
{
"id": "2-1",
"type": "startNode",
"position": {
"x": -560,
"y": 200
},
"data": {
"formData": {
"active": true,
"title": "",
"subtitle": "",
"flow": "post",
"beType": "integration"
}
}
},
{
"id": "1-2",
"type": "modifyFieldNode",
"position": {
"x": -400,
"y": -160
},
"data": {
"formData": {
"active": true,
"title": "Transform Data",
"subtitle": "",
"data": [
{
"fieldName": "{housing_type}",
"fields": [
{
"source": "{data_home_status}",
"operator": "regex_match",
"value": "^(OwnHouse|InRent|Hostel|ByClosePerson|CooperativeHousing)$",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "{data_home_status}"
},
{
"source": "{data_home_status}",
"operator": "equals",
"value": "owner",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "OwnHouse"
},
{
"source": "{data_home_status}",
"operator": "equals",
"value": "tenant",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "InRent"
},
{
"source": "{data_home_status}",
"operator": "equals",
"value": "family",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "ByClosePerson"
},
{
"source": "{data_home_status}",
"operator": "equals",
"value": "employ-benefits",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "Hostel"
}
]
},
{
"fieldName": "{income_source}",
"fields": [
{
"source": "{data_income_type}",
"operator": "regex_match",
"value": "^(FullEmployment|DisabilityPension|OwnAccountWorker|Pension|MaternityLeave|AgreementOnWorkActivity|Other)$",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "{data_income_type}"
},
{
"source": "{data_income_type}",
"operator": "equals",
"value": "full-time",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "FullEmployment"
},
{
"source": "{data_income_type}",
"operator": "equals",
"value": "self-employed",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "OwnAccountWorker"
},
{
"source": "{data_income_type}",
"operator": "equals",
"value": "parental",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "MaternityLeave"
},
{
"source": "{data_income_type}",
"operator": "equals",
"value": "pension",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "Pension"
},
{
"source": "{data_income_type}",
"operator": "equals",
"value": "unemployed",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "Other"
},
{
"source": "{data_income_type}",
"operator": "equals",
"value": "other",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "Other"
}
]
},
{
"fieldName": "{is_osvc}",
"fields": [
{
"source": "{data_income_type}",
"operator": "always",
"value": "",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "0"
},
{
"source": "{data_income_type}",
"operator": "equals",
"value": "self-employed",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "1"
},
{
"source": "{data_income_type}",
"operator": "equals",
"value": "OwnAccountWorker",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "1"
}
]
}
]
}
}
},
{
"id": "1-3",
"type": "httpNode",
"position": {
"x": -240,
"y": -160
},
"data": {
"formData": {
"active": true,
"title": "Auth",
"subtitle": "",
"method": "POST",
"endpoint": "{endpoint}/api/leads/login-with-api-key",
"timeout": 30,
"format": "application/json",
"parser": "json",
"notsend": null,
"convert_data": null,
"headers": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"query": [],
"body": [
{
"key": "apiKey",
"value": "{token}"
}
],
"signature": null,
"insecure": null
}
}
},
{
"id": "1-4",
"type": "setNode",
"position": {
"x": -80,
"y": -160
},
"data": {
"formData": {
"active": true,
"title": "Store response",
"subtitle": "",
"fields": [
{
"key": "{access_token}",
"value": "{parsedBody.result.token}"
}
]
}
}
},
{
"id": "1-5",
"type": "httpNode",
"position": {
"x": 80,
"y": -160
},
"data": {
"formData": {
"active": true,
"title": "Ping",
"subtitle": "",
"method": "POST",
"endpoint": "{endpoint}/api/leads/pre-check-sync/{data_nin}",
"timeout": 30,
"format": "application/json",
"parser": "json",
"notsend": null,
"convert_data": null,
"headers": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {access_token}"
}
],
"query": [],
"body": [],
"signature": null,
"insecure": null
}
}
},
{
"id": "1-6",
"type": "setNode",
"position": {
"x": 400,
"y": -220
},
"data": {
"formData": {
"active": true,
"title": "Store response",
"subtitle": "",
"fields": [
{
"key": "{lead_precheck_id}",
"value": "{parsedBody.result.id}"
}
]
}
}
},
{
"id": "1-8",
"type": "endNode",
"position": {
"x": 560,
"y": -220
},
"data": {
"formData": {
"active": true,
"title": "Success",
"subtitle": "",
"success": "success"
}
}
},
{
"id": "1-7",
"type": "modifyFieldNode",
"position": {
"x": 400,
"y": -80
},
"data": {
"formData": {
"active": true,
"title": "Reject reason",
"subtitle": "",
"data": [
{
"fieldName": "{reason}",
"fields": [
{
"source": "{parsedBody.result.accepted}",
"operator": "always",
"value": "",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "Unspecified"
},
{
"source": "{parsedBody.result.errorMessage}",
"operator": "regex_match",
"value": "duplic",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "Duplicate"
},
{
"source": "{parsedBody.result.errorMessage}",
"operator": "regex_match",
"value": "(age|věk)",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "Age"
}
]
},
{
"fieldName": "{reason_detail}",
"fields": [
{
"source": "{parsedBody.result.accepted}",
"operator": "always",
"value": "",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "pre-check declined"
},
{
"source": "{parsedBody.result.errorMessage}",
"operator": "is_not_empty",
"value": "",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "{parsedBody.result.errorMessage}"
},
{
"source": "{parsedBody.error.message}",
"operator": "is_not_empty",
"value": "",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "{parsedBody.error.message}"
}
]
}
]
}
}
},
{
"id": "1-9",
"type": "endNode",
"position": {
"x": 560,
"y": -80
},
"data": {
"formData": {
"active": true,
"title": "Rejected",
"subtitle": "",
"success": "failed"
}
}
},
{
"id": "2-2",
"type": "httpNode",
"position": {
"x": -400,
"y": 200
},
"data": {
"formData": {
"active": true,
"title": "Post",
"subtitle": "",
"method": "POST",
"endpoint": "{endpoint}/api/leads/import",
"timeout": 30,
"format": "application/json",
"parser": "json",
"notsend": null,
"convert_data": null,
"headers": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {access_token}"
}
],
"query": [],
"body": [
{
"key": "leads.0.expenses",
"value": "toInt({data_expenses})"
},
{
"key": "leads.0.incomeNet",
"value": "toInt({data_monthly_income})"
},
{
"key": "leads.0.ipAddress",
"value": "{ip_address}"
},
{
"key": "leads.0.externalId",
"value": "{eid}"
},
{
"key": "leads.0.loanAmount",
"value": "toInt({data_requested_amount})"
},
{
"key": "leads.0.housingType",
"value": "{housing_type}"
},
{
"key": "leads.0.employerName",
"value": "{data_employer}"
},
{
"key": "leads.0.incomeSource",
"value": "{income_source}"
},
{
"key": "leads.0.userLastName",
"value": "{data_last_name}"
},
{
"key": "leads.0.daysToDueDate",
"value": "toInt({data_period})"
},
{
"key": "leads.0.isLoanForOSVC",
"value": "toBool({is_osvc})"
},
{
"key": "leads.0.propertyOwner",
"value": "{data_own_property}"
},
{
"key": "leads.0.userFirstName",
"value": "{data_first_name}"
},
{
"key": "leads.0.userPhoneNumber",
"value": "{data_cell_phone}"
},
{
"key": "leads.0.userEmailAddress",
"value": "{data_email}"
},
{
"key": "leads.0.bankAccountNumber",
"value": "{data_account_number}"
},
{
"key": "leads.0.bankAccountBankCode",
"value": "{data_bank_code}"
},
{
"key": "leads.0.permanentAddress.city",
"value": "{data_city}"
},
{
"key": "leads.0.permanentAddress.street",
"value": " {data_street} {data_house_number}"
},
{
"key": "leads.0.permanentAddress.zipCode",
"value": "{data_zip}"
},
{
"key": "leads.0.identificationDocumentNumber",
"value": "{data_identity_card_number}"
},
{
"key": "leads.0.personalIdentificationNumber",
"value": "{data_nin}"
},
{
"key": "leads.0.ownAccountWorkerIdentificationNumber",
"value": "{data_company_number_imported}"
}
],
"signature": null,
"insecure": null
}
}
},
{
"id": "2-3",
"type": "setNode",
"position": {
"x": -240,
"y": 140
},
"data": {
"formData": {
"active": true,
"title": "Store response",
"subtitle": "",
"fields": [
{
"key": "{external_id}",
"value": "{parsedBody.result.leadIds.0.id}"
},
{
"key": "{redirect_url}",
"value": "{parsedBody.result.leadIds.0.redirectUrl}"
}
]
}
}
},
{
"id": "2-5",
"type": "endNode",
"position": {
"x": -80,
"y": 140
},
"data": {
"formData": {
"active": true,
"title": "Success",
"subtitle": "",
"success": "success"
}
}
},
{
"id": "2-4",
"type": "modifyFieldNode",
"position": {
"x": -240,
"y": 280
},
"data": {
"formData": {
"active": true,
"title": "Reject reason",
"subtitle": "",
"data": [
{
"fieldName": "{reason}",
"fields": [
{
"source": "{parsedBody.result.leadIds.0.leadStatus}",
"operator": "always",
"value": "",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "Unspecified"
},
{
"source": "{parsedBody.result.leadIds.0.leadStatus}",
"operator": "equals",
"value": "2",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "Not Eligible"
},
{
"source": "{parsedBody.result.errors.0}",
"operator": "regex_match",
"value": "Duplicate record",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "Duplicate"
},
{
"source": "{parsedBody.result.errors.0}",
"operator": "regex_match",
"value": "(Invalid code|invalid format|not valid format|is required|max length)",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "Invalid Data"
},
{
"source": "{parsedBody.result.errors.0}",
"operator": "regex_match",
"value": "nedostatečného příjmu",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "Low Income"
},
{
"source": "{parsedBody.result.errors.0}",
"operator": "regex_match",
"value": "mimo definované hodiny",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "Not Eligible"
},
{
"source": "{parsedBody.result.errors.0}",
"operator": "regex_match",
"value": "Půjčky pro fyzické osoby",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "Product Mismatch"
}
]
},
{
"fieldName": "{reason_detail}",
"fields": [
{
"source": "{parsedBody.result.leadIds.0.leadStatus}",
"operator": "always",
"value": "",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "leadStatus={parsedBody.result.leadIds.0.leadStatus}"
},
{
"source": "{parsedBody.result.errors.0}",
"operator": "is_not_empty",
"value": "",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "{parsedBody.result.errors.0}"
},
{
"source": "{parsedBody.error.message}",
"operator": "is_not_empty",
"value": "",
"value2": "",
"modification": "replace",
"pattern": "",
"output": "{parsedBody.error.message}"
}
]
}
]
}
}
},
{
"id": "2-6",
"type": "endNode",
"position": {
"x": -80,
"y": 280
},
"data": {
"formData": {
"active": true,
"title": "Rejected",
"subtitle": "",
"success": "failed"
}
}
}
],
"edges": [
{
"id": "edge-1-1-1-2",
"source": "1-1",
"target": "1-2",
"type": "customEdge",
"data": {
"active": true,
"title": "",
"subtitle": "",
"conditions": []
}
},
{
"id": "edge-2-1-2-2",
"source": "2-1",
"target": "2-2",
"type": "customEdge",
"data": {
"active": true,
"title": "",
"subtitle": "",
"conditions": []
}
},
{
"id": "edge-1-2-1-3",
"source": "1-2",
"target": "1-3",
"type": "customEdge",
"data": {
"active": true,
"title": "",
"subtitle": "",
"conditions": []
}
},
{
"id": "edge-1-3-1-4",
"source": "1-3",
"target": "1-4",
"type": "customEdge",
"data": {
"active": true,
"title": "",
"subtitle": "",
"conditions": [
{
"value": "{parsedBody.result.isOk}",
"operator": "equals",
"output": "true",
"output2": ""
},
{
"value": "{parsedBody.result.token}",
"operator": "is_not_empty",
"output": "",
"output2": ""
}
]
}
},
{
"id": "edge-1-4-1-5",
"source": "1-4",
"target": "1-5",
"type": "customEdge",
"data": {
"active": true,
"title": "",
"subtitle": "",
"conditions": []
}
},
{
"id": "edge-1-5-1-6",
"source": "1-5",
"target": "1-6",
"type": "customEdge",
"data": {
"active": true,
"title": "",
"subtitle": "",
"conditions": [
{
"value": "{parsedBody.result.accepted}",
"operator": "equals",
"output": "true",
"output2": ""
}
]
}
},
{
"id": "edge-1-5-1-7",
"source": "1-5",
"target": "1-7",
"type": "customEdge",
"data": {
"active": true,
"title": "",
"subtitle": "",
"conditions": [
{
"value": "{parsedBody.result.accepted}",
"operator": "not_equals",
"output": "true",
"output2": ""
},
{
"value": "{status}",
"operator": "is_less_than",
"output": "400",
"output2": ""
}
]
}
},
{
"id": "edge-1-6-1-8",
"source": "1-6",
"target": "1-8",
"type": "customEdge",
"data": {
"active": true,
"title": "",
"subtitle": "",
"conditions": []
}
},
{
"id": "edge-1-7-1-9",
"source": "1-7",
"target": "1-9",
"type": "customEdge",
"data": {
"active": true,
"title": "",
"subtitle": "",
"conditions": []
}
},
{
"id": "edge-2-2-2-3",
"source": "2-2",
"target": "2-3",
"type": "customEdge",
"data": {
"active": true,
"title": "",
"subtitle": "",
"conditions": [
{
"value": "{parsedBody.result.leadIds.0.leadStatus}",
"operator": "equals",
"output": "1",
"output2": ""
}
]
}
},
{
"id": "edge-2-2-2-4",
"source": "2-2",
"target": "2-4",
"type": "customEdge",
"data": {
"active": true,
"title": "",
"subtitle": "",
"conditions": [
{
"value": "{parsedBody.result.leadIds.0.leadStatus}",
"operator": "not_equals",
"output": "1",
"output2": ""
}
]
}
},
{
"id": "edge-2-3-2-5",
"source": "2-3",
"target": "2-5",
"type": "customEdge",
"data": {
"active": true,
"title": "",
"subtitle": "",
"conditions": []
}
},
{
"id": "edge-2-4-2-6",
"source": "2-4",
"target": "2-6",
"type": "customEdge",
"data": {
"active": true,
"title": "",
"subtitle": "",
"conditions": []
}
}
]
}How it works
- Copy the blueprint and paste it in your PalDock workspace– Create a new integration in your workspace and paste the blueprint. Every field arrives prefilled.
- Enter your credentials – Paste the secrets you received from advertiser and set your Pingtree
- Send a test lead – Verify the response, then switch the channel live.
FAQ
Do I need my own contract with this advertiser?
Yes. PalDock delivers leads on your behalf, so the commercial agreement and API credentials come from the advertiser directly.
What happens to rejected leads?
The advertiser returns its decision in the delivery response. PalDock reads it and moves rejected leads to the next buyer in your pingtree automatically, so a rejection does not need to end the lead’s journey.
Can I change the field mapping?
Yes, but we do not recommend it. Blueprints are already mapped to PalDock’s global fields. If you use local fields, you need to remap each integration separately.
How long does setup take?
Few clicks, if you already have credentials. The blueprint arrives prefilled and mapped to PalDock’s global fields, so if your lead structure uses them, there is nothing to map. If you use local fields, you map them once.
What the integration does
Start sending leads in 3 clicks
Copy the prebuilt blueprint, add your credentials and start sending leads. No coding, no integration work.
Real-time lead delivery
Send leads to the advertiser instantly as they arrive, without exports, batches or manual processing.
No field mapping headache
PalDock global fields work across all prebuilt integrations. Map your lead data once and reuse it everywhere.
Know exactly why leads fail
Get standardized rejection reasons for reporting and advertiser’s response for the full context and troubleshooting.
API & integration details
Bearer-token API. An API key is exchanged for a token, and the token authorises everything after it. The pre-check is synchronous and returns a plain yes or no; the import posts the lead.
The responses are wrapped: the payload always sits under result, and the wrapper carries its own success and error alongside the HTTP status.
What will be needed from advertiser
| Key | Purpose |
|---|---|
endpoint | Base API URL. |
token | API key exchanged for the bearer token. |
Flows
Ping, authenticate, then POST /api/leads/pre-check-sync/{national_id}. Returns result.accepted.
Post, POST /api/leads/import with the lead. Returns a leadStatus code and, when accepted, a redirect URL.
Authentication runs once per flow. The token stays valid for the calls that follow it, so a second Auth node before every request is duplication, not safety. The Post flow does authenticate again rather than reading a token the Ping stored, a token has a lifetime and the Post may run much later.
Calls
Auth
POST {endpoint}/api/leads/login-with-api-key
Content-Type: application/json
format: application/json
{ "apiKey": "{token}" }
Response:
{ "result": { "isOk": true, "token": "…", "errorMessage": null },
"success": true, "error": null, "targetUrl": null, "unAuthorizedRequest": false, "__abp": true }
The token is at result.token. Reading it from anywhere else leaves the header empty, and every call after it comes back 401, a whole integration silently returning nothing but authentication failures, with no error anywhere in the run.
Ping and Post
POST {endpoint}/api/leads/pre-check-sync/{g_id_national_number}
POST {endpoint}/api/leads/import
Authorization: Bearer {custom_access_token}
Content-Type: application/json
format: application/json
The advertiser restricts access by IP address; the addresses have to be registered with them first.
Request fields
The pre-check takes the national ID in the path and no body.
The import sends an array with a single lead, so every field is prefixed leads.0.:
| Field | Required | Value |
|---|---|---|
leads.0.userFirstName | yes | {g_name_first} |
leads.0.userLastName | yes | {g_name_last} |
leads.0.personalIdentificationNumber | yes | {g_id_national_number} |
leads.0.identificationDocumentNumber | yes | {g_id_card_number} |
leads.0.userEmailAddress | yes | {g_email} |
leads.0.userPhoneNumber | yes | {g_phone} |
leads.0.permanentAddress.street | yes | {g_address_street} {g_address_street_number} |
leads.0.permanentAddress.city | yes | {g_address_city} |
leads.0.permanentAddress.zipCode | yes | {g_address_zip} |
leads.0.loanAmount | yes | toInt({g_amount}) |
leads.0.daysToDueDate | yes | toInt({g_period}) |
leads.0.incomeNet | yes | toInt({g_fin_income}) |
leads.0.expenses | yes | toInt({g_fin_expenses}) |
leads.0.incomeSource | yes | {g_fin_type}, see enums |
leads.0.housingType | yes | {g_home_type}, see enums |
leads.0.employerName | no | {g_employer_name} |
leads.0.isLoanForOSVC | yes | toBool(...), true for the self-employed |
leads.0.propertyOwner | no | {g_asset_status} |
leads.0.bankAccountNumber | yes | {g_bank_account_number} |
leads.0.bankAccountBankCode | yes | {g_bank_account_code} |
leads.0.ownAccountWorkerIdentificationNumber | self-employed | {g_company_registration} |
leads.0.externalId | yes | {send_id} |
leads.0.ipAddress | yes | {ip_address} |
Compose the street and number together in the HTTP field. That is not a transformation and does not need a Modify step.
Numeric fields are typed, so convert inline with toInt(...) and toBool(...). One conversion, never nested.
Enums
incomeSource: FullEmployment, OwnAccountWorker, Pension, DisabilityPension, MaternityLeave, AgreementOnWorkActivity, Other.
housingType: OwnHouse, InRent, Hostel, ByClosePerson, CooperativeHousing.
isLoanForOSVC is derived rather than collected: it is true exactly when the income source is self-employment.
Outcomes
leadIds is an array even though only one lead was sent, so its values sit at result.leadIds.0..... Without the index the reference does not resolve.
| Recognised by | Meaning | Reject reason | Frequency |
|---|---|---|---|
result.accepted: true | Pre-check passed | , | common |
result.leadIds.0.leadStatus: 1 | Accepted for processing | , | common |
result.accepted: false | Pre-check refused, no reason given | Unspecified | common |
result.leadIds.0.leadStatus: 2 | Failed the knockout lead scoring | Not Eligible | common |
result.errors.0 ~ Duplicate record | Already on file | Duplicate | occasional |
result.errors.0 ~ `Invalid code | invalid format | is required | max length` |
result.errors.0 ~ nedostatečného příjmu | Income below threshold | Low Income | occasional |
result.errors.0 ~ mimo definované hodiny | Outside accepted hours | Outside Hours | rare |
result.errors.0 ~ Půjčky pro fyzické osoby | Wrong product for this applicant | Product Mismatch | rare |
result.errorMessage ~ duplic | Already on file | Duplicate | rare |
result.errorMessage ~ age, věk | Below the age limit | Age | rare |
leadStatus is a numeric code with its own meaning, and only some of it belongs in the run:
| Code | Meaning | Where it shows up |
|---|---|---|
0 | Unknown, should not occur | , |
1 | Accepted after lead scoring | at import |
2 | Refused by knockout lead scoring | at import |
3 | Refused during later processing | postback |
4 | Cancelled during later processing | postback |
5 | Converted and commissionable | postback |
Codes 3, 4 and 5 arrive later by postback and never appear in the response. They belong to the Tracking API, not to the integration. Branch only on 1 and 2.
leadStatus: 2 is the one place in this integration where Not Eligible is right: the advertiser has named a knockout criterion the lead failed. A bare accepted: false at the pre-check names nothing and is Unspecified.
Reject reasons come from the standard list. See Reject reason for what each one means and when to use it.
Branching
Auth succeeded:
{parsedBody.result.isOk} equals true
{parsedBody.result.token} is not empty
Ping, accepted:
{parsedBody.result.accepted} equals true
Ping, refused, paired with a status test so that only the advertiser’s own answers reach it:
{parsedBody.result.accepted} not equals true
{status} is less than 400
Post, accepted:
{parsedBody.result.leadIds.0.leadStatus} equals 1
Post, refused:
{parsedBody.result.leadIds.0.leadStatus} not equals 1
Stored values
| Parameter | Source |
|---|---|
{custom_access_token} | {parsedBody.result.token} from Auth |
{custom_precheck_id} | {parsedBody.result.id} from the pre-check |
{external_id} | {parsedBody.result.leadIds.0.id} from the import |
{redirect_url} | {parsedBody.result.leadIds.0.redirectUrl} from the import |
The access token is a working value with a lifetime, so it belongs in a custom_ parameter, not in {external_id} and not written back into the secrets table.
Advertiser APIs change without warning
When they do, leads stop being delivered, often before anyone notices. PalDock gives you delivery logs and alerts so you can catch it early. With Managed Integrations, we watch the connection and fix it for you.
