Skip to main content
This webhook asks your system for information before an inbound voice conversation. Configure Voice agent → Advanced → Inbound context → Custom webhook, then publish.
1

Receive the lookup

ContactShip posts the incoming phone numbers, agent and organization IDs, and contact context when available.
2

Look up your records

Use the contact ID or phone number to find relevant information in your system. An incoming caller may not yet have a matching contact.
3

Return a JSON object

Return the data the agent needs as named keys. Reference your keys in instructions, for example {{balance}}.

Request and response

The request is not wrapped in data. contact can be null; its properties may also be null. There is no guaranteed call ID in this pre-call request. Use the available identifiers to look up context, then correlate the final result using the post-call contract.

Response requirements

object
Return a JSON object, not a bare string or array. Its keys become dynamic variables. Return a compact object containing only the information the agent needs. Oversized responses can be ignored; keep serialized JSON within 8,000 characters.
Custom keys can override matching native context variables. Reserved variables contact_data, current_day_time, and timezone are managed by the platform. Do not use them as custom response keys. The webhook has its own URL and works independently of the native-context switch. Its configured timeout and the overall context budget limit how long the call waits. On a timeout or invalid response, the call can continue without these extra variables. Write instructions that handle missing information.
This is a request-response lookup. Acknowledge it with the actual context body; returning an empty success response and fetching data later cannot provide context for this lookup.

Find the configuration and final result

Inbound-context settings

Choose native context, webhook URL, timeout, and instructions.

Final call webhook

Receive transcript and analysis after the call.