01 / 14
What you will build
When an agent submits a disposition, VICIdial can send a small request to Zapier. Zapier receives the fields and creates a row in a practice table. A disposition is that agent-selected outcome, such as NI for not interested; simply hanging up is a different step.
Use Dispo Call URL for this exercise. In the inspected VICIdial build, the agent page starts an internal request and the web server then fetches the destination URL with HTTP GET. A POST from the agent browser to VICIdial is not a JSON POST to Zapier.
Our local check executed the extracted PHP substitutions and HTTP fetch against a loopback receiver. It confirmed the GET and four substituted fields. Zapier account setup, saving the field and the final live event remain reader-run checks.
You should seeThe path is: agent disposition → VICIdial web server → Catch Hook → practice table.
- Use a separate practice Zap and table.
- Send only fictional identifiers first.
- Keep a copy of the current campaign setting before changing it.
Sources for this section
- VICIdial Call URL featuresVICIdial · Checked November 8, 2026
- Trigger Zap workflows from webhooksZapier · Checked November 8, 2026
02 / 14
1. Choose the correct VICIdial event
These similarly named settings solve different jobs. This walkthrough follows an agent disposition; it does not capture every dropped or unanswered attempt.
You should seeYou have selected a disposition event and know which campaign or inbound in-group owns it.
Sources for this section
- VICIdial Call URL featuresVICIdial · Checked November 8, 2026
03 / 14
2. Prepare the accounts and a practice table
A functioning VICIdial agent setup is required for the final live check. You can prepare the hook and test fields before making a call. Use an isolated test campaign and fictional lead records when you reach the native-event step.
Check your Zapier account includes Webhooks by Zapier. The current trigger documentation lists Professional, Team and Enterprise; it excludes Free. Tables has its own availability and record limits. Check your account before following the editor steps.
- Open Zapier Tables and create a blank table named VICIdial webhook practice.
- Add text fields named source, test_mode, lead_id, campaign, uniqueid and dispo. Keeping identifiers as text preserves their exact spelling.
- Leave this table available for the action step. Use it only for synthetic test data.
You should seeAn empty practice table has six named text fields.
Complete the VICIdial beginner path if the agent cannot finish a practice call
Sources for this section
- Trigger Zap workflows from webhooksZapier · Checked November 8, 2026
- Create tables and store dataZapier · Checked November 8, 2026
04 / 14
3. Create the Zapier Catch Hook
VICIdial pushes a request to a URL. Catch Hook receives that request. Retrieve Poll is used when Zapier repeatedly fetches another service; that is a different direction of communication.
Treat the generated hook URL as private. It can allow someone to trigger this Zap, and VICIdial URL logs may retain it. Keep this practice Zap limited to the practice table.
- Create a new Zap and give it a practice name.
- For the trigger, choose Webhooks by Zapier and the Catch Hook event.
- Continue through setup. Leave Pick Off A Child Key blank for the flat query fields used here.
- Open the Test tab and copy its webhook URL. Keep the editor open while sending the first test.
You should seeYou have one private Catch Hook URL copied from the correct test Zap.
Sources for this section
- Trigger Zap workflows from webhooksZapier · Checked November 8, 2026
05 / 14
4. Send a synthetic event before touching VICIdial
This optional command needs curl in a Bash terminal. On macOS, start bash first; on Windows, use a Bash environment such as WSL. Paste the private URL only at the hidden prompt. The command is a reader-run example; we did not send it to a Zapier account.
It uses GET query parameters, matching the inspected native transport. It sends no caller name, telephone number, recording or call notes. In Zapier, select Test trigger and inspect the recent record for the exact values below.
- Before you use it
- Use your separate test Zap. Its only intended downstream action is the practice-table record.
( read -rsp 'Paste your private test Catch Hook URL: ' ZAPIER_HOOK_URL printf '\n' curl --get --silent --show-error --fail --max-time 15 \ --data-urlencode 'source=vicidial' \ --data-urlencode 'test_mode=1' \ --data-urlencode 'lead_id=12345' \ --data-urlencode 'campaign=LAB_DEMO' \ --data-urlencode 'uniqueid=1700000000.123' \ --data-urlencode 'dispo=NI' \ "$ZAPIER_HOOK_URL")This example has no recorded result here. Follow its preparation, expected result and stop conditions before using it.
- Success looks like
- Zapier shows lead_id 12345, campaign LAB_DEMO, uniqueid 1700000000.123 and dispo NI in a test record.
- Stop if
- A connection error or non-200 response needs investigation. A 200 response without the matching Zapier record is not accepted.
You should seeA matching trigger record proves that this hook received the synthetic request. It does not prove that VICIdial sent a real event.
Sources for this section
- Trigger Zap workflows from webhooksZapier · Checked November 8, 2026
- Troubleshoot webhooks in ZapierZapier · Checked November 8, 2026
06 / 14
5. Map the fields into the practice table
Use a table record as a visible result. This avoids involving email, messaging or a customer CRM while you learn the event path.
- Add a Zapier Tables action and choose Create Record. Select VICIdial webhook practice.
- For each table field, select the incoming trigger field with the same name: source, test_mode, lead_id, campaign, uniqueid and dispo.
- Test the action. Open the table and compare the created row with the synthetic values, not just the action success message.
- After checking the mapping, publish or turn on this practice Zap using the control your editor provides. Resend one fresh sample and check its Zap run and table row.
You should seeThe active practice workflow has both a matching Zap run and a visible table record.
Sources for this section
- Create tables and store dataZapier · Checked November 8, 2026
- Set up your Zap actionZapier · Checked November 8, 2026
- Zapier Tables actionsZapier · Checked November 8, 2026
07 / 14
6. Build the VICIdial Dispo Call URL
The leading VAR and the --A--field--B-- tokens are VICIdial syntax. VICIdial replaces the tokens with values from the event. Copy the entire generated line, including VAR, into the campaign setting.
The optional builder below formats text only. It accepts the plain hook URL copied from Zapier and adds the four documented placeholders plus two static labels. If you edit the hook, rebuild before copying. Keep the generated URL private.
The test_mode=1 label does not stop a Zap from running other actions. Use the separate test Zap and practice table described above.
- Before you use it
- Replace only the example hook base with your actual test Catch Hook URL. Keep the four placeholder names and delimiters intact.
VARhttps://hooks.zapier.com/hooks/catch/YOUR_ACCOUNT/YOUR_HOOK_KEY/?source=vicidial&test_mode=1&lead_id=--A--lead_id--B--&campaign=--A--campaign--B--&uniqueid=--A--uniqueid--B--&dispo=--A--dispo--B--This sample is a template or reading aid, not a terminal command. There is no output to show.
- Success looks like
- The line starts VARhttps://hooks.zapier.com/hooks/catch/ and contains the four --A--…--B-- tokens.
- Stop if
- Do not save YOUR_ACCOUNT or YOUR_HOOK_KEY. A formatted URL is not proof that the hook exists or that the native field accepts its length.
You should seeThe complete private line is ready for your isolated test campaign.
Sources for this section
- VICIdial Call URL featuresVICIdial · Checked November 8, 2026
08 / 14
7. Save it in the campaign field
In VICIdial administration, open Campaigns from the main menu and select the test campaign. The retained native capture came from the campaign edit page. If your version hides advanced fields, use its Detail View control if offered, then find Dispo Call URL.
The screenshot shows the genuine field captured on November 6. It was blank. It establishes the field label, not a saved Zapier configuration or successful delivery.
Inbound calls can use an in-group setting. Before diagnosing a campaign mismatch, identify the actual in-group and its own Dispo Call URL. This basic example uses one campaign URL; ALT configurations and status/list filters need a separate review.
- Record the existing Dispo Call URL privately so you can restore it.
- Paste the complete generated line into Dispo Call URL for the isolated test campaign.
- Submit the settings and reopen the same campaign. Confirm the complete value was retained.
- If the form rejects or truncates it, inspect that installed field and its limits. Do not assume one maximum length applies to every VICIdial build.
The real campaign field
Open to enlargeCapture details
The original is blank; no Zapier endpoint was saved or tested in this capture. Display framing trims empty horizontal space; the full original remains available.You should seeThe intended test campaign retains the correct full URL. Saving it still does not prove a request was sent.
Sources for this section
- VICIdial Call URL featuresVICIdial · Checked November 8, 2026
09 / 14
8. Verify an actual agent disposition
Use one call permitted by your own test plan. This guide did not place a call or alter the demo. Start Call URL’s manual-dial exclusion must not be assumed for every Dispo workflow: the inspected disposition path can include manual calls, but campaign/in-group overrides and the actual agent workflow still matter.
A completed hangup is not enough. The agent must submit the disposition that your workflow is configured to send. In the inspected path, the agent page initiates RUNurls internally and the web server fetches the destination.
- Use an approved synthetic lead in the intended test campaign and complete the permitted call.
- Select an allowed test disposition, such as NI if it exists in that campaign, and submit it.
- In Zapier, find the new run. Compare its actual lead_id, campaign, uniqueid and dispo with the event you just completed.
- Open the practice table and find the corresponding row. A new event should be distinguishable from the fixed synthetic sample by its actual identifiers.
You should seeThe native event, Zap run and table row agree. That is the live acceptance check for your setup; our local fixture cannot replace it.
10 / 14
9. Use four separate acceptance checks
Record the result at each boundary. This prevents an early success message from hiding a failure later in the workflow.
You should seeYou can name the last boundary that passed and the next one that failed.
11 / 14
10. Fix the failure at its source
Start with the smallest test that failed. Preserve the prior setting and inspect the matching event before resending it.
Sources for this section
- Troubleshoot webhooks in ZapierZapier · Checked November 8, 2026
- Webhook response behavior when a Zap is offZapier · Checked November 8, 2026
- Webhooks by Zapier rate limitsZapier · Checked November 8, 2026
12 / 14
11. Handle repeat events before adding real data
A lead can receive more than one call, so lead_id alone is not a safe key for suppressing every later event. Decide which business event you mean, then choose and test a key using the actual call identifiers and outcome. Transfers, corrections and repeated dispositions need explicit handling.
This practice action creates a row. Repeating a test may create another row. It is not a production guarantee of exactly-once processing. If delivery and recovery matter, design a receiver or relay that acknowledges, records and retries events deliberately.
Start with the six small fields here. Caller names, telephone numbers, free-text notes and recording URLs are unnecessary for this exercise. The inspected source encodes some fields differently, so arbitrary text cannot be assumed safe to append to a URL.
You should seeYou have a documented rule for repeated events and have tested any additional fields before enabling a production action.
13 / 14
12. Pause and restore the practice setup
Changing a hook or turning off a Zap does not erase the campaign setting that can still send to it. Keep the two sides coordinated.
- Restore the previous Dispo Call URL, or clear only the practice value if it was originally blank. Submit and reopen the campaign to verify.
- Turn off the practice Zap when the exercise is finished. Keep the test evidence and table until you have reviewed the results.
- If a Zap is transferred to another owner, check its hook URL and update the sender as required. Treat a changed hook as a configuration change to retest.
You should seeThe test sender and Zap are in their intended final states, with the previous configuration preserved.
Sources for this section
- Trigger Zap workflows from webhooksZapier · Checked November 8, 2026
- Webhook response behavior when a Zap is offZapier · Checked November 8, 2026
14 / 14
What we checked locally
On November 8, a PHP 8.5.4 fixture read a hash-verified copy of vdc_db_query.php, extracted only the selected substitution operations and file(URL), and sent to a receiver bound to 127.0.0.1. It did not bootstrap VICIdial or access a database.
The receiver observed GET /ok with lead_id 12345, campaign LAB_DEMO, uniqueid 1700000000.123 and dispo NI. A separate local HTTP 503 made the extracted file(URL) return false. Our fixture guard rejected an unresolved placeholder before sending; that guard is not a claim about native VICIdial validation.
The inspected agent source identifies version 2.14-728c, build 261101-1945. The vdc_db_query.php source SHA-256 is recorded in the receipt. These observations establish the extracted transport operations for that source, not native scheduling, retry behavior or a Zapier account result.
You should seeThe proof and its limits are available separately from the reader-run live setup.
Checks and sources
What was checked
- The official VICIdial Call URL document and current Zapier help were researched before writing. The retained native source was pinned by version, build and SHA-256.
- A real loopback HTTP receiver observed the extracted PHP operations sending GET with the expected four synthetic fields. The failure branch observed file(URL) return false on a local 503 response.
- No authenticated Zapier editor, published Zap action or live VICIdial-to-Zapier disposition was captured for this guide. The user selected documented steps and local verification; complete the live acceptance checks in your own test setup.
Primary references
Sources
- VICIdial Call URL featuresVICIdial · accessed November 8, 2026
- Trigger Zap workflows from webhooksZapier · accessed November 8, 2026
- Create tables and store dataZapier · accessed November 8, 2026
- Set up your Zap actionZapier · accessed November 8, 2026
- Troubleshoot webhooks in ZapierZapier · accessed November 8, 2026
- Webhook response behavior when a Zap is offZapier · accessed November 8, 2026
- Webhooks by Zapier rate limitsZapier · accessed November 8, 2026
- Zapier Tables actionsZapier · accessed November 8, 2026
