Masuk

Percakapan

Percakapan adalah utas antara satu kontak dan satu kanal. handler menentukan siapa yang membalas: HUMAN, AI, atau PLUGIN.

Daftar percakapan

Aktivitas terbaru lebih dulu. Saring dengan status, channelId, atau contactId. Halaman dengan limit (maks 100) dan before (tanggal ISO dari item terakhir).

Scopeconversation:read
statusOPEN | PENDING | SNOOZED | RESOLVED
app.docs.v1.conversation.list.params.status
contactIdstring
app.docs.v1.conversation.list.params.contactId
channelIdstring
app.docs.v1.conversation.list.params.channelId
limitnumber
app.docs.v1.conversation.list.params.limit
beforeISO date
app.docs.v1.conversation.list.params.before
GEThttps://www.beamvia.com/api/v1/conversation
Open
curl -X GET "https://www.beamvia.com/api/v1/conversation?status=OPEN&limit=25" \
  -H "Authorization: Bearer YOUR_API_KEY"
200 OK
{
  "status": true,
  "message": "OK",
  "data": {
    "conversations": [
      {
        "id": "6650f0c2a1b2c3d4e5f60700",
        "channelId": "6650f0c2a1b2c3d4e5f60100",
        "contactId": "6650f0c2a1b2c3d4e5f60690",
        "status": "OPEN",
        "priority": "NONE",
        "handler": {
          "type": "HUMAN",
          "memberId": null,
          "divisionId": null
        },
        "tagIds": [],
        "unread": 2,
        "last": {
          "message": {
            "preview": "Is my order shipped?",
            "direction": "INBOUND",
            "at": "2026-10-20T08:00:00.000Z"
          }
        },
        "snooze": {
          "until": null
        },
        "reply": {
          "firstAt": null
        },
        "waiting": {
          "since": "2026-10-20T07:58:00.000Z"
        },
        "createdAt": "2026-10-19T10:00:00.000Z",
        "updatedAt": "2026-10-20T08:00:00.000Z"
      }
    ]
  }
}

Daftar pesan

Terbaru lebih dulu, 50 secara default (limit maks 100). Kirim before (tanggal ISO) untuk memuat pesan lebih lama.

Scopeconversation:read
limitnumber
app.docs.v1.conversation.messages.params.limit
beforeISO date
app.docs.v1.conversation.messages.params.before
GEThttps://www.beamvia.com/api/v1/conversation/:conversationId/message
Latest
curl -X GET "https://www.beamvia.com/api/v1/conversation/6650f0c2a1b2c3d4e5f60700/message?limit=50" \
  -H "Authorization: Bearer YOUR_API_KEY"
200 OK
{
  "status": true,
  "message": "OK",
  "data": {
    "messages": [
      {
        "id": "6650f0c2a1b2c3d4e5f60718",
        "direction": "INBOUND",
        "author": {
          "type": "CONTACT",
          "contactId": "6650f0c2a1b2c3d4e5f60690"
        },
        "content": {
          "type": "TEXT",
          "text": "Is my order shipped?"
        },
        "status": "SENT",
        "sentAt": "2026-10-20T08:00:00.000Z"
      }
    ]
  }
}

Ubah status

Atur OPEN, PENDING, SNOOZED, atau RESOLVED. Menyelesaikan mengembalikan percakapan ke penangan default kanal.

Scopeconversation:write
statusOPEN | PENDING | SNOOZED | RESOLVEDrequired
app.docs.v1.conversation.status.params.status
snooze.untilISO date
app.docs.v1.conversation.status.params.snoozedUntil
POSThttps://www.beamvia.com/api/v1/conversation/:conversationId/status
Resolve
curl -X POST "https://www.beamvia.com/api/v1/conversation/6650f0c2a1b2c3d4e5f60700/status" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "RESOLVED"
  }'
200 OK
{
  "status": true,
  "message": "OK",
  "data": {
    "conversation": {
      "id": "6650f0c2a1b2c3d4e5f60700",
      "channelId": "6650f0c2a1b2c3d4e5f60100",
      "contactId": "6650f0c2a1b2c3d4e5f60690",
      "status": "RESOLVED",
      "priority": "NONE",
      "handler": {
        "type": "HUMAN",
        "memberId": null,
        "divisionId": null
      },
      "tagIds": [],
      "unread": 0,
      "last": {
        "message": {
          "preview": "Is my order shipped?",
          "direction": "INBOUND",
          "at": "2026-10-20T08:00:00.000Z"
        }
      },
      "snooze": {
        "until": null
      },
      "reply": {
        "firstAt": null
      },
      "waiting": {
        "since": "2026-10-20T07:58:00.000Z"
      },
      "createdAt": "2026-10-19T10:00:00.000Z",
      "updatedAt": "2026-10-20T08:00:00.000Z"
    }
  }
}

Ubah penangan

Serahkan percakapan ke tim ({ "type": "HUMAN" }) atau agen AI ({ "type": "AI", "agentId": "…" }), misalnya untuk menjeda AI.

Scopeconversation:write
handlerobjectrequired
app.docs.v1.conversation.handler.params.handler
POSThttps://www.beamvia.com/api/v1/conversation/:conversationId/handler
curl -X POST "https://www.beamvia.com/api/v1/conversation/6650f0c2a1b2c3d4e5f60700/handler" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "handler": {
      "type": "HUMAN",
      "memberId": null
    }
  }'
200 OK
{
  "status": true,
  "message": "OK",
  "data": {
    "conversation": {
      "id": "6650f0c2a1b2c3d4e5f60700",
      "channelId": "6650f0c2a1b2c3d4e5f60100",
      "contactId": "6650f0c2a1b2c3d4e5f60690",
      "status": "OPEN",
      "priority": "NONE",
      "handler": {
        "type": "AI",
        "agentId": "6650f0c2a1b2c3d4e5f60800"
      },
      "tagIds": [],
      "unread": 2,
      "last": {
        "message": {
          "preview": "Is my order shipped?",
          "direction": "INBOUND",
          "at": "2026-10-20T08:00:00.000Z"
        }
      },
      "snooze": {
        "until": null
      },
      "reply": {
        "firstAt": null
      },
      "waiting": {
        "since": "2026-10-20T07:58:00.000Z"
      },
      "createdAt": "2026-10-19T10:00:00.000Z",
      "updatedAt": "2026-10-20T08:00:00.000Z"
    }
  }
}