Webhooks
Trigger AppPilot-flows vanuit je integratie met een eventnaam, in plaats van zelf te pollen.
Zo werkt het
De publieke External API biedt POST /v1/webhooks/trigger (scope webhooks.write). Je stuurt een eventnaam; Appficient matcht die op AppPilot-triggers (of custom keys) en start de bijbehorende runs.
Voor endpointdetails zie ook de referentie Webhooks API.
curl -sS -X POST https://api.appficient.nl/v1/webhooks/trigger \
-H "Authorization: Bearer apf_jouw_key_hier" \
-H "Content-Type: application/json" \
-d '{
"event": "invoice.paid",
"entity_type": "invoice",
"entity_id": 522,
"data": { "guid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }
}'Request en response
Request body (verplicht: event; optioneel: data, entity_type, entity_id):
{
"event": "invoice.paid",
"entity_type": "invoice",
"entity_id": 522,
"data": {
"guid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}Response:
{
"data": {
"event": "invoice.paid",
"matched": 1,
"runs": [
{
"flow_guid": "c9d0e1f2-a3b4-5678-9012-789012345678",
"run_guid": "d0e1f2a3-b4c5-6789-0123-890123456789",
"status": "queued"
}
]
},
"meta": {}
}Events
Ingebouwde eventnamen. Extra custom keys worden ook geaccepteerd.
| Event | Wanneer |
|---|---|
ticket.inbound_message | Inbound ticketbericht ontvangen |
ticket.created | Nieuw ticket aangemaakt |
ticket.status_changed | Ticketstatus gewijzigd |
ticket.closed | Ticket gesloten |
ticket.message | Ticketbericht geplaatst |
ticket.stale | Ticket te lang zonder opvolging |
quote.fase_changed | Offerte van fase gewisseld |
quote.viewed | Offerte bekeken |
quote.accepted | Offerte geaccepteerd |
quote.created | Offerte aangemaakt |
quote.converted_to_project | Offerte omgezet naar project |
quote.silent | Offerte zonder reactie |
deal.won | Deal gewonnen |
deal.lost | Deal verloren |
deal.phase_changed | Deal van fase gewisseld |
deal.quote_accepted | Deal-offerte geaccepteerd |
deal.created | Deal aangemaakt |
deal.stalled | Deal vastgelopen |
deal.phase_idle | Deal te lang in dezelfde fase |
deal.close_due | Deal-sluitdatum nabij |
deal.no_followup | Deal zonder follow-up |
sales.document_sent | Verkoopdocument verstuurd |
invoice.created | Factuur aangemaakt |
invoice.credited | Factuur gecrediteerd |
invoice.paid | Factuur betaald |
invoice.late | Factuur te laat |
project.created | Project aangemaakt |
project.completed | Project afgerond |
project.status_changed | Projectstatus gewijzigd |
project.phase_completed | Projectfase afgerond |
workorder.completed | Werkbon afgerond |
customer.created | Nieuwe klant aangemaakt |
customer.updated | Klant bijgewerkt |
customer.first_invoice_paid | Eerste factuur van een klant betaald |
customer.inactive | Klant inactief |
customer.no_followup | Klant zonder follow-up |
customer.payment_overdue | Betaling van een klant vervallen |
subscription.expiring | Abonnement verloopt |
mail.unanswered | Mail zonder antwoord |
document.draft | Document als concept |
work.recurring | Terugkerend werk |
planning.scheduled | Planning ingepland |
planning.rescheduled | Planning verzet |
planning.updated | Planning bijgewerkt |
planning.unscheduled | Planning uit de agenda gehaald |
planning.deleted | Planning verwijderd |
Betrouwbaarheid
- Rate limit op deze route: 30/minuut.
- Verwerk runs idempotent aan jouw kant als je dezelfde trigger opnieuw stuurt.