ClonifyDevelopersOpen panel

Getting started

  • Authentication
  • Errors
  • Pagination
  • Rate limits
  • Webhooks
  • For AI agents
  • MCP server

API reference

  • Student learning activity6
  • External API deliveries6
  • Chat with the clone1
  • Contacts & tags5
  • Academy access4
  • Conversations4
  • Product catalogue11
  • External sales2
  • Knowledge12
  • Multimedia4
  • Clones (versions in the API)3
  • Meetings & bookings3
  • Webinars6
  • Account & usage1
Clonify

Conversations

GET/api/v1/conversations

List conversations

Your clone's real conversations, with full messages. Tests you run from the panel with "Try your clone" never show up here or in webhooks. Built for incremental sync: fetch only what's new with updated_since.

Query parameters

limitinteger 1..100
starting_afterinteger

Cursor: returns conversations with id greater than this.

updated_sinceISO 8601

Only conversations with activity since that date (an old one with a new message counts).

visitor_emailstring

Only that identified visitor's conversations (one person's history).

channel_idinteger

Only that surface (web, WhatsApp, Instagram…).

review_statusstring

pending = only the ones nobody has gone through yet; reviewed = only the ones already handled.Values: pending · reviewed

bash
curl "https://www.clonify.com/api/v1/conversations" \
  -H "Authorization: Bearer clk_live_…"
json
{
  "object": "list",
  "data": [{
    "object": "conversation",
    "id": 90,
    "visitor": { "email": "ana@example.com", "name": "Ana Pérez" },
    "channel_id": 15,
    "title": null,
    "first_page_url": null,
    "review_status": "pending",
    "message_count": 4,
    "started_at": "2026-05-15T09:36:48.918Z",
    "last_message_at": "2026-05-15T09:37:16.909Z",
    "messages": [
      { "role": "user", "content": "hola, ¿me ayudas?", "created_at": "…" },
      { "role": "assistant", "content": "¡Claro! Cuéntame…", "created_at": "…" }
    ]
  }],
  "has_more": true,
  "next_starting_after": 95
}
GET/api/v1/conversations/{id}

Get a conversation

One conversation with its messages, by id.

Path parameters

idintegerrequired
bash
curl "https://www.clonify.com/api/v1/conversations/1" \
  -H "Authorization: Bearer clk_live_…"
POST/api/v1/conversations/reviewed

Mark conversations as reviewed

Record which conversations you have already processed, so you don't pull them again. It is the other half of review_status=pending when listing: fetch what's pending, handle it, mark it. An id that no longer exists doesn't sink the batch: it comes back in not_found.

Write permission

Body (JSON)

conversation_idsinteger[] (1..100)required

Ids to mark, 1 to 100 per request.

reviewedboolean

true (the default) marks them reviewed; false sends them back to pending.

bash
curl -X POST "https://www.clonify.com/api/v1/conversations/reviewed" \
  -H "Authorization: Bearer clk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"conversation_ids":1}'
json
{
  "object": "conversations_reviewed",
  "review_status": "reviewed",
  "updated": [90, 91],
  "unchanged": [88],
  "not_found": [4001]
}
DELETE/api/v1/visitors/{anon_id}

Delete a visitor and their whole history

Deletes the ENTIRE visitor by their anonymous id: the visitor record and, by cascade, their conversations, messages, feedback, course progress, attachments and the escalation cases they opened (the notices that reached your inbox, transcript included). This is an end user's right to erasure executed from your own system, built for the embedded clone with your own anonymous identity (the aid you pass to the panel). Returns a receipt with what was deleted and when. Idempotent: a second delete of the same anon_id answers 404 not_found. Not to be confused with DELETE /contacts/{id}, which deletes the CRM record and keeps the conversations.

Delete permission

Path parameters

anon_idstringrequired

The visitor's anonymous id: the aid you pass to the embedded panel, or the one the widget generated. Unique per account. 8 to 128 characters (letters, digits, dot, hyphen, underscore, colon or at sign).

bash
curl -X DELETE "https://www.clonify.com/api/v1/visitors/1" \
  -H "Authorization: Bearer clk_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
json
{
  "object": "visitor_erasure",
  "anon_id": "3f9c0a1b2c3d4e5f6a7b8c9d0e1f2a3b",
  "visitor_id": 8123,
  "deleted": true,
  "conversations_deleted": 3,
  "messages_deleted": 41,
  "support_cases_deleted": 1,
  "erased_at": "2026-09-09T15:02:11.000Z"
}