Specifica del Connettore AsistentiAI v1
AsistentiAI risponde ai clienti della tua azienda 24/7. Per dare loro informazioni in tempo reale — lo stato dell'ordine, le giacenze — l'agente deve leggere dal tuo sistema. Invece di scrivere un'integrazione separata per ogni ERP, implementi tu (oppure lo facciamo noi, come servizio) un unico ponte HTTP/JSON leggero secondo questa specifica. Le piattaforme più diffuse (WooCommerce, WordPress) hanno connettori già pronti.
Principi
- Solo lettura nella v1. AsistentiAI non modifica nulla nel tuo sistema. La creazione degli ordini (
POST /orders) è riservata alla v1.1 e viene attivata solo con la tua approvazione esplicita. - Privacy del cliente. Lo stato di un ordine viene restituito solo quando il numero d'ordine corrisponde al telefono o all'email indicati dal cliente — la verifica la fai tu, dal tuo lato.
- Ogni chiamata proviene dai server di AsistentiAI, autenticata (token o firma HMAC), con un timeout di 12 secondi. Il collegamento viene attivato solo dopo l'approvazione della piattaforma AsistentiAI (subito, se è la piattaforma stessa a collegarlo).
Autenticazione
Scegli uno dei due metodi (lo imposti quando richiedi il collegamento nel pannello):
1. Token Bearer
Authorization: Bearer <token>2. Firma HMAC-SHA256 (consigliata)
X-AAI-Key: <id della chiave>
X-AAI-Timestamp: <secondi unix>
X-AAI-Signature: hex( HMAC-SHA256( secret, timestamp + "." + METHOD + "." + pathWithQuery + "." + sha256hex(body) ) )
Esempio (GET /orders/1234?phone=0691234567, corpo vuoto):
messaggio = "1727100000.GET./orders/1234?phone=0691234567." + sha256hex("")
Rifiuta le richieste con un timestamp più vecchio di 5 minuti.Endpoint
Tutti relativi all'URL di base che ci fornisci (ad es. https://erp.azienda.it/asistentiai). Le risposte sono sempre in JSON.
GET /health
200 { "ok": true, "capabilities": ["orders.read", "stock.read"] }
// "capabilities" (facoltativo): cosa implementa il tuo ponteGET /orders/{numero}?phone=…&email=…
Restituisce l'ordine SOLO se il telefono (ultime 8 cifre) o l'email corrisponde all'ordine.
200 { "found": true, "verified": true,
"order": {
"number": "1234",
"status": "processing", // pending | processing | on-hold | completed | cancelled | refunded | failed | shipped | delivered | returned
"statusLabel": "In preparazione", // facoltativo, nella lingua del cliente — se manca, traduciamo noi il codice di stato
"date": "2026-09-20",
"total": "1700", "currency": "ALL",
"items": [ { "name": "Soffiatore elettrico 48V", "qty": 1 } ],
"shipping": "Corriere", "tracking": "AL123456789", "city": "Fier"
} }
200 { "found": true, "verified": false } // l'ordine esiste ma il contatto non corrisponde (oppure 403)
404 { "found": false }GET /stock/{sku}
200 { "sku": "A2105", "name": "Fryrës elektrik 48V", "inStock": true, "quantity": 12, "price": "1400 L",
"locations": [ { "name": "Tiranë", "qty": 7 }, { "name": "Durrës", "qty": 3 }, { "name": "Fier", "qty": 2 } ] }
// "locations" (facoltativo): giacenza per negozio / magazzino
404 { "found": false }POST /orders v1.1 — in arrivo
{ "customer": { "name": "…", "phone": "…", "email": "…", "address": "…", "city": "…" },
"items": [ { "sku": "A2105", "qty": 1 } ],
"note": "…", "source": "asistentiai", "conversationId": "…" }
→ 201 { "number": "1235", "status": "pending" }Codici di errore
401— autenticazione non valida (l'agente dice al cliente che il team verificherà).404— l'ordine/il prodotto non esiste.429/5xx— temporaneamente non disponibile; AsistentiAI non riprova nella stessa conversazione e lo registra negli eventi del collegamento.
API di AsistentiAI — il tuo sistema ci invia i dati
La direzione opposta: invece di essere noi a interrogare il tuo sistema, è il tuo sistema (ERP, negozio) a inviarci i dati. L'Owner di AsistentiAI crea una chiave API per la tua azienda e te la consegna; la chiave appartiene solo a quell'azienda e ha solo le capacità che le sono state concesse. Può essere revocata in qualsiasi momento.
Authorization: Bearer aai_live_…GET /api/v1/ping
Test del collegamento: a quale azienda appartiene la chiave e quali capacità ha.
GET https://asistentiai.com/api/v1/ping
200 { "ok": true, "api": "asistentiai/v1", "business": "Dyqani Elegance", "key": "ERP i dyqanit", "scopes": ["stock.write"] }POST /api/v1/stock stock.write
Giacenze per SKU, anche per negozio/magazzino. Invia solo le modifiche oppure l'intero elenco tutte le volte che vuoi; viene conservato l'ultimo stato. Compare subito nel pannello delle conversazioni → Create order.
POST https://asistentiai.com/api/v1/stock
{ "items": [
{ "sku": "A4543", "quantity": 221,
"locations": [ { "name": "Tiranë", "qty": 221 }, { "name": "Durrës", "qty": 45 } ] },
{ "sku": "A0099", "inStock": false }
] }
200 { "ok": true, "saved": 2, "rejected": [] } // fino a 1000 elementi per richiesta
GET https://asistentiai.com/api/v1/stock?sku=A4543 → ciò che abbiamo salvatoErrori: 401 chiave mancante o revocata · 403 la chiave non ha questa capacità · 429 più di 120 richieste al minuto.
Ambiente di prova (sandbox)
Un'implementazione di riferimento di questa specifica, con dati fittizi, per confrontare il tuo ponte e provare il collegamento nel pannello senza un sistema reale:
URL di base: https://asistentiai.com/api/connector-demo
Token (Bearer): demo-asistentiai-2026
HMAC: X-AAI-Key = demo · secret = demo-secret-asistentiai-2026
Ordini: 1234 (telefono 0691234567 / email demo@asistentiai.com) → spedito, tracking AL123456789
1235 (telefono 0682223344 / email klienti@shembull.al) → in preparazione
Stock: A2105 → disponibile (12 pezzi) · B2201 → esaurito
curl -H "Authorization: Bearer demo-asistentiai-2026" \
"https://asistentiai.com/api/connector-demo/orders/1234?phone=0691234567"Come si attiva
- Implementa
/health,/orders/{numero}e (facoltativamente)/stock/{sku}nel tuo sistema, con uno dei metodi di autenticazione. - L'Amministratore dell'azienda, nel pannello → Data connections → Internal system / ERP, inserisce l'URL di base e il token o la chiave HMAC. AsistentiAI esegue una chiamata
/healthper verificarlo. - La piattaforma AsistentiAI approva il collegamento e attiva le capacità (stato degli ordini, giacenze). Da quel momento l'agente le usa automaticamente nelle conversazioni.
Domande o aiuto per l'implementazione: scrivi al team di AsistentiAI dal pannello. Possiamo costruire noi il ponte per te, come servizio.
