API
Accedi
Documentazione › Webhook in ingresso › Webhook in ingresso (Integrazioni)
POST

Webhook in ingresso (Integrazioni)

POSThttps://app.sendapp.ai/api/integrations/webhook/{token}
Ricevi contatti da piattaforme esterne (Shopify, WooCommerce, HubSpot, Klaviyo, Pipedrive e altre). A ogni evento estraiamo il contatto (nome / telefono / email), lo creiamo o aggiorniamo in SendApp e lo taggiamo con la piattaforma di provenienza (es. shopify). Non viene inviato alcun messaggio: raggiungi poi quei contatti con una Campagna (per tag) o via API.
Il payload può essere un JSON qualsiasi: cerchiamo ricorsivamente le chiavi di telefono, email e nome a qualunque profondità. Risposta tipica: { "status": "ok", "contact": { "id": 12345 } }.
Se non troviamo né telefono né email, rispondiamo 200 con status: ignored, così la piattaforma di origine mantiene il webhook attivo.
Parametri
token obbligatorio
Token dell'account, nel path dell'URL. Determina quale account riceve i contatti.
source opzionale
Query string, es. ?source=shopify. Usata come tag del contatto; in mancanza si usa lo User-Agent.
Richiesta
curl -X POST 'https://app.sendapp.ai/api/integrations/webhook/YOUR_ACCOUNT_TOKEN?source=shopify' \
  -H 'Content-Type: application/json' \
  -d '{
    "email": "jon@example.com",
    "customer": {
      "first_name": "Jon",
      "last_name": "Snow",
      "phone": "+391234567890"
    }
  }'
<?php
$ch = curl_init('https://app.sendapp.ai/api/integrations/webhook/YOUR_ACCOUNT_TOKEN?source=shopify');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode([
        'email'    => 'jon@example.com',
        'customer' => ['first_name' => 'Jon', 'last_name' => 'Snow', 'phone' => '+391234567890'],
    ]),
]);
echo curl_exec($ch);
curl_close($ch);
const res = await fetch('https://app.sendapp.ai/api/integrations/webhook/YOUR_ACCOUNT_TOKEN?source=shopify', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    email: 'jon@example.com',
    customer: { first_name: 'Jon', last_name: 'Snow', phone: '+391234567890' }
  })
});
console.log(await res.json());
Risposta (200 OK)
{
  "status": "ok",
  "contact": {
    "id": 4023
  }
}
Errore
{
  "status": "error",
  "message": "Unknown webhook token"
}