Get a key
In the vybeflow console: Pengaturan → API Key. Choose what the key may do and when it expires. The key is shown once.
Connect an AI assistant
Paste one URL. The hosted MCP server covers every domain and needs no install — the key's permissions decide what works.
https://vybeflow.vyber.id/mcp
claude mcp add --transport http vybeflow https://vybeflow.vyber.id/mcp \
--header "Authorization: Bearer vf_live_..."
Works in any client that lets you set a header: Claude Code, Cursor, the OpenAI and Claude APIs. Hosted surfaces that cannot (claude.ai, ChatGPT custom apps) need OAuth, which is not available yet.
Try asking it
Once a server is connected, these are things you can just type. Each needs the permission shown — tick it when you mint the key, or the assistant will be refused mid-answer.
- How many tickets are still open, and which has waited longest for a reply?
- Reply to ticket T-1042: tell them the parcel ships tomorrow morning.
- Find the contact on 6281234567890 and show me their ticket history.
- Which campaign had the lowest open rate this month?
- Draft a campaign called "End of Month Promo" for WhatsApp. Do not send it.
- Send the "End of Month Promo" campaign now.
- Which products have fewer than 10 in stock?
- How much AI quota do I have left, and when does my plan renew?
- What are our customer service hours?
Call it directly
curl -H "x-api-key: vf_live_..." \
https://vybeflow.vyber.id/api/campaign/campaigns
Machine-readable
- /openapi.json
- /openapi/contact.json
- /openapi/campaign.json
- /openapi/inbox.json
- /openapi/channel.json
- /openapi/product.json
- /openapi/billing.json
- /openapi/tenant.json
- /openapi/knowledge.json
- /openapi/memory.json
- /llms.txt · /llms-full.txt
- /.well-known/mcp.json
Endpoints
contact 6
| Endpoint | permission | risk |
|---|---|---|
GET /api/user/usersDaftar kontak pelanggan milik tenant. |
contact.read |
safe |
POST /api/user/usersTambah satu kontak baru. |
contact.manage |
confirm |
PUT /api/user/users/:idUbah satu kontak. |
contact.manage |
confirm |
DELETE /api/user/users/:idHapus satu kontak. Tidak bisa dibatalkan. |
contact.delete |
destructive |
POST /api/user/users/importImpor banyak kontak sekaligus. |
contact.manage |
confirm |
GET /api/user/users/campaign/:campaignIDKontak yang termasuk dalam satu kampanye. |
contact.read |
safe |
campaign 7
| Endpoint | permission | risk |
|---|---|---|
GET /api/campaign/campaignsDaftar kampanye beserta status dan jumlah penerima. |
campaign.read |
safe |
GET /api/campaign/campaigns/analyticsRingkasan performa kampanye: terkirim, dibuka, gagal. |
campaign.read |
safe |
POST /api/campaign/campaignsBuat kampanye baru. Membuat TIDAK mengirim — pakai campaign.send. |
campaign.manage |
confirm |
POST /api/campaign/campaigns/:id/sendMULAI mengirim kampanye ke seluruh penerimanya. |
campaign.send |
destructive |
POST /api/campaign/campaigns/:id/cancelHentikan kampanye yang sedang berjalan. Pesan yang sudah terkirim tetap terkirim. |
campaign.control |
confirm |
GET /api/campaign/campaigns/:id/progressKemajuan pengiriman satu kampanye. |
campaign.read |
safe |
DELETE /api/campaign/campaigns/:idHapus kampanye beserta statistiknya. |
campaign.manage |
destructive |
inbox 7
| Endpoint | permission | risk |
|---|---|---|
GET /api/ai/v1/ticketsDaftar tiket percakapan. |
inbox.read |
safe |
GET /api/ai/v1/tickets/statsJumlah tiket per channel dan per status. |
inbox.read |
safe |
GET /api/ai/v1/tickets/:ticketIDSatu tiket beserta riwayat pesannya. |
inbox.read |
safe |
GET /api/ai/v1/tickets/status/:statusTiket dengan satu status tertentu. |
inbox.read |
safe |
POST /api/ai/v1/ticketsBuat tiket baru. |
inbox.manage |
confirm |
POST /api/ai/v1/tickets/:ticketID/replyKirim balasan ke pelanggan pada satu tiket. |
inbox.reply |
destructive |
POST /api/ai/v1/tickets/:ticketID/closeTutup tiket. |
inbox.manage |
confirm |
channel 5
| Endpoint | permission | risk |
|---|---|---|
GET /api/channel/v1/channelsDaftar channel yang terhubung beserta statusnya. |
channel.read |
safe |
GET /api/channel/v1/channels/:channelIdDetail satu channel. |
channel.read |
safe |
GET /api/channel/v1/whatsapp/statusStatus sambungan WhatsApp tenant. |
channel.read |
safe |
GET /api/channel/v1/whatsapp/cloud/templatesTemplate WhatsApp Cloud yang sudah disetujui Meta. |
channel.read |
safe |
POST /api/channel/v1/notification/send/whatsappKirim satu pesan WhatsApp ke satu nomor. |
inbox.reply |
destructive |
product 5
| Endpoint | permission | risk |
|---|---|---|
GET /api/product/v1/productsDaftar produk milik tenant. |
product.read |
safe |
GET /api/product/v1/products/:productIDDetail satu produk. |
product.read |
safe |
POST /api/product/v1/productsTambah produk baru. |
product.manage |
confirm |
PUT /api/product/v1/products/:productIDUbah satu produk. |
product.manage |
confirm |
DELETE /api/product/v1/products/:productIDHapus satu produk beserta gambarnya. |
product.manage |
destructive |
billing 5
| Endpoint | permission | risk |
|---|---|---|
GET /api/payment/v1/payment/historyRiwayat transaksi pembayaran tenant. |
billing.read |
safe |
GET /api/payment/v1/payment/history/:orderIDSatu transaksi berdasarkan orderID. |
billing.read |
safe |
GET /api/user/v1/dashboard/subscriptionPaket langganan yang sedang aktif. |
billing.read |
safe |
GET /api/ai/v1/quotaSisa kuota AI dan pesan untuk tenant ini. |
quota.read |
safe |
GET /api/ai/v1/usageRiwayat pemakaian kuota. |
quota.read |
safe |
tenant 2
| Endpoint | permission | risk |
|---|---|---|
GET /api/user/v1/dashboard/settingProfil perusahaan: nama, alamat, kontak, jam kerja. |
tenant.setting.read |
safe |
GET /api/user/v1/dashboard/tenant/listTenant yang dapat diakses pemegang kredensial ini. |
tenant.read |
safe |
knowledge 7
| Endpoint | permission | risk |
|---|---|---|
POST /api/ai-knowledge/v1/knowledge/searchCari pengetahuan tenant dari berkas dan memori. Jawabannya berupa blok konteks siap pakai untuk model.Di MCP, gunakan tool search_knowledge. |
ai.config.read |
safe |
GET /api/ai-knowledge/v1/knowledge/sourcesDaftar pengetahuan tenant: berkas dan memori, dengan status pemrosesan dan keyakinan OCR. Beri kind=memory untuk memori saja. |
ai.config.read |
safe |
GET /api/ai-knowledge/v1/knowledge/sources/:sourceIDDetail satu sumber pengetahuan, termasuk ringkasan per halaman (metode baca dan keyakinan OCR). |
ai.config.read |
safe |
GET /api/ai-knowledge/v1/knowledge/sources/:sourceID/pagesTeks hasil baca satu berkas, per halaman (maks. 50 halaman per panggilan). |
ai.config.read |
safe |
GET /api/ai-knowledge/v1/knowledge/statusKesiapan layanan pengetahuan: indeks pencarian, parser/OCR, embedder, antrean. |
ai.config.read |
safe |
POST /api/ai-knowledge/v1/knowledge/sources/:sourceID/reprocessProses ulang satu sumber (baca, potong, vektorkan lagi). Versi lama tetap dicari sampai versi baru siap. |
ai.config.manage |
confirm |
DELETE /api/ai-knowledge/v1/knowledge/sources/:sourceIDHapus satu sumber pengetahuan beserta vektornya (dan berkasnya, kecuali dokumen ONT Pilot). |
ai.config.manage |
destructive |
memory 2
| Endpoint | permission | risk |
|---|---|---|
POST /api/ai-knowledge/v1/knowledge/searchCari memori tenant tanpa menyertakan berkas. Jawabannya berupa blok konteks siap pakai untuk model.Di MCP, gunakan tool search_memory. |
ai.config.read |
safe |
POST /api/ai-knowledge/v1/knowledge/memoriesSimpan teks sebagai memori tenant (jam operasional, kebijakan, jawaban baku). Teks dijadikan vektor dan bisa ditemukan oleh memory.search, knowledge.search, dan agen AI tenant.Di MCP ini adalah tool add_memory, bukan lewat write_api, karena tool itu juga bisa menunggu sampai memorinya benar-benar siap dicari. |
ai.config.manage |
confirm |