CRM végpontok
Csatlakoztasd a WAziont a külső CRM vagy ERP rendszeredhez, hogy a mesterséges intelligencia és az oldalsó panel hozzáférhessen az ügyfelek, rendelések és termékek adataihoz a rendszeredben.
Mik azok a CRM végpontok?
A CRM végpontok lehetővé teszik, hogy a WAzion lekérje a külső rendszeredből származó információkat (CRM, ERP, saját adatbázis). Ellentétben az MI funkciókkal (amelyeket az MI dönt el, mikor hívjon meg), ezeket a végpontokat automatikusan hívják meg, amikor az ügynök megnyit egy beszélgetést vagy információt keres.
Az Oldalsó Panelhez
Megjeleníti az ügyfél adatait a beszélgetés mellett (megrendelések, előzmények, elérhetőségek).
Az MI számára
Adjon meg kezdeti kontextust az ügyfélről, hogy a MI releváns információval válaszolhasson.
1 sidePanel_CustomerInfo
Az ügynök által megnyitott beszélgetéskor a bővítmény oldalsó paneljén megjelenő ügyféladatokat biztosítja.
Küldött paraméterek
| phone | Ügyfél telefonszáma (E.164) |
| token | Hitelesítési token |
| relatedphones | Kapcsolódó telefonok (tömb) |
Várt válasz
{
"found": true,
"customers": [
{
"name": "Juan García",
"email": "juan@email.com",
"phone": "+34612345678",
"shopUrl": "https://tucrm.com/c/123",
"ordersCount": 5,
"totalSpent": 450.00,
"totalRefunded": 0,
"state": "VIP - Activo",
"orders": [...],
"abandonedCarts": [...]
}
]
}
Megjegyzés: Használhatod a “customer“ (objektum) vagy a “customers“ (tömb) kifejezést több ügyfél támogatásához. Mindig HTTP 200-as választ ad vissza, még akkor is, ha nem találsz ügyfelet (használd a “found“: false-t).
📦 Teljes válaszstruktúra megtekintése (rendelések, tételek, nyomon követés, elhagyott kosarak)
Teljes JSON szerkezet az összes támogatott mezővel:
{
"found": true,
"customers": [
{
"// Datos básicos del cliente"
"name": "Juan García López",
"email": "juan@email.com",
"phone": "+34612345678",
"shopUrl": "https://tu-crm.com/clientes/123",
"ordersCount": 15,
"totalSpent": 1250.50,
"totalRefunded": 50.00,
"totalDiscounts": 25.00,
"state": "Cliente VIP",
"// Array de pedidos"
"orders": [
{
"name": "#ORD-2025-001",
"date": "2025-01-10T14:30:00Z",
"amount": 129.99,
"netAmount": 104.99,
"totalRefunded": 25.00,
"totalDiscounts": 10.00,
"currency": "EUR",
"cancelled": false,
"shopUrl": "https://tu-crm.com/pedidos/1234",
"note": "Entregar por la tarde",
"// Items del pedido"
"items": [
{
"title": "Camiseta Premium Azul - Talla L",
"quantity": 2,
"currentQuantity": 2,
"amount": 59.98,
"originalAmount": 59.98,
"discountedAmount": 59.98,
"discount": 0,
"refundedQuantity": 0,
"refundedAmount": 0,
"status": "active" // active | partially_refunded | fully_refunded
}
],
"// Tracking de envíos"
"tracking": [
{
"number": "ES123456789012",
"company": "SEUR",
"url": "https://www.seur.com/tracking/...",
"displayStatus": "Entregado"
}
]
}
],
"// Carritos abandonados"
"abandonedCarts": [
{
"date": "2025-01-14T18:45:00Z",
"url": "https://tu-tienda.com/cart/recover/abc123",
"items": [
{
"title": "Zapatillas Running Pro",
"quantity": 1,
"amount": 129.99
}
]
}
]
}
]
}
Ügyfélmezők:
| Mező | Típus | Szükséges |
|---|---|---|
| name | string | Igen |
| string | Igen | |
| phone | string | Igen |
| shopUrl | string | No |
| ordersCount | number | Igen |
| totalSpent | number | Igen |
| totalRefunded | number | No |
| totalDiscounts | number | No |
| state | string | Igen |
| orders | array | No |
| abandonedCarts | array | No |
Megrendelési mezők (order):
| Mező | Típus | Leírás |
|---|---|---|
| name | string | Rendelési azonosító/szám |
| date | string | ISO 8601 dátum |
| amount | number | Rendelés összesen |
| netAmount | number | Nettó összeg (visszatérítést követően) |
| currency | string | Pénznemkód (EUR, USD...) |
| cancelled | boolean | igaz, ha törölve van |
| shopUrl | string | URL a rendelésedhez a rendszeredben |
| note | string | Rendelési megjegyzés |
| items | array | Rendelés termékei |
| tracking | array | Szállítások/követés |
Az elem mezői:
| Mező | Típus | Leírás |
|---|---|---|
| title | string | Termék neve |
| quantity | number | Megrendelt mennyiség |
| currentQuantity | number | Jelenlegi mennyiség (visszatérítések után) |
| amount | number | Az elem teljes ára |
| refundedQuantity | number | Visszatérített egységek |
| refundedAmount | number | Visszatérített összeg |
| status | string | active | partially_refunded | fully_refunded |
Követési mezők:
| Mező | Típus | Leírás |
|---|---|---|
| number | string | Követési szám |
| company | string | Szállító cég |
| url | string | Követési URL |
| displayStatus | string | Olvasható állapot (Kiszállítva, Szállítás alatt...) |
Fordítási címkék (UI)
Ahhoz, hogy a bővítmény a megfelelő nyelven jelenítse meg a szövegeket, tartalmazza a “labels“ objektumot a fordításokkal:
{
"found": true,
"customer": { ... },
"labels": {
"label_languages": "es",
"customer_info": "Información del Cliente",
"name": "Nombre",
"email": "Email",
...
}
}
Teljes elérhető címke lista megtekintése
| Key | Default (ES) | Leírás |
|---|---|---|
| label_languages | "es" | Címkék nyelve. Ha eltér az üzlet nyelvétől, a WAzion automatikusan lefordítja azokat |
| customer_info | "Información del Cliente" | Ügyfél szekció címe |
| name | "Nombre" | Név címke |
| "Email" | Email címke | |
| phone | "Teléfono" | Telefon címke |
| orders_count | "Pedidos" | Rendelésszámláló |
| total_spent | "Total gastado" | Összesen költött |
| total_refunded | "Total reembolsado" | Visszatérítések |
| discounts | "Descuentos" | Kedvezmények |
| customer_state | "Estado" | Ügyfél állapota |
| recent_orders | "Pedidos recientes" | Megrendelések címe |
| order | "Pedido" | Egyéni rendelés |
| orders | "Pedidos" | Rendelések |
| order_number | "Nº de pedido" | Rendelési szám |
| date | "Fecha" | Dátum |
| amount | "Importe" | Összeg |
| net_amount | "Importe neto" | Nettó összeg |
| subtotal | "Subtotal" | Részösszeg |
| discount | "Descuento" | Egyéni kedvezmény |
| refund | "Reembolso" | Visszatérítés |
| refunded | "Reembolsado" | Visszatérített kitűző |
| cancelled | "Cancelado" | Végzetes kitűző |
| cancel_reason | "Motivo cancelación" | Lemondás oka |
| items | "Artículos" | Termékek/Cikkek |
| item_status | "Estado artículo" | Állapotát a cikknek |
| quantity | "Cantidad" | Mennyiség |
| original_quantity | "Cantidad original" | Eredeti mennyiség |
| current_quantity | "Cantidad actual" | Jelenlegi mennyiség |
| sku | "SKU" | SKU |
| shipments | "Envíos" | Szállítások |
| shipping | "Envío" | Egyéni szállítás |
| tracking_number | "Nº seguimiento" | Követési szám |
| no_shipping_info | "Sin información de envío" | Szállítás nélkül |
| order_note | "Nota del pedido" | Rendelési megjegyzések |
| fully_refunded | "Reembolsado completamente" | 100%-ban visszatérített tétel |
| partially_refunded | "Reembolsado parcialmente" | Részben visszatérített tétel |
| active | "Activo" | Aktív állapot |
| abandoned_carts | "Carrito/s abandonado/s" | Elhagyott kosarak |
| copy_link | "Copiar enlace" | Másolás gomb |
| view_customer | "Ver perfil del cliente" | Ügyfél megtekintés gomb |
| view_profile | "Ver perfil" | Profil megtekintése gomb |
| remove_assignment | "Quitar asignación" | Csatolás megszüntetése gomb |
| not_found | "Cliente no encontrado" | Üzenet nem található |
| no_orders | "Sin pedidos" | Rendelés nélkül |
| error | "Error" | Hibafelület |
| Ügyfél állapotai | ||
| state_no_orders | "Sin pedidos" | Állapot: nincs rendelés |
| state_conflictive | "Conflictivo" | Állapot: konfliktusos |
| state_processing | "Procesando" | Állapot: feldolgozás alatt |
| state_new_orders | "Pedidos nuevos" | Állapot: új rendelések |
| state_recent_orders | "Pedidos recientes" | Állapot: legutóbbi megrendelések |
| state_old_orders | "Pedidos antiguos" | Állapot: régi rendelések |
Automatikus fordítás: Ha címkéket küldesz egy nyelven (pl.: angol a label_languages: “en“ beállítással), és a bolt egy másik nyelven van beállítva (pl.: spanyol), a WAzion automatikusan lefordítja az összes címkét. Ez lehetővé teszi, hogy a CRM-edet egyetlen nyelven tartsd.
2 ai_CustomerInitialInfo
Adjon kezdeti kontextust az ügyfélről a mesterséges intelligenciának. Ezt a szöveget az MI felhívásába illesztik be, hogy releváns információkkal tudjon válaszolni az ügyfélről.
Küldött paraméterek
| phone | Ügyfél telefonszáma (E.164) |
| token | Hitelesítési token |
| relatedphones | Kapcsolódó telefonok (tömb) |
| order | Megadott rendelési szám (opcionális) |
| Ügyfél e-mail címe (opcionális) | |
| test | igaz“, ha teszt |
Várt válasz
{
"found": true,
"info": "Cliente: Juan García.
VIP: Sí. Total pedidos: 5.
Último pedido: #12345 (15/01/2024)
Estado: Entregado.
Productos frecuentes: Zapatos, Camisetas.
ALERTA: Cliente alérgico al gluten."
}
Fontos: Az “info“ mező szabad szöveg, amelyet a mesterséges intelligencia kontextusként olvas. Tartalmazza a vásárlási előzményeket, preferenciákat, fontos figyelmeztetéseket (allergiák, korábbi problémák), az ügyfél állapotát, előnyben részesített fizetési/szállítási módot stb.
3 sidePanel_CustomerFindToJoin
Lehetővé teszi ügyfelek keresését a rendszerben, hogy összekapcsolhassa őket egy WhatsApp beszélgetéssel. Hasznos, ha az ügyfél másik, a rendszerben nem regisztrált telefonszámról ír.
Küldött paraméterek
| query | Keresőszöveg |
| token | Hitelesítési token |
| phone | Jelenlegi beszélgetési telefonszám |
| relatedphones | Már kapcsolt telefonok (tömb, kizárásra) |
Várt válasz
{
"customers": [
{
"id": "cust_123",
"name": "Juan García",
"email": "juan@email.com",
"phone": "+34612345678"
},
{
"id": "cust_456",
"name": "Juan Martínez",
"email": "juanm@email.com",
"phone": "+34687654321"
}
]
}
Megjegyzés: Használhatod a “customers“ vagy a “results“ neveket a tömbnek. Minden ügyfél “phone“ mezője lehetővé teszi a WAzion számára, hogy automatikusan összekapcsolja a beszélgetést.
4 search_Products
Lehetővé teszi termékek keresését a külső katalógusodban. Az eredmények az oldalsó panelen jelennek meg, és az ügynök megoszthatja azokat az ügyféllel. A mesterséges intelligencia szintén képes termékeket keresni a kérdések megválaszolásához.
Megjegyzés a CRM egyedi beállításához: A WAzion átlátszó proxyként működik ehhez a végponthoz. A CRM-ed válasza közvetlenül, módosítás nélkül kerül visszaküldésre a bővítménynek. A teljes dokumentált struktúrát meg kell valósítanod, ha ki akarod használni az összes funkciót. A kiegészített mezők (target_locale, title_copy, raw stb.) csak Shopify áruházak esetén generálódnak automatikusan.
Küldött paraméterek
| Paraméter | Típus | Leírás |
|---|---|---|
| q | string | Keresési szöveg (minimum 2 karakter) |
| token | string | Áruház hitelesítő tokenje |
| phone | string | Ügyfél telefonszáma (E.164) - ország szerinti helyi URL-ekhez |
| format | string | ai“ amikor a mesterséges intelligencia termékeket keres (változtatja a válasz szerkezetét) |
| target_locale | string | Az ügyfél nyelvének automatikus észlelése a telefonja alapján (például: “es“, “de“, “fr“) |
| test | boolean | true“, ha csatlakozási teszt. |
Új: célhelyszín - A WAzion automatikusan felismeri az ügyfél nyelvét a telefonján található előhívó alapján. Például +34... → “es“, +49... → “de“. Használd ezt a paramétert a termékek helyes nyelven történő visszaküldéséhez.
Válasz normál formátumban (oldalsáv)
Amikor az ügynök a termékeket keresi a panelről. Tartalmaz mezőket másoláshoz/megosztáshoz.
{
"http_status": 200,
"count": 1,
"products": [
{
"title": "Camiseta Premium",
"title_copy": "Premium T-Shirt",
"handle": "camiseta-premium",
"description": "Descripción truncada a 500 chars...",
"sku": "CAM-001",
"image": "https://proxy/imagen.jpg",
"url": "https://tutienda.es/products/camiseta-premium",
"variants": [
{
"id": "12345678",
"title": "M / Rojo",
"title_copy": "M / Red",
"has_custom_title": true,
"sku": "CAM-001-M-RED",
"image": "https://proxy/variante.jpg",
"url": "https://tutienda.es/products/camiseta-premium?variant=12345678"
}
]
}
],
"target_locale": "en",
"raw": { ... }
}
AI formátum válasz (amikor format=“ai“)
Amikor a mesterséges intelligencia termékeket keres. Egyszerűsített szerkezet másolati mezők nélkül, teljes leírás.
{
"count": 1,
"products": [
{
"title": "Premium T-Shirt",
"handle": "camiseta-premium",
"description": "Descripción COMPLETA sin truncar para contexto IA...",
"sku": "CAM-001",
"url": "https://tutienda.es/products/camiseta-premium",
"variants": [
{
"id": "12345678",
"title": "M / Red",
"sku": "CAM-001-M-RED",
"url": "https://tutienda.es/products/camiseta-premium?variant=12345678"
}
]
}
],
"locale": "en"
}
Az összes termékmező megtekintése
| Mező | Normális | MI | Leírás |
|---|---|---|---|
| title | Eredeti | Lefordítva | Termék neve |
| title_copy | Lefordítva | - | Másolásra szánt cím (ügyfél nyelve) |
| handle | ✓ | ✓ | Termék URL kulcsa |
| description | 500 karakter | Készítsd el | Leírás (tisztított HTML) |
| sku | ✓ | ✓ | Az első változat SKU-ja |
| image | ✓ | - | Kép URL-je (lehet proxizott) |
| url | ✓ | ✓ | Termék helyi URL-címe |
| variants | ✓ | ✓ | Változatok tömbje |
Minden változat mezőinek megtekintése
| Mező | Normális | MI | Leírás |
|---|---|---|---|
| id | ✓ | ✓ | Változat azonosítója |
| title | Eredeti | Lefordítva | Variáns cím (pl.: “M / Piros“) |
| title_copy | Lefordítva | - | Másolásra szánt cím (ügyfél nyelve) |
| has_custom_title | ✓ | - | igaz, ha egyedi cím van megadva (nem “Alapértelmezett cím“) |
| sku | ✓ | ✓ | változat SKU-ja |
| image | ✓ | - | Specifikus kép a változatról (vagy a termékről, ha nincs) |
| url | ✓ | ✓ | URL ?variant=ID-vel |
Gyökérválasz mezőinek megtekintése
| Mező | Normális | MI | Leírás |
|---|---|---|---|
| http_status | ✓ | - | HTTP válaszkód |
| count | ✓ | ✓ | Talált termékek száma |
| products | ✓ | ✓ | Termék tömb |
| target_locale | ✓ | - | A fordításokhoz használt helyi beállítás |
| locale | - | ✓ | Használt locale (csak AI formátum) |
| raw | ✓ | - | Forrás nyers válasza (hibakeresés) |
🌍 Országonkénti helyi URL-címek
A phone paraméter tartalmazza az ügyfél telefonszámát (E.164). Használd az országának felismeréséhez, és visszaadj ország-specifikus URL-eket:
- Országspecifikus domainek (tutienda.es, tutienda.de, tutienda.fr)
- Nyelvi előtaggal ellátott útvonalak (/es/, /de/, /fr/)
- locale paraméterek (?locale=es_ES)
- Shopify specifikus piacok
Példa: Ha a telefon +34-gyel kezdődik (Spanyolország), adjon vissza .es domainű vagy /es/ útvonalú URL-eket.
5 globalSearch
Globális ügyfélkeresés a bővítmény lebegő keresőjében. Lehetővé teszi a keresést név, e-mail, telefon vagy rendelési szám alapján.
Küldött paraméterek
| Paraméter | Típus | Leírás |
|---|---|---|
| query | string | Keresési szöveg (minimum 2 karakter) |
| token | string | Áruház hitelesítő tokenje |
Várt válasz
{
"found": true,
"customers": [
{
"id": "cust_123",
"name": "Juan García López",
"email": "juan.garcia@email.com",
"phone": "+34612345678",
"customerUrl": "https://tucrm.com/clientes/123",
"orders": [
{
"number": "#ORD-1234",
"url": "https://tucrm.com/pedidos/1234"
},
{
"number": "#ORD-1233",
"url": "https://tucrm.com/pedidos/1233"
}
]
}
]
}
Minden ügyfél mezői
| Mező | Típus | Szükséges | Leírás |
|---|---|---|---|
| id | string | Igen | Ügyfél egyedi azonosítója a rendszeredben |
| name | string | Igen | Ügyfél teljes neve |
| string | Igen | Ügyfél e-mailje | |
| phone | string | Igen | Ügyfél telefonszáma (E.164 formátum előnyben, pl.: +34612345678) |
| customerUrl | string | Nem | URL az ügyfél megtekintéséhez az Ön CRM rendszerében (kattintható hivatkozásként jelenik meg) |
| orders | array | Nem | Tömb a legutóbbi rendelésekből (maximum 3) |
Minden rendelés mezői (orders[])
| Mező | Típus | Szükséges | Leírás |
|---|---|---|---|
| number | string | Igen | Rendelésszám (pl.: “#ORD-1234“) |
| url | string | Nem | URL a rendelés megtekintéséhez a rendszeredben |
Fontos megjegyzések
- • A
phonemező kötelező, hogy az ügynök meg tudja nyitni a beszélgetést az adott ügyféllel. - • Legfeljebb 15 eredményt jelenít meg a rendszer a felhasználónak (automatikusan korlátozva).
- • A telefonszámok szerinti duplikátumok automatikusan törlődnek.
- • Ha a
customerUrljelen van, az ügyfél neve kattintható hivatkozás lesz. - • A megrendelések egyenkénti linkekként jelennek meg az ügyfél alatt.
Műszaki specifikációk
Időtúllépések
| globalSearch | 5s |
| Egyéb végpontok | 10s |
| Kapcsolódási időtúllépés | 5s |
| Újrapróbálkozások | Nem |
HTTP módszerek
| Testreszabható | GET / POST |
| Törzs (POST) | JSON / Form |
| Paraméterek (GET) | Query string |
Követelmények
- HTTPS kötelező
- Érvényes JSON válasz
- HTTP 200 mindig (használja a found:false-t, ha nincs adat)
Különbség az MI funkciókkal szemben
A CRM végpontok NEM próbálkoznak újra automatikusan, ha hibát észlelnek. Valós időben hívódnak meg, amíg az ügynök dolgozik, ezért gyorsan kell válaszolniuk. Ha hiba történik, az információ egyszerűen nem jelenik meg.
Hitelesítési típusok
Példa URL (GET + lekérdezési hitelesítés)
// WAzion llamará:
https://tu-api.com/customer
?phone=+34612345678
&token=tu-token-secreto
&relatedphones=["+34698765432"]
&test=false
Megvalósítási példák
<?php
// Endpoint: /api/customer-info
header('Content-Type: application/json');
// Obtener parámetros (soporta GET y POST)
$input = json_decode(file_get_contents('php://input'), true) ?? $_GET;
$phone = $input['phone'] ?? '';
$token = $input['token'] ?? '';
$relatedPhones = $input['relatedphones'] ?? [];
$order = $input['order'] ?? '';
$isTest = ($input['test'] ?? '') === 'true';
// Verificar token
if ($token !== 'tu-token-secreto') {
echo json_encode(['found' => false, 'error' => 'No autorizado']);
exit;
}
// Si es test, devolver datos de ejemplo
if ($isTest) {
echo json_encode([
'found' => true,
'customers' => [[
'name' => 'Cliente de Prueba',
'email' => 'test@example.com',
'phone' => '+34612345678',
'shopUrl' => 'https://tucrm.com/cliente/123',
'ordersCount' => 3,
'totalSpent' => 150.00,
'state' => 'Activo',
'orders' => []
]]
]);
exit;
}
// Buscar por teléfono principal + relacionados
$allPhones = array_merge([$phone], $relatedPhones);
$customers = buscarClientesPorTelefonos($allPhones);
echo json_encode([
'found' => !empty($customers),
'customers' => $customers
]);
const express = require('express');
const app = express();
app.use(express.json());
const SECRET_TOKEN = 'tu-token-secreto';
app.all('/api/customer-info', async (req, res) => {
// Soporta GET y POST
const params = { ...req.query, ...req.body };
const { phone, token, relatedphones = [], order, test } = params;
// Verificar token
if (token !== SECRET_TOKEN) {
return res.json({ found: false, error: 'No autorizado' });
}
// Datos de test
if (test === 'true') {
return res.json({
found: true,
customers: [{
name: 'Cliente de Prueba',
email: 'test@example.com',
phone: '+34612345678',
shopUrl: 'https://tucrm.com/cliente/123',
ordersCount: 3,
totalSpent: 150.00,
state: 'Activo',
orders: []
}]
});
}
// Buscar clientes
const allPhones = [phone, ...relatedphones];
const customers = await buscarClientesPorTelefonos(allPhones);
res.json({ found: customers.length > 0, customers });
});
app.listen(3000);
from flask import Flask, request, jsonify
app = Flask(__name__)
SECRET_TOKEN = 'tu-token-secreto'
@app.route('/api/customer-info', methods=['GET', 'POST'])
def customer_info():
# Soporta GET y POST
params = {**request.args, **request.get_json(silent=True) or {}}
phone = params.get('phone', '')
token = params.get('token', '')
related_phones = params.get('relatedphones', [])
is_test = params.get('test') == 'true'
# Verificar token
if token != SECRET_TOKEN:
return jsonify({'found': False, 'error': 'No autorizado'})
# Datos de test
if is_test:
return jsonify({
'found': True,
'customers': [{
'name': 'Cliente de Prueba',
'email': 'test@example.com',
'phone': '+34612345678',
'shopUrl': 'https://tucrm.com/cliente/123',
'ordersCount': 3,
'totalSpent': 150.00,
'state': 'Activo',
'orders': []
}]
})
# Buscar clientes
all_phones = [phone] + related_phones
customers = buscar_clientes_por_telefonos(all_phones)
return jsonify({'found': len(customers) > 0, 'customers': customers})
Változási előzmények
sidePanel_CustomerInfo most automatikusan lefordítja az összes címkét, ha a label_languages eltér az áruház nyelvétől. A CRM-edet egyetlen nyelven tarthatod (pl.: angol), és a WAzion gondoskodik a fordításokról.
A WAzion most az ügyfél által észlelt nyelvet (a telefon prefixe alapján) target_locale paraméterként küldi el. Hasznos ahhoz, hogy a termékeket az ügyfél helyes nyelvén adja vissza.