New:AI replies grounded in your own documentation.

Integrations

Plugs into the stackyou already run.

Conversations arrive from your widget, your inbox and your own app. Actions go out to the tools your team works in, and to any endpoint you choose.

SlackLinearHubSpotGmailShopify

Connected apps

Act without switching tabs

Connect once per workspace. From then on, the action is a click away in every conversation, filled in from the thread.

Linear

Turn a bug report into an issue without leaving the conversation.

  • Create an issue from a conversation
  • Title and description prefilled from the thread
Connect
OAuth, one click
Who
Owners and admins
Scope
Per workspace
Used from
Any conversation
Create Linear issuefrom #1284
Nothing is sent until you confirm

Directory

Every integration

Apps, channels, knowledge sources and developer tools, in one list. Everything here works today.

Need something else? Tell us which app

For developers

Build on the same brain

The Agent API calls the same pipeline as the widget, so retrieval, handoff, SLAs, triggers and usage all behave the same.

  • Agent API

    REST

    Open conversations and send messages from your own app, IVR or bot. Same AI, same inbox, same handoff.

  • Streaming replies

    SSE

    Add stream: true to get the answer as it's written, with the knowledge-base search as it happens.

  • End-user sessions

    Tokens

    Mint a short-lived token so a browser or mobile client talks to Kuvra while your key stays on your server.

  • Signed webhooks

    Events

    Hear about new messages, status changes and assignments the moment they happen, with a signature to prove it.

aiMode

AI answers until a person replies. The default.

  1. Customer asks

    AI agent
  2. Follows up

    AI agent
  3. After a teammate joins

    MTeammate
bash
curl -X POST "$KUVRA_API/api/v1/agent/conversations" \
  -H "Authorization: Bearer $KUVRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "user": { "externalId": "user_42", "email": "ada@example.com" },
    "subject": "Billing question",
    "channel": "mobile",
    "aiMode": "until_human"
  }'

In production

The fine print, up front

What you can rely on when Kuvra is part of your system: how keys are held, how fast you can call, and how events reach you.

  • Keys scoped to one workspace
  • Signed, replay-safe events
  • Refuses private network targets

API keys

Storage
Only a SHA-256 hash is kept. The secret is shown once.
Scope
One workspace per key, with agent:read and agent:write scopes.
Revocation
Immediate, on every instance.

Rate limits

All calls
1,200 per minute per key.
Generating calls
120 per minute per key.
Over the limit
429 with a Retry-After header.

Webhooks

Signature
HMAC-SHA256 over timestamp and raw body, with a signing secret per endpoint.
Retries
Twice, after 1s and 5s, on network errors, timeouts, 5xx, 408 and 429.
Delivery
At least once, unordered. Deduplicate on the envelope id.
Endpoints
Public HTTPS only. Private and loopback addresses are refused.
Failing endpoints
Disabled after 20 consecutive failures, with the last error shown in Settings.

Integration questions

Slack, Linear, HubSpot, Gmail and Shopify. Each connects once per workspace with OAuth, from Settings → Integrations.

Still curious? Email hello@kuvra.dev

Talk to us

Connecting something bigger? Let's talk.A person reads every message.

Get answers