Skip to main content
Back to webhook channels Send messages to your agent over HTTP and receive the agent’s reply as a callback to your own server. Artemis accepts the message, acknowledges it immediately, then posts the completed response to your callback URL as a separate request. Use this channel for server-to-server integrations where your application owns the user interface and can’t hold a connection open while the agent works. If your application needs the reply on the same connection, use the API channel instead.

How the exchange works

The channel splits one conversational turn into two HTTP exchanges. Your application sends the message and receives an acknowledgement, then Artemis calls your server back with the agent’s answer. The 202 Accepted response confirms acceptance only. Treat the callback as the business response, and don’t resend a message while Artemis is still processing it.

Before you begin

Complete the following before you create the connection. You need an active deployment, a Platform API key, and an HTTPS endpoint that receives the callback.
1

Deploy the agent

Deploy the agent to the target environment and confirm which deployment handles incoming messages. Use a deployment rather than a draft version, and tell your integration team which agent answers first.
2

Create a Platform API key

Go to Deployments -> API Keys -> Platform keys and create a key for this integration.Assign only the scope that authorizes HTTP Async message submission. Don’t grant deployment administration, project write, or API key administration scopes. Record the exact scope label your tenant shows, because the deployed platform version determines those labels.Store the key in your secret manager, and define rotation, expiry, ownership, and emergency revocation before you go to production. Never put the key in the request body or in source code.
3

Prepare your callback endpoint

Stand up an HTTPS endpoint that accepts a JSON POST, returns 200 OK quickly, and processes each message_id once. Artemis calls this endpoint with the agent response, so allow traffic from the Artemis environment you’re integrating with.

Create the channel connection in Artemis

Each connection creates a webhook subscription that holds your callback URL, the events you want, and its own identifier. Open Deployments -> Channels -> WEBHOOK -> Webhooks (HTTP Async) and expand Setup instructions to see the current guidance for your environment.
1

Add the webhook subscription

Select + New and supply the following.
2

Copy the subscription ID

Open the connection and go to the Overview tab. Copy the Source ID from the Connection Summary. Your application sends this value as subscription_id.Take the project identifier from the Artemis URL while the project is open, in the form /projects/{project_id}/deployments.
3

Send a test message

Go to the Testing tab, enter a message, and select Send Test Message. Open the Activity tab to confirm the delivery reached your endpoint.

Send a message

Your application posts to a fixed platform route and names the target integration in the request body. Replace {host} with the Artemis host for your environment, for example agents-dev.kore.ai or agents-staging.kore.ai.
The project_id and subscription_id route the request. The X-API-Key header authenticates it.

Request fields

The body carries the routing identifiers, the message text, and your conversation key. The request doesn’t take a session_id field. A unique session_key on its own creates the session.

Acknowledgement

Artemis replies immediately to confirm it queued the message. This response isn’t the agent’s answer.
Save the message_id, the returned session_key, the request timestamp, project_id, and subscription_id with your conversation record. The returned session_key carries an Artemis namespace. Store it exactly as Artemis returns it, and don’t reconstruct or alter it.

Callback

When the agent finishes, Artemis posts the response to your callback URL.
Authenticate the callback, validate the payload with your schema, persist the event, and return 200 OK promptly. Make your endpoint idempotent, because Artemis can deliver the same event more than once.

Callback fields

The callback repeats the identifiers from the acknowledgement and adds the agent output with its provenance. Artemis doesn’t return intent or conv_status. If your application needs either one, agree it as an extension inside metadata.

Handle errors

Your application and your callback endpoint can each encounter failures. Handle each category on its own path instead of resending a message blindly.

Request errors

Only resend a message after a failed request. Don’t resend just because the callback hasn’t arrived yet — the 202 Accepted response means Artemis already queued it.

Callback delivery

Artemis can call your callback URL more than once for the same event, and long-running or suspended tool executions can delay a callback beyond what a synchronous exchange would take. Design your endpoint to do the following.
  • Validate the payload against the callback fields table before you persist it, and reject anything that doesn’t match.
  • Process each message_id once, and treat a repeated message_id as already handled rather than as a new event.
  • Return 200 OK as soon as you’ve accepted the event, and do the rest of your processing after you respond.

Correlate requests and continue conversations

Three identifiers carry the exchange, and each one does a different job. Mixing them up splits conversations and duplicates responses. Persist project_id, subscription_id, session_key, and session_id with each conversation record. Correlate on message_id and session_key only, never on intent or a metadata value.

Secure the callback

Artemis authenticates your outbound request with the X-API-Key header. Your server owns the security of the return path, so decide how you’ll authenticate the callback before you go to production. Serve the callback endpoint over HTTPS and reject unauthenticated requests. HMAC signing or mTLS suits high-assurance integrations, and bearer token authentication works where that matches your approved configuration. Agree the mechanism with your Artemis delivery team, then test it end to end. Async tool callbacks follow a different rule. Artemis documents a per-suspension HMAC-SHA256 signature in the X-Callback-Signature header, which applies when an external system calls the Artemis suspension callback. It doesn’t apply when Artemis calls your webhook.

Manage the channel connection

Opening a connection from Deployments -> Channels -> WEBHOOK -> Webhooks (HTTP Async) shows five tabs. The controls beside the connection name pause or delete the subscription.
The Connection Summary shows these fields.Setup Instructions shows the Callback URL currently registered for the subscription, with a control that copies it.