company logo

Help center

Go to K3X
All collectionsAI AgentsWebhook-triggered agents

Webhook-triggered agents

Give any tool a URL that starts an agent. Copy it from the Webhook tab, post JSON, and refer to payload fields by name.

Every agent has its own secure webhook URL. Open the agent, click the Webhook tab, copy the URL, and any tool that can send an HTTP POST with JSON can start a run: Make, Zapier, n8n, Calendly, a website form, a script.

Set it up

  1. Create the agent (or open an existing one). In the goal, describe what should happen when data arrives, and name the fields you expect: "When a demo booking arrives by webhook, find or create the company by company_website, add the person from invitee_name and invitee_email, create a deal in Demo Booked with the event_start_time in the Close Date field, and assign the owner."

  2. Add Webhook as a trigger.

  3. Open the Webhook tab. Copy the URL. It looks like https://api.k3x.ai/webhooks/agents/<id>.

  4. Paste it into the sending tool as a POST action with a JSON body and Content-Type: application/json.

  5. Send a test. Within a few seconds a run appears on the agent's Activity tab.

  6. Click Activate if the agent is still a Draft.

The Webhook column in the Agents list shows which agents have the webhook switched on.

How the agent reads the payload

The agent reads payload fields by name. Whatever keys you send are available to the goal and steps under those exact names. Keep keys flat, lowercase and consistent. A payload like this:

{"source": "calendly", "invitee_name": "Jane Doe", "invitee_email": "[email protected]", "company_website": "acmeroofing.com", "event_start_time": "2026-10-09T15:00:00Z", "notes": "Wants pricing for 3 locations"}

lets you write steps such as "Create the person from invitee_name and invitee_email" and "Put notes into the Booking Notes field on the deal." If a field is sometimes missing, say what to do: "If company_website is empty, create the company from the email domain."

Common senders

  • Make: an HTTP module, method POST, body type Raw, content type JSON, map the fields from the previous module.

  • Zapier: Webhooks by Zapier, action Custom Request or POST, payload type JSON.

  • n8n: an HTTP Request node, POST, JSON body with an expression per field.

  • Calendly: route the booking through Make, Zapier or n8n and forward the invitee fields, or send Calendly's own webhook if your plan supports it. The field names in the payload are whatever that tool sends, so check a real test payload before writing the goal.

  • Your own code: any HTTPS client. The endpoint accepts POST with a JSON body.

Keep the URL private

The URL is the credential. Anyone who has it can start runs and spend your credits. Do not share it in public channels or commit it to a public repository. If it leaks, contact support to rotate it.

Sending results back out

To push results to another tool, add a step: "Send a webhook to https://hook.example.com/k3x with the company name, deal stage and a one-line summary." The agent POSTs a JSON payload when it reaches that step. The Deliveries tab lists every outbound delivery with its status, so you can confirm the receiving end accepted it.

If nothing happens

  • No run in Activity: the request did not arrive. Check URL, method POST, JSON body, and that the sending scenario or Zap is on.

  • Run failed: the request arrived but a step could not finish. Open the run; the error names the step. Usually a field name in the goal does not match a key in the payload.

Related

  • Webhooks in K3X: the basics

  • Connect K3X with Make.com

  • Connect K3X with Zapier

  • Fix an agent that does not run

Did this answer your question?
😞
😐
😁