Webhook per inviare il primo messaggio
Dovrai chiamare questo nostro webhook ogni volta che sul tuo CRM verrĂ creato un nuovo oggetto.
Per oggetto intendiamo un contatto, un lead o un deal.
Per oggetto intendiamo un contatto, un lead o un deal.
Dominio
Ambiente DEV: https://customcrm.webhooks.dev.aisa.247x.io/
Ambiente PROD: https://customcrm.webhooks.aisa.247x.io/
Path
| POST /hooks/new |
Header
| Authorization: Bearer {{Token}} |
Body
Invia tutto lâoggetto in formato JSON.
Utilizza la chiave specifica per il relativo oggetto:
- se è un contatto utilizza contact
- se è un lead utilizza lead
- se è un deal utilizza deal
|
{
"contact": { // può essere anche deal o lead
"id" : "",
"firstName": "",
"lastName": "",
"phoneNumber": "",
...
}
}
|
Endpoint per creare/aggiornare un oggetto (incluso lo stage e la pipeline)
Per dare la possibilitĂ ad AISA di aggiornare il tuo CRM dovrai creare un endpoint che permette di creare e aggiornare un oggetto. Per oggetto intendiamo un contatto, un lead o un deal.
Ă preferibile predisporre questo endpoint con la logica di un upsert, in questo modo con un solo endpoint si può gestire sia la creazione che lâaggiornamento. Se non è possibile creare direttamente un upsert si possono comunque creare due endpoint, uno per la creazione e uno per lâaggiornamento.
Sia se deciderai di creare un unico endpoint di upsert oppure un doppio endpoint di creazione e aggiornamento, il body e gli header da inviare saranno gli stessi e sono condivisi qui sotto.
URL
Dovrai fornirci lâurl per eseguire la richiesta, uno solo se farai un upsert, due url se farai creazione e aggiornamento divisi
Header
| Authorization: Bearer {{Token}} |
Body
Ti invieremo lâoggetto da creare/aggiornare in formato JSON con la sua relativa chiave, deal se è un deal, contact se è un contatto o lead se è un lead.
Ti invieremo lâid dellâoggetto se lo abbiamo, in ogni caso ti invieremo il numero di telefono.
Di solito gli unici campi obbligatori di questo body sono il nome, il cognome ed il numero di telefono, se il tuo CRM ne prevede altri, segnalacelo.
Se il tuo progetto prevede che AISA debba cambiare lo stage o la pipeline dellâoggetto, ti invieremo i rispettivi id nei campi stageId e pipelineId
|
{
"deal": { // può essere anche contact o lead
"id" : "",
"phoneNumber" : "",
"title": "",
"stageId": "",
"pipelineId": "",
"note": "",
"status": "",
...
}
}
|
Risposta
Non abbiamo bisogno che ci restituisca lâoggetto indietro, è sufficiente uno status code 200.
Gestione degli errori
Sia il webhook che gli endpoint, in caso di errore, dovranno rispettare queste regole per la gestione degli errori
Status code
| 400 |
Body
|
{
"code": 0, // intero
"message" : "...", // stringa
"fields" : ["", ""] // array di stringhe, questo field ci sarĂ solo se l'errore lo prevede, come ad esempio il code 3
}
|
| Code | Message | Significato |
|---|---|---|
| 1 | Contact already exists | Esiste giĂ un contatto con quel numero di telefono |
| 2 | Invalid object id | Lâid dellâoggetto non è valido, lâoggetto può essere contact, lead o deal |
| 3 | Missing required fields: ... | Non sono stati inviati dei fields obbligatori, i fields sono leggibili sia dal message che dal campo âfieldsâ presente nel body |
| 4 | Invalid value for fields: ... | Alcuni fields hanno dei valori non validi, i fields sono leggibili sia dal message che dal campo âfieldsâ presente nel body |
- il Team di AISA
Commenti
0 commenti
Questo articolo è chiuso ai commenti.