Upfirst
resmiUpfirst adalah resepsionis telepon AI untuk bisnis kecil. Tinjau transkrip panggilan, lalu perbaiki sapaan, pengetahuan, dan aturan transfer dari klien AI Anda.
Apa yang bisa Anda lakukan dengan Upfirst MCP?
-
Audit kinerja resepsionis — Minta asisten Anda untuk meninjau panggilan minggu lalu dan membandingkannya dengan pengetahuan agen untuk mengidentifikasi celah serta menyarankan entri pelatihan baru.
-
Konfigurasi resepsionis dari deskripsi — Minta asisten Anda mengubah deskripsi bahasa sehari-hari tentang bisnis dan penanganan panggilan Anda menjadi pengaturan lengkap dengan salam, pengetahuan, aturan transfer, dan jadwal.
-
Perbaiki panggilan yang kurang optimal — Arahkan asisten Anda ke transkrip panggilan tertentu dan jelaskan hasil yang diinginkan; asisten akan menyarankan edit pengetahuan yang tepat untuk meningkatkan panggilan di masa depan.
-
Kelola pengaturan agen — Instruksikan asisten Anda untuk membaca atau memperbarui salam resepsionis, pesan perpisahan, nada suara, kecepatan bicara, atau preferensi pemblokiran panggilan.
-
Buat dan edit konten pelatihan — Minta asisten Anda untuk menambah, memperbarui, atau menghapus entri pengetahuan yang tertaut ke satu atau lebih agen, termasuk entri penjadwalan untuk jam kerja tertentu.
-
Atur aturan transfer panggilan — Arahkan asisten Anda untuk mengonfigurasi keterampilan transfer dengan kondisi, pesan sebelum transfer, nomor tujuan, dan jadwal mingguan.
Dokumentasi
Menghubungkan
Tidak ada yang perlu diinstal. Arahkan klien Anda ke https://mcp.upfirst.ai dan klien akan memandu Anda untuk masuk ke Upfirst saat pertama kali terhubung. Otorisasi adalah proses masuk OAuth 2.1 standar, jadi tidak ada kunci API yang perlu disalin atau disimpan.
Server berjalan melalui HTTP yang dapat dialirkan dan memberi asisten Anda 25 alat, yang dapat membaca akun Anda dan mengubahnya. Pilih klien Anda di bawah.
Upfirst ada di direktori konektor Claude. Buka claude.ai/directory/upfirst, tambahkan Upfirst, lalu masuk ke Upfirst dan setujui akses. Ini berfungsi di aplikasi desktop Claude dan di claude.ai.
Tambahkan sebagai konektor kustom sebagai gantinya
- Buka Kustomisasi, lalu Konektor.
- Klik +, lalu Tambahkan konektor kustom.
- Beri nama Upfirst dan tempel URL di bawah sebagai URL server MCP jarak jauh.
- Biarkan kolom lanjutan Client ID dan Client Secret kosong.
- Klik Tambahkan, lalu Hubungkan, masuk ke Upfirst, dan setujui akses.
https://mcp.upfirst.ai
Pada paket Team dan Enterprise, pemilik menambahkan konektor sekali di bawah pengaturan Organisasi, dan semua orang lain mengklik Hubungkan.
Bagaimanapun Anda terhubung, panggilan pertama membuka halaman masuk Upfirst. Anda menyetujui akses sekali, dan koneksi tetap terikat ke organisasi Anda sejak saat itu.
Konvensi
Beberapa aturan berlaku di semua alat. Setiap alat membawa tag untuk apa yang dilakukannya terhadap data Anda:
- Baca Mengambil data; tidak pernah mengubah apa pun.
- Tulis Membuat atau memperbarui catatan.
- Hapus Menghapus catatan secara permanen. Tidak ada pembatalan.
Id berasal dari alat daftar
Id agen berasal dari list_agents, id keterampilan dari list_agent_skills, id pengetahuan dari get_agent_knowledge, id sapaan dari list_agent_greetings, id tindakan kustom dari list_custom_actions, dan id panggilan dari list_calls. Id adalah string digit. Alat keterampilan menerima id sebagai skillId; alat pengetahuan, sapaan, dan tindakan kustom menerimanya sebagai id. Alat pembaruan dan penghapusan hanya memerlukan id tersebut. Mereka tidak menerima agentId.
Catatan ditautkan ke agen
Setiap keterampilan, entri pengetahuan, dan tindakan kustom ditautkan ke satu atau lebih agen. Alat pembuatan menerima agentIds, daftar dengan setidaknya satu id agen. Atur autoLinkNewAgents ke true untuk juga memberikan catatan kepada setiap agen yang Anda buat nanti. Dalam kasus itu, agentIds harus mencantumkan setiap agen saat ini. Alat pembaruan mengubah tautan hanya saat Anda mengirim agentIds dan autoLinkNewAgents. Biarkan keduanya kosong untuk mempertahankan tautan apa adanya. Mengedit atau menghapus catatan mengubahnya untuk setiap agen yang ditautkan.
Penomoran halaman
get_agent_knowledge, list_calls, dan get_call_transcript menerima offset dan limit dan mengembalikan totalCount, sehingga halaman selalu diambil dari kumpulan terfilter yang sama. Alat daftar lainnya mengembalikan semuanya dalam satu respons.
Zona waktu
Tanggal polos (YYYY-MM-DD) dibaca dalam zona waktu bisnis. Jadwal mingguan dibaca dalam zona waktu masing-masing agen, sehingga satu entri yang ditautkan ke agen di dua zona waktu mengikuti jam lokal untuk masing-masing. Berikan datetime ISO 8601 lengkap saat Anda membutuhkan waktu yang tepat.
Penghapusan bersifat permanen
Tidak ada pemulihan melalui koneksi ini. Keterampilan, entri pengetahuan, atau tindakan kustom yang dihapus hilang dari setiap agen yang ditautkan, dan agen tersebut berhenti menggunakannya dalam hitungan menit.
Beberapa pengaturan hanya di dasbor
Suara, zona waktu, dan bahasa; penjadwalan keterampilan; koneksi OAuth yang digunakan tindakan kustom untuk autentikasi; menghapus keterampilan transfer; dan mengimpor pengetahuan situs web dikelola di dasbor Upfirst, bukan melalui MCP. Alat menyatakan demikian jika berlaku.
Contoh perintah
Server MCP Upfirst berfungsi dari klien AI kompatibel mana pun. Untuk memulai, salin salah satu perintah ini ke klien Anda dan sesuaikan dengan bisnis Anda.
Temukan celah dalam pengetahuan resepsionis Anda
Kasus penggunaan
Gunakan alur kerja ini untuk meninjau panggilan seminggu terakhir dan menemukan di mana pengetahuan resepsionis kurang, sehingga Anda tahu apa yang perlu ditambahkan ke pelatihannya.
Contoh perintah
Anda membantu menemukan celah dalam pengetahuan resepsionis Upfirst.
Tinjau panggilan dari tujuh hari terakhir, lalu baca pengetahuan resepsionis saat ini. Cari pertanyaan yang diajukan penelepon yang tidak dapat dijawab dengan baik, informasi yang hilang, dan topik yang sama muncul lebih dari sekali.
Untuk setiap celah, tunjukkan panggilan yang menunjukkannya dan sarankan entri pengetahuan spesifik yang akan mengisinya, ditulis dengan cara resepsionis harus menjawab. Kelompokkan celah terkait dan urutkan berdasarkan seberapa sering muncul.
Jangan ubah apa pun. Sajikan celah dan entri yang disarankan untuk ditinjau.
Resepsionis: [Name, or leave blank for all]
Siapkan resepsionis Anda dari deskripsi
Kasus penggunaan
Gunakan alur kerja ini untuk mendeskripsikan cara Anda ingin resepsionis menangani panggilan dan biarkan asisten Anda membangun pengaturannya: sapaan, pengetahuan, aturan transfer, jadwal, dan keterampilan mengirim pesan teks.
Contoh perintah
Anda membantu mengonfigurasi resepsionis AI Upfirst dari deskripsi sederhana tentang cara menangani panggilan.
Ubah deskripsi menjadi pengaturan lengkap: sapaan dan ucapan selamat tinggal, pengetahuan yang dibutuhkan untuk menjawab pertanyaan umum, aturan transfer untuk panggilan yang harus mencapai seseorang, jadwal untuk informasi atau transfer yang hanya berlaku pada jam tertentu, dan keterampilan mengirim pesan teks yang diminta deskripsi.
Tanyakan tentang hal penting yang tidak jelas dalam deskripsi, seperti jam kerja, siapa yang harus dihubungi panggilan, atau cara menangani permintaan umum, alih-alih menebak.
Tampilkan pengaturan lengkap yang diusulkan untuk ditinjau sebelum membuat apa pun, lalu terapkan setelah disetujui.
Cara resepsionis harus menangani panggilan: [Describe your business, your hours, what callers usually need, and who calls should reach]
Perbaiki panggilan yang tidak berjalan baik
Kasus penggunaan
Gunakan alur kerja ini untuk menunjukkan panggilan yang tidak berjalan sesuai keinginan Anda, katakan apa yang Anda inginkan, dan minta asisten Anda menyesuaikan pengetahuan resepsionis sehingga panggilan serupa berjalan lebih baik.
Contoh perintah
Anda membantu meningkatkan resepsionis Upfirst berdasarkan panggilan yang tidak berjalan baik.
Baca panggilan yang saya tunjukkan, termasuk transkripnya, dan bandingkan apa yang dilakukan resepsionis dengan apa yang saya inginkan terjadi. Cari tahu apa yang menyebabkan hasil tersebut: apakah ada pengetahuan yang hilang, tidak jelas, atau bertentangan dengan entri lain.
Sarankan perubahan spesifik yang akan membuat panggilan seperti ini berjalan lebih baik lain kali, ditulis sebagai pengetahuan yang tepat untuk ditambahkan atau diedit, dan jelaskan mengapa masing-masing membantu.
Tampilkan perubahan untuk ditinjau sebelum menerapkannya, lalu buat edit yang disetujui.
Panggilan: [ID or a short description of the call]
Apa yang saya inginkan terjadi sebagai gantinya: [Describe the outcome you were hoping for]
01
Akun & agen
Orientasikan diri Anda, lalu baca atau perbarui resepsionis AI individual.
Mulai di sini. Gambaran singkat yang ringkas dari seluruh akun: nama bisnis, setiap resepsionis dengan zona waktu, sapaan, nomor telepon, keterampilan dan pengetahuan, serta jumlah panggilan yang ditangani dalam 30 hari terakhir.
Tanpa parameter.
Mengembalikan Nama bisnis · agen (id, nama, zona waktu, sapaan, nomor telepon, nama keterampilan & pengetahuan) · panggilan dalam 30 hari terakhir (hanya panggilan yang diselesaikan; panggilan uji dan arsip tidak dihitung).
Daftarkan agen AI organisasi. Gunakan id yang dikembalikan dengan alat yang dibatasi agen di bawah.
Tanpa parameter.
Mengembalikan agen, masing-masing dengan id dan nama.
Baca pengaturan percakapan lengkap satu agen dan nomor telepon yang terlampir.
| Parameter | Tipe | Deskripsi |
|---|---|---|
agentId | string wajib | Id agen numerik dari list_agents. |
Mengembalikan pesan sapaan & ucapan selamat tinggal, nada suara, kecepatan bicara, musik tunggu, zona waktu, pemblokiran spam & bebas pulsa, dan nomor telepon yang terlampir.
Ubah pengaturan percakapan agen. Pembaruan parsial: kirim hanya yang berubah; setidaknya satu bidang yang dapat diatur diperlukan.
| Parameter | Tipe | Deskripsi |
|---|---|---|
agentId | string wajib | Agen yang akan diperbarui. |
greetingMessage | string opsional | Pesan pembuka. |
goodbyeMessage | string opsional | Pesan penutup. |
voiceTone | enum opsional | friendly · professional |
speechRate | angka opsional | 0.7 · 0.85 · 1 · 1.1 · 1.2 |
holdMusic | enum opsional | ringTone · gentleGuitar · marimba · softKeys |
isSpamCallsBlocked | boolean opsional | Blokir panggilan yang diduga spam. |
isTollFreeCallsBlocked | boolean opsional | Blokir panggilan bebas pulsa. |
Suara, zona waktu, dan bahasa dikelola di dasbor dan tidak dapat diubah di sini. Kedua bendera pemblokiran bersifat organisasi: mengatur salah satunya mengubahnya untuk setiap agen aktif, sama seperti dasbor. greetingMessage adalah sapaan default. Sapaan untuk jam atau tanggal tertentu memiliki alat sendiri di bawah Sapaan terjadwal.
Mengembalikan agen yang diperbarui, dalam bentuk yang sama seperti get_agent_by_id.
02
Sapaan terjadwal
Sapaan terjadwal adalah apa yang dikatakan resepsionis pertama kali pada panggilan yang jatuh dalam jadwalnya, seperti sapaan setelah jam kerja atau hari libur. Setiap sapaan dimiliki oleh satu agen. Saat tidak ada sapaan terjadwal yang cocok dengan waktu panggilan, agen menggunakan sapaan defaultnya, yang dibaca dengan get_agent_by_id dan diubah dengan update_agent.
Daftarkan sapaan terjadwal agen, termasuk yang tidak aktif. Baca ini sebelum mengubah sapaan, sehingga tidak ada yang tertimpa tanpa terlihat.
| Parameter | Tipe | Deskripsi |
|---|---|---|
agentId | string wajib | Agen yang sapaan-nya akan didaftarkan. |
Mengembalikan id setiap sapaan, text, bendera aktif, kind, dan schedule. kind bersifat hanya-baca: text berarti sapaan diucapkan sebagaimana ditulis, instruction berarti agen membangun sapaan darinya, dan unknown berarti belum diklasifikasikan.
Tambahkan sapaan terjadwal ke agen. Sapaan disimpan hanya saat seluruh permintaan valid.
| Parameter | Tipe | Deskripsi |
|---|---|---|
agentId | string wajib | Agen yang memiliki sapaan. |
text | string wajib | Kata-kata persis yang diucapkan, atau instruksi tentang cara menyapa. |
schedule | objek wajib | Kapan sapaan digunakan, dalam zona waktu agen. Lihat Jadwal sapaan. |
isActive | boolean opsional | Apakah sapaan digunakan pada panggilan dari awal. Default ke true. |
Jadwal tidak boleh tumpang tindih dengan sapaan aktif lain dari agen yang sama. Jam mingguan dan tanggal diperiksa secara terpisah. kind diatur oleh sistem: ia membaca unknown tepat setelah penulisan dan diklasifikasikan dalam hitungan detik.
Mengembalikan id sapaan baru dan bidangnya.
Ubah teks sapaan terjadwal, bendera aktif, atau jadwal. Pembaruan parsial: kirim hanya yang berubah; setidaknya satu bidang diperlukan.
| Parameter | Tipe | Deskripsi |
|---|---|---|
id | string wajib | Id sapaan, dari list_agent_greetings. |
text | string opsional | Teks sapaan baru. |
isActive | boolean opsional | Apakah sapaan digunakan pada panggilan. |
schedule | objek opsional | Jadwal baru. Lihat Jadwal sapaan. |
Jadwal baru menggantikan yang tersimpan sepenuhnya, jadi baca sapaan terlebih dahulu dan kirim kembali jadwal lengkap yang Anda inginkan. Aturan tumpang tindih yang sama berlaku seperti saat pembuatan. Perubahan teks mengatur ulang kind ke unknown hingga diklasifikasikan lagi.
Mengembalikan bidang yang ditulis pembaruan.
Hapus sapaan terjadwal secara permanen.
| Parameter | Tipe | Deskripsi |
|---|---|---|
id | string wajib | Id sapaan yang akan dihapus. |
Tidak ada cara untuk memulihkan sapaan yang dihapus. Panggilan di slot waktunya kemudian menggunakan sapaan lain yang cocok, atau sapaan default agen saat tidak ada yang cocok.
Jadwal sapaan memiliki jam mingguan di days dan tanggal pasti opsional di dates, semuanya dalam zona waktu agen. days menggunakan bentuk yang sama dengan Jadwal: tujuh hari, masing-masing dengan enabled dan workingPeriods. Setiap entri di dates memiliki date sebagai YYYY-MM-DD dan setidaknya satu rentang waktu di periods. Entri tanggal menang atas jam mingguan untuk hari itu, begitulah cara Anda mengatur sapaan hari libur.
{
"days": {
"monday": { "enabled": true, "workingPeriods": [{ "from": "17:00", "to": "23:59" }] },
"tuesday": { "enabled": true, "workingPeriods": [{ "from": "17:00", "to": "23:59" }] },
"wednesday": { "enabled": true, "workingPeriods": [{ "from": "17:00", "to": "23:59" }] },
"thursday": { "enabled": true, "workingPeriods": [{ "from": "17:00", "to": "23:59" }] },
"friday": { "enabled": true, "workingPeriods": [{ "from": "17:00", "to": "23:59" }] },
"saturday": { "enabled": false, "workingPeriods": [] },
"sunday": { "enabled": false, "workingPeriods": [] }
},
"dates": [
{ "date": "2026-12-25", "periods": [{ "from": "00:00", "to": "23:59" }] }
]
}
03
Keterampilan
Keterampilan adalah tindakan yang dapat dilakukan resepsionis dalam panggilan: mengirim SMS ke penelepon, mengirim tautan penjadwalan, mengalihkan panggilan, memesan janji temu, atau memanggil API eksternal. Setiap jenis memiliki alatnya sendiri, jadi bidang yang Anda kirim selalu yang digunakan oleh jenis tersebut. Keterampilan penjadwalan bersifat hanya-baca di sini dan dikelola di dasbor. Pengaturan keterampilan webhook berada di tindakan kustom yang tertaut; baca dan edit dengan alat Tindakan kustom di bawah.
Daftarkan keterampilan yang dikonfigurasi untuk agen, termasuk yang tidak aktif secara default.
| Parameter | Tipe | Deskripsi |
|---|---|---|
agentId | string wajib | Agen yang keterampilannya akan didaftarkan. |
llmTool | enum opsional | Hanya keterampilan jenis ini: sendSms · sendScheduleSms · transferCall · scheduleSlot · customWebhook. |
includeInactive | boolean opsional | Sertakan keterampilan yang dimatikan. Default true. |
Mengembalikan keterampilan: id, nama, slug, jenis, bendera aktif, konfigurasi tersimpan, jadwal mingguan opsional. Baris customWebhook memiliki konfigurasi kosong dan blok webhook dengan url tindakan tertaut, metode HTTP, dan waktu; baca konfigurasi lengkapnya dengan list_custom_actions.
Jadwal dihormati pada panggilan hanya untuk keterampilan transfer. Jenis lain menyimpannya tetapi mengabaikannya.
Tambahkan keterampilan SMS: SMS yang dapat dikirim resepsionis ke penelepon selama panggilan. sendSms mengirim pesan sebagaimana ditulis. sendScheduleSms mengirimnya bersama tautan penjadwalan organisasi.
| Parameter | Tipe | Deskripsi |
|---|---|---|
agentIds | string[] wajib | Agen yang menerima keterampilan, setidaknya satu. Id dari list_agents. |
autoLinkNewAgents | boolean opsional | Juga berikan keterampilan kepada setiap agen yang dibuat kemudian. Saat true, agentIds harus mencantumkan setiap agen saat ini. Default false. |
llmTool | enum wajib | sendSms · sendScheduleSms |
name | string wajib | Label pendek, ditampilkan di dasbor. |
message | string wajib | Teks SMS yang dikirim agen, hingga 306 karakter. |
instruction | string wajib | Kapan agen harus mengirimnya selama panggilan. |
isActive | boolean opsional | Aktif dari awal. Default true. |
Pesan melewati filter konten yang menolak kata-kata promosi atau yang dibatasi lainnya.
Mengembalikan id keterampilan baru dan bidang yang Anda kirim (llmTool, name, message, instruction, isActive). Baca keterampilan tersimpan dengan list_agent_skills.
Ubah keterampilan SMS. Pembaruan parsial: hanya bidang yang Anda kirim yang berubah. Kirim setidaknya satu bidang yang dapat diatur atau kumpulan agen baru.
| Parameter | Tipe | Deskripsi |
|---|---|---|
skillId | string wajib | Id keterampilan dari list_agent_skills. |
llmTool | enum opsional | Beralih antara sendSms dan sendScheduleSms. |
name | string opsional | Label baru. |
message | string opsional | Teks SMS baru, hingga 306 karakter. |
instruction | string opsional | Panduan baru tentang kapan mengirimnya. |
isActive | boolean opsional | Nyalakan atau matikan keterampilan. |
agentIds | string[] opsional | Kumpulan agen baru yang menerima keterampilan. Kirim bersama autoLinkNewAgents, atau biarkan keduanya kosong untuk mempertahankan tautan saat ini. |
autoLinkNewAgents | boolean opsional | Juga berikan keterampilan kepada setiap agen yang dibuat kemudian. Saat true, agentIds harus mencantumkan setiap agen saat ini. |
Mengembalikan bidang yang ditulis pembaruan.
Hapus permanen keterampilan SMS dari setiap agen yang tertaut. Agen tersebut berhenti mengirim pesan itu.
| Parameter | Tipe | Deskripsi |
|---|---|---|
skillId | string wajib | Id keterampilan yang akan dihapus. |
Tidak ada cara untuk memulihkan keterampilan yang dihapus. Mendapatkannya kembali berarti membuatnya lagi dari awal.
Mengembalikan { id, note }, di mana note mengonfirmasi penghapusan dalam bahasa sederhana.
Tambahkan keterampilan transfer: aturan yang menyerahkan panggilan langsung ke seseorang. condition memberi tahu agen kapan harus transfer, preTransferMessage adalah apa yang dikatakannya ke penelepon terlebih dahulu, dan destinations adalah nomor yang dihubungi secara berurutan.
| Parameter | Tipe | Deskripsi |
|---|---|---|
agentIds | string[] wajib | Agen yang menerima keterampilan, setidaknya satu. Id dari list_agents. |
autoLinkNewAgents | boolean opsional | Juga berikan keterampilan kepada setiap agen yang dibuat kemudian. Saat true, agentIds harus mencantumkan setiap agen saat ini. Default false. |
name | string wajib | Label pendek, ditampilkan di dasbor. |
condition | string wajib | Kapan harus transfer, dalam bahasa sederhana. |
preTransferMessage | string wajib | Apa yang dikatakan agen sebelum transfer. |
destinations | array wajib | Satu atau lebih target, dicoba secara berurutan, masing-masing { phoneNumber, label, phoneExtension }. phoneNumber wajib dan harus E.164 (mis. +12025550123). |
ringTimeoutSeconds | number opsional | Waktu dering per tujuan, 5–60. |
noAnswerAction | enum opsional | endCall · returnToAgent |
transferMethod | enum opsional | cold menyerahkan penelepon langsung · warm memberi pengarahan ke tujuan terlebih dahulu. |
transferCallerId | enum opsional | Nomor yang dilihat tujuan: upfirstNumber · callerNumber. |
recordingMode | enum opsional | agentOnly menghentikan perekaman saat transfer · fullCall terus merekam setelahnya. |
isActive | boolean opsional | Aktif dari awal. Default true. |
schedule | object opsional | Jam mingguan keterampilan ditawarkan, dalam zona waktu agen. Lewati untuk selalu tersedia. Lihat Jadwal. |
Setiap tujuan harus berada di negara yang sama dengan salah satu nomor Upfirst dari agen tertaut. Saat dihilangkan, keterampilan menggunakan default dasbor saat panggilan: dering 30 detik, akhiri panggilan jika tidak dijawab, transfer dingin, nomor Upfirst sebagai id penelepon, dan perekaman berhenti saat transfer.
Mengembalikan id keterampilan baru dan bidang yang Anda kirim. Baca keterampilan tersimpan dengan list_agent_skills.
Ubah keterampilan transfer. Pembaruan parsial: hanya bidang yang Anda kirim yang berubah. Kirim setidaknya satu bidang yang dapat diatur atau kumpulan agen baru.
| Parameter | Tipe | Deskripsi |
|---|---|---|
skillId | string wajib | Id keterampilan dari list_agent_skills. |
destinations | array opsional | Mengganti seluruh daftar. Kirim setiap nomor yang ingin Anda pertahankan. |
schedule | object opsional | Mengganti jam tersimpan. null menghapus jadwal, membuat keterampilan tersedia sepanjang waktu. |
| Bidang buat lainnya | opsional | name, condition, preTransferMessage, ringTimeoutSeconds, noAnswerAction, transferMethod, transferCallerId, recordingMode, isActive. Nilai sama dengan saat membuat. |
agentIds | string[] opsional | Kumpulan agen baru yang menerima keterampilan. Kirim bersama autoLinkNewAgents, atau biarkan keduanya kosong untuk mempertahankan tautan saat ini. |
autoLinkNewAgents | boolean opsional | Juga berikan keterampilan kepada setiap agen yang dibuat kemudian. Saat true, agentIds harus mencantumkan setiap agen saat ini. |
Setiap tujuan harus berada di negara yang sama dengan salah satu nomor Upfirst dari agen tertaut.
Jenis keterampilan ditetapkan saat pembuatan. Melewati id keterampilan penjadwalan atau webhook terbaca sebagai tidak ditemukan.
Mengembalikan bidang yang ditulis pembaruan.
Tidak ada alat untuk ini. Keterampilan transfer dihapus di dasbor Upfirst. Melalui MCP Anda dapat mematikannya sebagai gantinya: atur isActive: false dengan update_transfer_call_skill, dan agen berhenti menawarkan transfer sementara keterampilan tetap dikonfigurasi.
04
Pengetahuan
Pengetahuan resepsionis adalah apa yang digunakannya untuk menjawab penelepon. Di dasbor Upfirst, entri ini berada di bawah Pelatihan. Masing-masing adalah teks yang Anda tulis, atau konten yang diimpor dari situs web. Sebuah entri dapat ditautkan ke beberapa agen, dan mengedit atau menghapusnya mengubah apa yang dijawab setiap agen tertaut. Penulisan melatih ulang resepsionis secara otomatis dalam hitungan menit.
Baca basis pengetahuan agen. Setiap entri dikembalikan utuh dengan konten lengkapnya, tidak pernah pratinjau.
| Parameter | Tipe | Deskripsi |
|---|---|---|
agentId | string wajib | Agen yang pengetahuannya akan dibaca. |
id | string opsional | Kembalikan hanya entri ini. |
offset | number opsional | Entri yang dilewati. Default 0. |
limit | number opsional | Maksimal entri, 1–100. Default 25. |
Mengembalikan entri: id, nama, tipe (teks/situs web), bendera aktif, konten lengkap, url sumber, dan jadwal mingguan, plus totalCount.
Tambahkan entri teks ke pelatihan satu atau lebih resepsionis. Entri baru masuk ke atas daftar setiap agen tertaut.
| Parameter | Tipe | Deskripsi |
|---|---|---|
agentIds | string[] wajib | Agen yang menerima entri, setidaknya satu. Id dari list_agents. |
autoLinkNewAgents | boolean opsional | Juga berikan entri kepada setiap agen yang dibuat kemudian. Saat true, agentIds harus mencantumkan setiap agen saat ini. Default false. |
name | string wajib | Nama tampilan entri. |
content | string wajib | Teks biasa, hingga 250.000 karakter. |
isActive | boolean opsional | Aktif dari awal. Default true. |
schedule | object opsional | Batasi entri ke jam kerja. Lewati untuk selalu aktif. Lihat Jadwal. |
Mengembalikan id, name, isActive, schedule entri baru (null saat selalu aktif), dan contentLength dalam karakter. Baca entri lengkap dengan get_agent_knowledge.
Ubah nama entri, bendera aktif, konten, jadwal, atau agen mana yang melihatnya. Pembaruan parsial: kirim setidaknya satu bidang yang dapat diatur atau kumpulan agen baru.
| Parameter | Tipe | Deskripsi |
|---|---|---|
id | string wajib | Id entri dari get_agent_knowledge. |
name, isActive | opsional | Nama / bendera aktif baru. |
content | string opsional | Teks baru, mengganti seluruh konten tersimpan. Hingga 250.000 karakter. |
schedule | object opsional | Jadwal baru. null menghapusnya, membuat entri selalu tersedia; lewati untuk mempertahankan yang tersimpan. |
agentIds | string[] opsional | Kumpulan agen baru yang menerima entri. Kirim bersama autoLinkNewAgents, atau biarkan keduanya kosong untuk mempertahankan tautan saat ini. |
autoLinkNewAgents | boolean opsional | Juga berikan entri kepada setiap agen yang dibuat kemudian. Saat true, agentIds harus mencantumkan setiap agen saat ini. |
Konten diganti, tidak pernah ditambahkan. Baca entri dengan get_agent_knowledge terlebih dahulu dan kirim kembali teks lengkap yang Anda inginkan, termasuk apa pun yang Anda pertahankan. Edit mengubah apa yang dikatakan setiap agen tertaut ke entri.
Mengembalikan bidang yang ditulis pembaruan. Konten baru kembali sebagai contentLength, bukan teks lengkap.
Hapus permanen entri pengetahuan.
| Parameter | Tipe | Deskripsi |
|---|---|---|
id | string wajib | Id entri yang akan dihapus. |
Tidak ada cara untuk memulihkan entri yang dihapus. Menghapusnya menghilangkannya dari setiap agen yang tertaut.
Mengembalikan { id, note }, di mana note mengonfirmasi penghapusan dalam bahasa sederhana.
Jadwal membatasi entri pengetahuan (atau keterampilan transfer) hanya pada jam kerja, yang dihormati di zona waktu bisnis agen. Ini adalah objek per-hari-kerja. Setiap jadwal yang Anda kirim harus mencakup ketujuh hari; hari di mana entri tidak berlaku adalah enabled: false dengan workingPeriods kosong. Waktu menggunakan format 24 jam HH:MM di zona waktu agen.
Entri terjadwal hanya ada dalam pengetahuan resepsionis selama jendela waktunya. Di luar itu, entri dianggap tidak ada, sehingga resepsionis tidak pernah menjawab darinya pada waktu yang salah.
Itu membuat jadwal menjadi cara yang andal untuk menangani fakta yang spesifik waktu. Untuk membuat jam buka dan tutup anti-gagal, tambahkan satu entri yang dibatasi pada jam buka Anda dengan teks "Kami sedang buka," dan entri kedua yang dibatasi pada jam tutup Anda dengan teks "Kami sedang tutup." Hanya satu yang aktif setiap saat, sehingga resepsionis tidak bisa mencampurnya.
{
"days": {
"monday": { "enabled": true, "workingPeriods": [{ "from": "09:00", "to": "17:00" }] },
"tuesday": { "enabled": true, "workingPeriods": [{ "from": "09:00", "to": "17:00" }] },
"wednesday": { "enabled": true, "workingPeriods": [{ "from": "09:00", "to": "17:00" }] },
"thursday": { "enabled": true, "workingPeriods": [{ "from": "09:00", "to": "17:00" }] },
"friday": { "enabled": true, "workingPeriods": [{ "from": "09:00", "to": "17:00" }] },
"saturday": { "enabled": false, "workingPeriods": [] },
"sunday": { "enabled": false, "workingPeriods": [] }
}
}
05
Tindakan kustom
Tindakan kustom adalah panggilan yang dilakukan resepsionis ke API HTTP eksternal. timing menentukan kapan tindakan itu berjalan: before dipicu sebelum percakapan dan hanya boleh menggunakan variabel sistem; during ditawarkan kepada agen pada panggilan, yang memutuskan dari deskripsi apakah akan memanggilnya; after dipicu setelah panggilan berakhir, baik setiap kali atau ketika kondisi bahasa biasa terpenuhi.
Variabel diinterpolasi ke dalam url, parameter kueri, header, dan body sebagai {{name}}. Sebuah tindakan ditautkan ke satu atau lebih agen, dan mengedit atau menghapusnya mengubah apa yang dilakukan setiap agen tertaut. Di list_agent_skills, keterampilan customWebhook adalah tampilan sisi-agen dari tindakan kustom. Koneksi OAuth yang dapat digunakan untuk autentikasi tindakan diatur di dasbor Upfirst.
Setiap tindakan kustom yang dapat digunakan agen, masing-masing dengan seluruh konfigurasinya. Baca ini sebelum menulis ulang tindakan, agar tidak ada yang tertimpa tanpa terlihat.
| Parameter | Tipe | Deskripsi |
|---|---|---|
agentId | string wajib | Agen yang tindakannya akan didaftar. Setiap tindakan yang ditautkan ke agen ini disertakan. |
id | string opsional | Kembalikan hanya satu tindakan ini. |
Mengembalikan customActions, masing-masing dengan id, agentIds (setiap agen yang ditautkan ke tindakan), autoLinkNewAgents, nama, deskripsi, waktu, metode HTTP, url, tipe auth dan id koneksi OAuth, pesan fallback, batas waktu, bendera aktif, variabel, parameter kueri, header, bidang keluaran yang diizinkan, nilai sampel, template body, dan kondisi setelah-waktu.
Header yang namanya terlihat seperti kredensial (token, key, secret, authorization) kembali sebagai [redacted]; nilai aslinya tidak pernah dibaca. Tindakan yang dihapus dihilangkan.
Tambahkan tindakan kustom dan tautkan ke satu atau lebih agen.
| Parameter | Tipe | Deskripsi |
|---|---|---|
agentIds | string[] wajib | Agen yang menerima tindakan, setidaknya satu. Id dari list_agents. |
autoLinkNewAgents | boolean opsional | Juga berikan tindakan ke setiap agen yang dibuat nanti. Saat true, agentIds harus mencantumkan setiap agen saat ini. Default false. |
name | string wajib | Label pendek, ditampilkan di dasbor. |
description | string wajib | Apa yang dilakukan tindakan, dalam bahasa biasa. Waktu before dan during menempatkannya di depan agen, yang memutuskan dari teks ini apakah akan memanggil API. Waktu after mengabaikannya. |
timing | enum wajib | before · during · after |
httpMethod | enum wajib | GET · POST · PUT · PATCH · DELETE |
url | string wajib | Endpoint tujuan permintaan. Dapat berisi placeholder {{variable}}. |
authType | enum wajib | none mengirim permintaan tanpa autentikasi · bearer memerlukan header Authorization dalam headers · customHeaders mengautentikasi melalui header yang Anda berikan · oauth_connection menyelesaikan token dari koneksi dan memerlukan oauthConnectionId. |
fallbackMessage | string wajib | Apa yang dikatakan agen kepada penelepon saat permintaan gagal atau habis waktu. |
oauthConnectionId | string opsional | Id numerik dari koneksi OAuth yang terhubung. Diperlukan untuk oauth_connection, ditolak untuk setiap tipe auth lainnya. Ambil dari list_custom_actions pada tindakan yang sudah menggunakannya. |
variables | array opsional | Nilai yang diinterpolasi ke dalam permintaan, masing-masing { name, description, exampleValue, isSystem, required }. name dan description wajib dan nama harus unik. Variabel sistem diisi oleh Upfirst dari panggilan itu sendiri; yang kustom dikumpulkan dari penelepon. Tindakan berwaktu before hanya boleh menggunakan variabel sistem. Default []. |
queryParams | array opsional | Parameter string kueri, masing-masing { key, value }. Nilai dapat menggunakan placeholder. Default []. |
headers | array opsional | Header permintaan, masing-masing { key, value }. Auth Bearer membawa tokennya dalam header Authorization di sini. Jangan pernah mengirim placeholder [redacted] kembali. Default []. |
allowedOutputFields | string[] opsional | Bidang respons JSON yang boleh dibaca agen. Kosong meneruskan respons tanpa perubahan. Default []. |
bodyTemplate | string opsional | Body permintaan dikirim apa adanya dengan placeholder yang disubstitusi. Kosong untuk tidak ada. |
sampleValues | objek opsional | Nilai per nama variabel, digunakan saat tindakan dicoba. |
timeoutSeconds | integer opsional | 1–30. Default 10. |
isActive | boolean opsional | Aktif dari awal. Default true. |
condition | string atau null opsional | Hanya waktu after. Aturan bahasa biasa yang diperiksa terhadap panggilan yang selesai; null dipicu setelah setiap panggilan. Tinggalkan untuk before dan during. |
Mengembalikan tindakan yang dibuat dengan id barunya.
Ubah tindakan kustom. Pembaruan parsial: hanya bidang yang Anda kirim yang berubah. Kirim setidaknya satu bidang yang dapat diatur atau kumpulan agen baru. Daftar diganti seluruhnya, bukan digabung, jadi baca tindakan dengan list_custom_actions terlebih dahulu.
| Parameter | Tipe | Deskripsi |
|---|---|---|
id | string wajib | Id tindakan dari list_custom_actions. |
agentIds | string[] opsional | Kumpulan agen baru yang menerima tindakan. Kirim bersama autoLinkNewAgents, atau tinggalkan keduanya untuk mempertahankan tautan saat ini. |
autoLinkNewAgents | boolean opsional | Juga berikan tindakan ke setiap agen yang dibuat nanti. Saat true, agentIds harus mencantumkan setiap agen saat ini. |
oauthConnectionId | string atau null opsional | null menghapusnya. Kirim null dalam panggilan yang sama yang memindahkan tindakan dari tipe auth oauth_connection. |
condition | string atau null opsional | null menghapusnya. Kirim null dalam panggilan yang sama yang memindahkan tindakan dari waktu after. |
variables, queryParams, headers, allowedOutputFields | array opsional | Masing-masing mengganti seluruh daftarnya. Kirim setiap entri yang ingin dipertahankan. Header yang membawa placeholder [redacted] ditolak; kirim nilai asli atau tinggalkan header itu. |
| Bidang buat lainnya | opsional | name, description, timing, httpMethod, url, authType, bodyTemplate, sampleValues, fallbackMessage, timeoutSeconds, isActive. Nilai yang sama seperti saat membuat. |
Tindakan yang ditautkan ke beberapa agen diedit untuk semuanya.
Mengembalikan bidang yang ditulis oleh pembaruan.
Hapus permanen tindakan kustom. Setiap agen yang ditautkan berhenti memanggil API itu.
| Parameter | Tipe | Deskripsi |
|---|---|---|
id | string wajib | Id tindakan yang akan dihapus. |
Tidak ada cara untuk memulihkan tindakan yang dihapus. Mendapatkannya kembali berarti membuatnya lagi dari awal, dan list_custom_actions mengembalikan konfigurasinya hanya selama masih ada.
Mengembalikan { id, note }, di mana note mengonfirmasi penghapusan dalam bahasa biasa.
06
Panggilan
Baca riwayat panggilan bisnis, detail satu panggilan, dan transkripnya. Hanya panggilan yang telah selesai yang muncul; panggilan muncul sesaat setelah berakhir.
Daftar dan filter riwayat panggilan, yang terbaru terlebih dahulu. Baris ringkas tanpa transkrip atau ringkasan (gunakan alat di bawah untuk itu).
| Parameter | Tipe | Deskripsi |
|---|---|---|
statuses | enum[] opsional | Filter berdasarkan hasil, setiap panggilan memiliki tepat satu: test · blocked · spam · hungUp · completed. |
query | string opsional | Pencarian teks bebas atas ringkasan dan transkrip panggilan. |
tags | string[] opsional | Cocokkan panggilan yang membawa salah satu tag ini (berdasarkan nama atau id). |
startDate | tanggal opsional | YYYY-MM-DD polos = hari kalender di zona waktu bisnis, atau datetime ISO lengkap. |
endDate | tanggal opsional | Seperti di atas; inklusif. |
archived | boolean opsional | Kembalikan panggilan yang diarsipkan alih-alih yang aktif. Default false. |
offset, limit | angka opsional | Penomoran halaman. limit adalah 1–100, default 25. |
Mengembalikan baris panggilan (penelepon, waktu, durasi, hasil, tag, kontak tertaut, jumlah giliran transkrip) plus totalCount.
Detail lengkap satu panggilan, semuanya kecuali teks transkrip dan rekaman.
| Parameter | Tipe | Deskripsi |
|---|---|---|
callId | string wajib | Id panggilan numerik dari list_calls. |
Mengembalikan waktu, hasil, nomor penelepon & resepsionis, ringkasan yang ditulis AI, bidang data yang ditangkap, keterampilan yang digunakan agen (dengan kapan masing-masing dipicu), tag, komentar tim Anda, dan jumlah giliran transkrip.
Teks percakapan satu panggilan sebagai giliran terurut, masing-masing dicap dengan offset [mm:ss] dan pembicaranya.
| Parameter | Tipe | Deskripsi |
|---|---|---|
callId | string wajib | Id panggilan numerik dari list_calls. |
offset, limit | angka opsional | Penomoran halaman atas giliran. limit adalah 1–200, default 100. Panggilan tipikal muat dalam satu respons; halaman hanya saat catatan mengatakan lebih banyak giliran tersisa. |
Pembicara adalah Agen (resepsionis AI), Penelepon (orang yang menelepon), dan Penerima Transfer (manusia yang menerima panggilan dialihkan).
Mengembalikan giliran (offset, pembicara, teks) plus totalCount.
FAQ
Bagaimana cara membuat Upfirst mulai menjawab panggilan saya?
Kami memberi Anda nomor telepon. Anda dapat membagikan nomor itu dan meminta orang meneleponnya langsung, tetapi sebagian besar bisnis meneruskan panggilan ke nomor itu dari saluran yang sudah mereka gunakan.
Anda memilih seberapa banyak yang diteruskan: setiap panggilan, hanya yang Anda lewatkan, atau, tergantung pada telepon, operator, atau sistem VoIP Anda, hanya selama jam tertentu. Langkahnya berbeda untuk setiap penyedia, jadi lihat Teruskan semua panggilan Anda ke Upfirst untuk penyedia Anda.
Apakah saya perlu kunci API?
Tidak. Otorisasi adalah masuk standar OAuth 2.1. Panggilan pertama membuka halaman masuk Upfirst, Anda menyetujui akses sekali, dan tidak ada yang perlu disalin, ditempel, atau disimpan.
Asisten AI mana yang bisa saya gunakan dengan ini?
Klien apa pun yang mendukung server MCP jarak jauh melalui HTTP. Bagian Menghubungkan memiliki pengaturan untuk Claude, ChatGPT, Claude Code, Cursor, VS Code, dan Codex. Untuk yang lain, arahkan ke https://mcp.upfirst.ai sebagai server HTTP streamable dan itu akan menangani masuk pada panggilan pertama.
Apa yang bisa dijangkau asisten saya?
Hanya organisasi tempat Anda masuk. Setiap alat dibatasi pada organisasi itu, dan id dari organisasi lain tidak pernah dapat diakses. Di dalamnya, asisten dapat membaca panggilan dan transkrip serta mengubah pengaturan resepsionis, keterampilan, pengetahuan, dan tindakan kustom, dan memilih resepsionis mana yang menerapkan masing-masing, jadi perlakukan koneksi itu seperti Anda masuk ke dasbor.
Mengapa panggilan yang baru saya terima tidak muncul?
Hanya panggilan yang selesai yang muncul, dan sebuah panggilan akan terlihat sesaat setelah berakhir. Panggilan yang sedang berlangsung tidak tersedia sampai panggilan tersebut ditutup. Jika sebuah panggilan masih belum muncul, periksa apakah panggilan tersebut telah diarsipkan, karena list_calls mengembalikan panggilan aktif kecuali Anda memberikan archived: true.
Apa yang tidak bisa saya lakukan melalui MCP?
Suara, zona waktu, dan bahasa; keterampilan penjadwalan; koneksi OAuth untuk tindakan kustom; menghapus keterampilan transfer; dan mengimpor pengetahuan dari situs web semuanya dikelola di dasbor Upfirst. Rekaman panggilan juga tidak tersedia melalui koneksi ini. Alat-alat tersebut menyebutkannya jika berlaku.