Skip to content
DevelopersTesting & examples
Documentation menu Open Integrations

Ship with confidence

Testing & examples

Start with synthetic payloads. Test the receiver and bridge contract before connecting a workflow to real customer calls.

Download the test materials

These are examples and fixtures, not an SDK or a hosted sandbox. The JSON contains synthetic caller details only. The receiver uses Node.js built-ins and needs no package install.

Run the local receiver

Save the two example files together. Rename the receiver to receiver-example.mjs and the fixtures to contract-fixtures.json if your browser added a prefix. Start it from that folder:

Shell
node receiver-example.mjs

The fixture binds only to 127.0.0.1:8787 and stores deduplication ids only in memory. It has no sender authentication, database or production retry handling. It is intentionally unsuitable as a public deployment. A Pongg live subscription cannot deliver to this local address.

Node.js
node --input-type=module -e 'import fs from "node:fs"; const f=JSON.parse(fs.readFileSync("contract-fixtures.json","utf8")); const r=await fetch("http://127.0.0.1:8787/pongg",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f.events.lead)}); console.log(r.status,await r.text());'

The first request returns {"accepted":true,"duplicate":false}. Repeating the same event returns duplicate:true. Restarting the process clears that memory; your production receiver needs its own durable deduplication.

Exercise a bridge you own

The fixtures include the actual six request/receipt shapes from the reviewed bridge OpenAPI document. Set your own test bridge URL, test credential and real test-account tenant id; do not paste production secrets into the examples.

cURL
export BRIDGE_BASE_URL='https://your-test-bridge.example.com/pongg/v1'
export BRIDGE_API_KEY='REPLACE_WITH_YOUR_TEST_BRIDGE_KEY'
curl --request POST "$BRIDGE_BASE_URL/capabilities" \
  --header "Authorization: Bearer $BRIDGE_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"tenant_id":"YOUR_TEST_PONGG_TENANT_ID","contract_version":"pongg.crm.v1"}'

Bridge acceptance checks

CheckExpected result
Credential belongs to another tenantReject before reading or writing that tenant’s data
Existing phone/email identityReturn the existing contact id and is_new:false
Same write key twiceOne CRM record; the original durable receipt both times
Timeout after a committed writeA retry returns the original receipt, without another record
No calendar openingsslots:[], not fabricated business-hour slots
Occupied slot409; no shifted or unconfirmed success receipt
Successful appointmentExact start/end; valid timezone; durable id; slot removed from the same availability source
Daylight saving / overnight hoursCorrect offset-aware instants and customer-local timezone
401 / 429 / 5xx / malformed JSONCorrect failure handling, bounded response and no duplicate writes

Verify the full path

Connect the test bridge in Integrations, inspect the read-only capability result, and arrange a labelled setup lead or test call with your Success Team. Check the intended route’s Send to your CRM setting and provider record. Pongg’s testing/sandbox modes may guard live provider writes; never change an account mode just to make a test appear successful. Do not treat a mock/pilot result as a production delivery.

Search documentation