Skip to content
cloud pbx
  • Home
  • Produk & Layanan
    • Cloud PBX
      • Enterprise PBX
      • Multi Tenant Cloud PBX
      • Cloud PBX Office
      • Cloud PBX Lite
      • Cloud PBX Hotel
      • Cloud Call Center
        • Cloud Call Center
        • Call center customer service
        • Call Center Telemarketing
        • Customer Service AI
      • Cloud SIP Trunk
    • Layanan
      • Data & Integration
        • Optimalisasi Monitoring 3CX, Grafana, dan SQL Dashboard
        • Wallboard Custom – Dimension
        • Custom – API
        • Integrasi CRM Apapun dengan 3CX
      • Solusi Contact Center
        • Omni Channel Customer Service
        • Telemarketing – Predictive Dialer
        • Solusi Business Process Outsourcing
      • Solusi Channel Komunikasi
        • Microsoft Teams Direct Routing
        • Whatsapp business calling API dengan PBX
        • Video conference
        • Webrtc softphone
        • Softphone
    • AI Agent Integrasi API: Solusi Customer Service Otomatis 24/7
  • Devices
    • Voice Gateway
      • FXO
        • Dinstar FXO Gateway
        • Yeastar FXO Gateway
      • FXS
        • Solusi Integrasi Telepon Analog: Dinstar
      • E1
        • E1/T1 Digital VoIP Gateway Newrock OM1000-TE (1–4 E1)
        • Beronet E1 Voip Gateway
    • IP Phone
      • Fanvil
      • SNOM D140, D150
      • Yealink IP Phone series
      • Poly Desk Phone (MS-Teams)
    • SBC
      • Mikro SBC 3CX
  • Case Studies
  • News
  • Video
    • Tutorial
    • Integrasi
    • Testimoni
  • Pusat Bantuan
  • Hubungi Kami
  • Partner
  • Tentang kami
cloud pbx
  • Home
  • Produk & Layanan
    • Cloud PBX
      • Enterprise PBX
      • Multi Tenant Cloud PBX
      • Cloud PBX Office
      • Cloud PBX Lite
      • Cloud PBX Hotel
      • Cloud Call Center
        • Cloud Call Center
        • Call center customer service
        • Call Center Telemarketing
        • Customer Service AI
      • Cloud SIP Trunk
    • Layanan
      • Data & Integration
        • Optimalisasi Monitoring 3CX, Grafana, dan SQL Dashboard
        • Wallboard Custom – Dimension
        • Custom – API
        • Integrasi CRM Apapun dengan 3CX
      • Solusi Contact Center
        • Omni Channel Customer Service
        • Telemarketing – Predictive Dialer
        • Solusi Business Process Outsourcing
      • Solusi Channel Komunikasi
        • Microsoft Teams Direct Routing
        • Whatsapp business calling API dengan PBX
        • Video conference
        • Webrtc softphone
        • Softphone
    • AI Agent Integrasi API: Solusi Customer Service Otomatis 24/7
  • Devices
    • Voice Gateway
      • FXO
        • Dinstar FXO Gateway
        • Yeastar FXO Gateway
      • FXS
        • Solusi Integrasi Telepon Analog: Dinstar
      • E1
        • E1/T1 Digital VoIP Gateway Newrock OM1000-TE (1–4 E1)
        • Beronet E1 Voip Gateway
    • IP Phone
      • Fanvil
      • SNOM D140, D150
      • Yealink IP Phone series
      • Poly Desk Phone (MS-Teams)
    • SBC
      • Mikro SBC 3CX
  • Case Studies
  • News
  • Video
    • Tutorial
    • Integrasi
    • Testimoni
  • Pusat Bantuan
  • Hubungi Kami
  • Partner
  • Tentang kami
cloud pbx

IP Phone

4
  • Factory Reset IP Phone: Langkah Wajib Sebelum Provisioning Biar Nggak Error
  • Daftar IP Phone yang kompatibel dengan 3CX
  • Apa itu Ip Phone?
  • Cara install/Provisioning IP Phone

3CX Softphone: Webclient and Apps

6
  • Digital Receptionist (IVR): Cara Bikin Menu Telepon Otomatis yang Profesional
  • Cara Mudah Mengatur Status Available, Away, dan DND di 3CX
  • Belajar Fitur Komunikasi Dasar 3CX dalam 5 Menit
  • Cara Instalasi dan Aktivasi 3CX Desktop App di Windows (PWA & Windows App)
  • Aktivasi 3CX Mobile App dengan QR Code
  • Cara Mengakses 3CX web client

3CX Admin Console & Manajemen Sistem

7
  • FITUR BACKUP DAN RESTORE
  • Apa Itu FXO? Cara Mudah Menghubungkan Telepon Lama ke Sistem VoIP
  • Apa Itu SBC? Kenalan dengan “Satpam” yang Menjaga Sistem VoIP Kamu
  • Office Hours & Holiday Rules Biar Telepon Bisnis Tetap Rapi, Bahkan Saat Kantor Tutup
  • Manajemen Departemen & Users di 3CX: Cara Tambah User, Atur Role, dan Kelola Departemen dengan Mudah
  • Ring Groups vs Call Queues di 3CX: Biar Customer Nggak Nunggu Lama, Tim Kamu Juga Nggak Keteteran
  • Cara Setup Router Phone / 3CX SBC untuk Karyawan Remote & WFH

Keamanan VoIP dan Troubleshoot

3
  • Cara Membuka Blokir IP Akibat Salah Password Berkali-kali
  • Mengatasi One-Way Audio di 3CX Telepon Nyambung Tapi Suara Cuma Kedengeran Sepihak?
  • 3CX Firewall Checker: Cara Cek Port 3CX Supaya Telepon Tetap Lancar

Developer

6
  • Aplikasi Softphone flutter WebRTC meggunakan package sip_UA.
  • WebRTC SBC Gateway Integration for Flutter
  • Mengoptimalkan Kolaborasi Perusahaan Melalui 3CX Video Conference API
  • Transformasi Arsitektur Telepon Perusahaan dengan WebRTC SBC Gateway
  • Panduan Endpoint REST API XAPI untuk Konfigurasi 3CX
  • Panduan Struktur & Deskripsi XML Template CRM 3CX

SIP TRUNK

3
  • Ada Berapa Jenis Nomor atau Layanan SIP Trunk?
  • Apa Itu SIP Trunk?
  • Manajemen SIP Trunk Cara Menghubungkan Nomor Telepon Provider Lokal ke 3CX
View Categories
  • Home
  • Pusat Bantuan
  • Developer
  • Panduan Struktur & Deskripsi XML Template CRM 3CX

Panduan Struktur & Deskripsi XML Template CRM 3CX

Admin
Updated on June 30, 2026

6 min read

SPESIFIKASI XML TEMPLATE INTEGRASI CRM 3CX #

  • Dokumen ID: KB-3CX-CRM-XML-01

  • Target Versi: 3CX v18 / v20 (Server-Side Integration)

  • Kategori: Middleware & API Development

1. Pendahuluan & Arsitektur Utama #

3CX menggunakan mesin integrasi berbasis server-side yang mengeksekusi instruksi dari sebuah file konfigurasi XML kustom. Engine ini menangani penanganan pencarian nomor telepon (contact lookup), pencatatan riwayat panggilan (call journaling), pelaporan interaksi pesan (chat journaling), hingga alur otorisasi token yang kompleks (OAuth2).

Engine ini mendukung tiga tipe skenario (Type):

  1. REST: Interaksi via HTTP REST API (mengembalikan data berformat JSON atau XML).

  2. SQLDatabase: Kueri database relasional secara langsung (mendukung MySQL, PostgreSQL, dan Microsoft SQL Server).

  3. NoSQLDatabase: Eksekusi perintah database non-relasional (mendukung MongoDB).

2. Struktur Root Elemen & Atribut Dasar #

Setiap template wajib dibungkus di dalam tag root <Crm> dengan deklarasi atribut sebagai berikut:

XML
 
<Crm Name="Custom_CRM_REST" Version="1" Country="ID" SupportsEmojis="true">
    </Crm>
  • Name: String identitas unik template yang akan ditampilkan pada UI Konsol Admin 3CX.

  • Version: Nilai integer penanda versi skema integrasi (digunakan oleh sistem untuk manajemen pembaruan).

  • Country: Kode negara target aplikasi (bersifat wajib diisi, namun saat ini belum dievaluasi oleh core fungsionalitas).

  • SupportsEmojis: Bernilai boolean (true/false). Jika diset false, karakter emoji pada pesan chat akan otomatis difilter sebelum dikirim ke sistem CRM Anda.

3. Elemen Konfigurasi Komponen Utama #

3.1 Elemen <Number> #

Digunakan untuk menormalisasi format string nomor telepon masuk (caller ID) agar sesuai dengan format indeks pencarian di database CRM.

  • Prefix (Enum): Menentukan perilaku manipulasi awalan nomor:

    • AsIs: Menjaga string asli tanpa modifikasi (contoh: +62 atau 00 tetap utuh).

    • Off: Menghapus semua karakter awalan penanda (seperti simbol + atau digit 00).

    • Plus: Memaksa karakter awalan menggunakan tanda tambah (+).

    • Zeros: Memaksa karakter awalan menggunakan digit nol ganda (00).

  • MaxLength (Expression): Memotong string dari kanan dan hanya mengambil sejumlah $N$ digit terakhir. Nilai ini dapat diset dinamis menggunakan ekspresi variabel [MaxLength] untuk mengambil parameter global dari 3CX Console > Contacts > Options.

3.2 Elemen <Connection> #

Mengonfigurasi batas eksekusi konkurensi engine terhadap server eksternal.

  • MaxConcurrentRequests: Membatasi jumlah maksimal kueri simultan paralel yang diizinkan untuk dikirim ke API CRM (mencegah rate limiting). Satu sesi pencarian panggilan telepon tunggal (meskipun mengeksekusi beberapa skenario lookup paralel untuk Lead, Contact, atau Account) dihitung sebagai satu kesatuan request unit.

3.3 Elemen <Parameters> #

Menampung kumpulan elemen <Parameter> kustom yang nilainya diinput secara dinamis oleh administrator melalui halaman UI Web Console 3CX. Nilai parameter ini dapat dipanggil di bagian mana saja di dalam template dengan format kurung siku: [NamaParameter].

  • Tipe Data Parameter (Type): Mendukung String, Password (input teks tersembunyi), Boolean (checkbox), Integer, Double, DateTime, dan OAuth (memicu tombol interaktif alur otorisasi OAuth2).

  • Atribut Kontrol Editor: Atribut Editor bernilai String (maksimal 100 karakter) atau Sql (maksimal 1000 karakter). Untuk parameter bertipe OAuth, wajib menyertakan atribut RequestUrl, RequestUrlParameters, dan ResponseScenario.

3.4 Elemen <Authentication> #

Mengatur metode injeksi token keamanan pada HTTP Header. Mendukung tiga konfigurasi:

  1. Type="No": Tanpa autentikasi bawaan, digunakan jika CRM menggunakan penanganan token manual di dalam query string URL.

  2. Type="Basic": Menyuntikkan HTTP header Authorization: Basic <base64> otomatis pada setiap request berdasarkan nilai dari anak node <Value>.

  3. Type="Scenario": Digunakan untuk skema token dinamis (seperti OAuth2 Access Token). Opsi ini memicu eksekusi skenario khusus untuk mengambil token segar, mendeteksi masa kedaluwarsa (expiry time), dan menyimpannya di memori runtime state.

4. Penanganan Skenario Berdasarkan Reservasi ID Sistemas #

Atribut Id pada tag <Scenario> mengontrol kapan dan bagaimana sebuah blok instruksi dieksekusi oleh core engine telephony 3CX:

  • Id="" (String Kosong): Skenario default utama untuk mencocokkan kontak berdasarkan nomor telepon masuk (Inbound Call Contact Lookup).

  • Id="LookupByEmail": Dipicu otomatis saat sistem meminta pencarian entitas menggunakan alamat email.

  • Id="SearchContacts": Digunakan untuk fungsionalitas pencarian teks bebas (free text search) lintas kolom data (Nama, Perusahaan, Email, dsb) dari aplikasi klien 3CX.

  • Id="ReportCall": Dieksekusi otomatis seketika saat sesi panggilan telepon berakhir untuk mencatat riwayat log panggilan (Call Journaling).

  • Id="ReportChat": Dieksekusi otomatis ketika sesi interaksi pesan kustom selesai ditangani (Chat Journaling).

  • Id="CreateContactRecordFromClient": Memicu pembuatan baris data kontak baru ke CRM langsung dari tombol aksi di aplikasi klien 3CX.

  • Id="LookupFromCFD_[Entity]_[Type]": Digunakan khusus untuk melempar balikan raw data payload (JSON/XML) langsung ke aplikasi Call Flow Designer (CFD).

⚠️ PENTING UNTUK DEVELOPER (JOURNALING RULES):

Khusus untuk skenario ReportCall dan ReportChat, engine 3CX tidak mengharapkan adanya pengembalian data (output data return). Oleh karena itu, di dalam struktur XML skenario tersebut dilarang keras menyertakan node penutup <Rules>, <Variables>, atau <Outputs>. Cukup deklarasikan elemen interaksi utama seperti <Request>, <Query>, atau <Command>.

5. Pipeline Pengolahan Data Respon (REST) #

Siklus pemrosesan data respon API dalam skenario REST mengikuti 4 tahapan berurutan (sequential pipeline):

  1. <Request>: Mengonstruksi HTTP Request (URL, Method GET/POST/PUT, Headers, dan Request Body).

  2. <Rules>: Memetakan basis awal array objek respon eksternal (Atribut Type="json" menggunakan format penulisan JSONPath, sedangkan Type="xml" menggunakan format XPath). Elemen <Filter> dapat disisipkan di dalamnya untuk menyaring kondisi properti tertentu.

  3. <Variables>: Mengekstrak data nilai properti spesifik dari hasil saringan array untuk dipetakan ke dalam variabel runtime lokal.

    XML
     
    <Variables>
        <Variable Name="ContactID" Path="id" />
        <Variable Name="Company" Path="company.name" />
    </Variables>
    
  4. <Outputs>: Menyerahkan nilai variabel runtime lokal kembali ke core PBX 3CX. Pada skenario contact lookup, properti wajib yang harus dipetakan meliputi: ContactUrl, FirstName, LastName, CompanyName, Email, dan PhoneBusiness.

  • Skenario Berantai (Chained Scenario): Developer dapat memicu skenario lanjutan secara rekursif per baris data dengan menyuntikkan atribut Next pada tag output, misalnya: <Outputs Next="GetContactDetailsByID"/>. Skenario anak otomatis mewarisi seluruh state variabel yang ditangkap pada skenario induknya.

6. Aturan Sintaks Ekspresi & Penulisan Karakter Khusus #

Mesin parsing ekspresi XML 3CX menerapkan aturan ketat terhadap karakter pemesanan sistem. Jika string literal di dalam atribut ekspresi mengandung karakter khusus, Anda wajib melakukan escape dengan ketentuan berikut:

  • Karakter pembuka kurung siku [ wajib diubah menjadi: {{

  • Karakter penutup kurung siku ] wajib diubah menjadi: }}

  • Karakter tanda petik dua " wajib diubah menjadi: ^^

Catatan untuk Pengembang SQL: Khusus penulisan variabel binding di dalam skenario SQLDatabase, pemanggilan nilai variabel dilarang menggunakan format kurung siku [Variable], melainkan wajib menggunakan awalan parameter terikat native SQL yaitu simbol @ (Contoh: WHERE phone = @NumberToLookup).

7. Alur Pengujian & Debugging Kode #

Layanan utama 3CX System Service bertanggung jawab memuat seluruh file skema XML ke dalam memori RAM saat proses booting awal pbx dimulai. Akibatnya, setiap kali developer melakukan perubahan baris kode di dalam file XML template, 3CX System Service wajib direstart secara penuh agar perubahan skema terbaca.

Untuk menguji fungsionalitas integrasi tanpa melakukan panggilan fisik (dummy testing execution), gunakan fungsionalitas tombol interaktif “Test” yang terletak pada halaman manajemen web admin: 3CX Admin Console > Settings > CRM Integration.

Baca juga : Call Center Hospitality untuk Layanan Tamu Multi-Negara dengan 3CX, CRM & AI Agent

Panduan Endpoint REST API XAPI untuk Konfigurasi 3CXAplikasi Softphone flutter WebRTC meggunakan package sip_UA.
Table of Contents
  • SPESIFIKASI XML TEMPLATE INTEGRASI CRM 3CX
    • 1. Pendahuluan & Arsitektur Utama
    • 2. Struktur Root Elemen & Atribut Dasar
    • 3. Elemen Konfigurasi Komponen Utama
      • 3.1 Elemen
      • 3.2 Elemen
      • 3.3 Elemen
      • 3.4 Elemen
    • 4. Penanganan Skenario Berdasarkan Reservasi ID Sistemas
    • 5. Pipeline Pengolahan Data Respon (REST)
    • 6. Aturan Sintaks Ekspresi & Penulisan Karakter Khusus
    • 7. Alur Pengujian & Debugging Kode

Share This Article :

  • Facebook
  • X
  • LinkedIn

Was it helpful ?

  • Happy
  • Normal
  • Sad
  • Home
  • Produk & Layanan
  • Devices
  • Case Studies
  • News
  • Video
  • Pusat Bantuan
  • Hubungi Kami
  • Partner
  • Tentang kami
  • Cloud PBX Enterprise
  • Multi Tenant Cloud PBX
  • Cloud call center
  • Cloud PBX office
  • Click to Talk
  • WebRTC Softphone
  • AI Agent Customer Service
  • Integrasi WABA Calling PBX
  • Integrasi CRM dengan 3CX
  • Pusat Bantuan
  • Patuhi Standar PCI DSS & HIPAA
  • Cara Praktis Efisiensi Komunikasi Hotel
  • Agentic AI: Era Baru Sistem Telepon Cerdas
  • Cloud PBX Office untuk Komunikasi Bisnis
  • Memahami Fitur Call Flow Designer
  • Call Center Hospitality
  • Customer Service WhatsApp dengan 3CX
  • Monitoring PBX dengan Grafana dan SQL Dashboard

PT. Solusi Teknologi Unggul | My Republik Plaza Wing A Ground Level Zona 6, Green Office Park 6. BSD City Tangerang Banten 15345 Tel:+62-21-50111266

Copyright © 2026 PT. Solusi Teknologi Unggul

butuh bantuan? Whatsapp kami
WhatsApp
Hallo 👋, Selamat datang di Solusipbx.com, Terima kasih telah menghubungi kami

Untuk membantu kami memberikan solusi yang tepat, silahkan informasikan Nama, Perusahaan serta
detail kebutuhan anda
Open Chat
Powered by Joinchat