Skip to Content

Webhooks

Webhooks allow you to build reactive agents by subscribing to events that happen within your memory store. When an event occurs, we send an HTTP POST request to your configured destination URL.

Configuration

You can configure webhooks via the Dashboard.

  1. Name: A descriptive name for your webhook.
  2. Destination URL: The HTTPS endpoint where we should send the payload.
  3. Events: Select which events you want to subscribe to.

Events

We currently support the following events:

  • memory.created: Triggered when a new memory is successfully ingested.
  • memory.updated: Triggered when an existing memory is modified.
  • memory.deleted: Triggered when a memory is removed.

Payload Structure

All webhook payloads follow a standard format:

{ "id": "evt_123456789", "type": "memory.created", "created_at": 1717171717, "data": { "memoryId": "mem_abc123", "agentId": "agent-007", "text": "User likes pizza.", "metadata": { ... } } }

Security

To ensure that requests are coming from us, we sign every webhook request.

Verifying Signatures

We include a x-webhook-signature header in every request. This is an HMAC SHA-256 hash of the request body, signed with your Signing Secret.

You can find your Signing Secret in the Dashboard.

// Example verification in Node.js import crypto from 'crypto'; const signature = req.headers['x-webhook-signature']; const body = JSON.stringify(req.body); const expectedSignature = crypto .createHmac('sha256', process.env.WEBHOOK_SECRET) .update(body) .digest('hex'); if (signature === expectedSignature) { // Request is valid }
Last updated on