Webhooks & Intégrations

Connecte CreatorDesk aux outils que tu utilises déjà.

17 événements, signés HMAC, sans code via Zapier, Make ou n8n — ou via ton propre endpoint webhook. Synchronisation newsletter, sauvegarde de réservations, notifications Slack et bien plus.

Tester gratuitement

Comment ça fonctionne

Trois étapes de l'événement dans CreatorDesk à l'action dans l'outil cible.

1

Créer le webhook

Dans le Dashboard CreatorDesk sous Intégrations → Webhooks : saisis l'URL cible, sélectionne les événements, confirme l'AVV.

2

Configurer le receiver

Zapier, Make, n8n ou ton propre backend — l'essentiel est que l'endpoint puisse recevoir du JSON et vérifier le HMAC.

3

Action déclenchée

Dès qu'un événement se produit, CreatorDesk envoie le payload. Ton outil réagit automatiquement — tu n'as plus rien à faire.

Documentation technique

Tous les événements, headers, vérification HMAC, comportement de retry et troubleshooting — les mêmes snippets que ceux que nous montrons à nos utilisateurs existants.

Guides pas à pas

Des parcours de configuration concrets pour les outils les plus importants. Clique sur un service pour ouvrir le guide.

Événement recommandé client.created
Plateforme recommandée Zapier (Make.com / n8n en analogie)

Étape par étape

  1. 1

    Créer un Webhook dans CreatorDesk

    Dashboard → Intégrations → Webhooks → Nouveau Webhook. Sélectionne l'événement « client.created », laisse l'URL vide pour l'instant, confirme l'AVV et enregistre.

  2. 2

    Créer un nouveau Zap dans Zapier

    Trigger : « Webhooks by Zapier » → « Catch Hook » → Continue. Zapier affiche une URL unique — copie-la.

  3. 3

    Saisir l'URL dans le Webhook CreatorDesk

    Retourne au Webhook dans CreatorDesk, colle l'URL Zapier et enregistre.

  4. 4

    Déclencher le Webhook de test

    Clique sur « Test-Webhook » dans CreatorDesk. Dans Zapier, clique sur « Test Trigger » — le payload devrait arriver.

  5. 5

    Configurer l'action : MailerLite → Create/Update Subscriber

    Connecte le compte une seule fois via OAuth, puis mappe les champs (voir tableau ci-dessous).

  6. 6

    Exécuter le test de l'action + Publier

    Dans l'éditeur Zapier, « Test Action » — vérifie que tout arrive correctement dans l'outil cible. Puis clique sur « Publish » en haut à droite.

Mapping des champs

Champ CreatorDesk Champ MailerLite
client_email Email (obligatoire)
client_first_name Nom
client_last_name Custom-Field : Nom
client_phone Custom-Field : Téléphone
(statisch) Tags : creatordesk

Conseils

  • Zapier accepte sans vérification HMAC — l'URL du Catch Hook est déjà secrète.
  • Synchroniser plusieurs événements ? Crée un webhook et un Zap distincts par événement.
  • Fonctionne de la même façon avec Make.com ou n8n — le déclencheur y est respectivement un « Webhook » / « Generic Webhook », l'action est MailerLite.

Variante B — via un formulaire public

Inscription à la newsletter directement depuis un formulaire public — aucune création CRM nécessaire.

Événement déclencheur form.submitted
Avantage Champs du formulaire directement comme data.*
Champ CreatorDesk Champ MailerLite
data.email Email (obligatoire)
data.vorname Nom
(statisch) Tags : newsletter-signup
Événement recommandé client.created
Plateforme recommandée Zapier (Make.com / n8n en analogie)

Étape par étape

  1. 1

    Créer un Webhook dans CreatorDesk

    Dashboard → Intégrations → Webhooks → Nouveau Webhook. Sélectionne l'événement « client.created », laisse l'URL vide pour l'instant, confirme l'AVV et enregistre.

  2. 2

    Créer un nouveau Zap dans Zapier

    Trigger : « Webhooks by Zapier » → « Catch Hook » → Continue. Zapier affiche une URL unique — copie-la.

  3. 3

    Saisir l'URL dans le Webhook CreatorDesk

    Retourne au Webhook dans CreatorDesk, colle l'URL Zapier et enregistre.

  4. 4

    Déclencher le Webhook de test

    Clique sur « Test-Webhook » dans CreatorDesk. Dans Zapier, clique sur « Test Trigger » — le payload devrait arriver.

  5. 5

    Configurer l'action : Mailchimp → Add/Update Member to List

    Connecte le compte une seule fois via OAuth, puis mappe les champs (voir tableau ci-dessous).

  6. 6

    Exécuter le test de l'action + Publier

    Dans l'éditeur Zapier, « Test Action » — vérifie que tout arrive correctement dans l'outil cible. Puis clique sur « Publish » en haut à droite.

Mapping des champs

Champ CreatorDesk Champ Mailchimp
client_email Email Address (obligatoire)
client_first_name Merge-Field FNAME
client_last_name Merge-Field LNAME
(statisch) Tags : creatordesk

Conseils

  • L'action Mailchimp nécessite un Audience ID — à sélectionner une fois dans l'éditeur Zap.
  • Doublons : Mailchimp déduplique automatiquement par adresse e-mail.
  • Fonctionne de la même façon avec Make.com ou n8n — le déclencheur y est respectivement un « Webhook » / « Generic Webhook », l'action est Mailchimp.
Événement recommandé booking.confirmed
Plateforme recommandée Zapier (Make.com / n8n en analogie)

Étape par étape

  1. 1

    Créer un Webhook dans CreatorDesk

    Dashboard → Intégrations → Webhooks → Nouveau Webhook. Sélectionne l'événement « booking.confirmed », laisse l'URL vide pour l'instant, confirme l'AVV et enregistre.

  2. 2

    Créer un nouveau Zap dans Zapier

    Trigger : « Webhooks by Zapier » → « Catch Hook » → Continue. Zapier affiche une URL unique — copie-la.

  3. 3

    Saisir l'URL dans le Webhook CreatorDesk

    Retourne au Webhook dans CreatorDesk, colle l'URL Zapier et enregistre.

  4. 4

    Déclencher le Webhook de test

    Clique sur « Test-Webhook » dans CreatorDesk. Dans Zapier, clique sur « Test Trigger » — le payload devrait arriver.

  5. 5

    Configurer l'action : Brevo → Add or Update Contact

    Connecte le compte une seule fois via OAuth, puis mappe les champs (voir tableau ci-dessous).

  6. 6

    Exécuter le test de l'action + Publier

    Dans l'éditeur Zapier, « Test Action » — vérifie que tout arrive correctement dans l'outil cible. Puis clique sur « Publish » en haut à droite.

Mapping des champs

Champ CreatorDesk Champ Brevo
client_email EMAIL (obligatoire)
client_first_name FIRSTNAME
client_last_name LASTNAME
slot_date Attribut personnalisé SHOOTING_DATE

Conseils

  • Les listes Brevo doivent être créées au préalable dans Brevo — le Zap y fait référence via l'ID de liste.
  • Créer l'attribut personnalisé SHOOTING_DATE dans Brevo en tant que champ de date, sinon il sera enregistré comme texte.
  • Fonctionne de la même façon avec Make.com ou n8n — le déclencheur y est respectivement un « Webhook » / « Generic Webhook », l'action est Brevo.

Variante B — via un formulaire public

Soumissions de formulaire comme contacts Brevo avec tous les champs du formulaire comme attributs personnalisés.

Événement déclencheur form.submitted
Avantage Champs du formulaire directement comme data.*
Champ CreatorDesk Champ Brevo
data.email EMAIL (obligatoire)
data.vorname FIRSTNAME
data.nachname LASTNAME
data.* (alle Felder) Attribut personnalisé par question du formulaire
Événement recommandé booking.created
Plateforme recommandée Zapier (Make.com / n8n en analogie)

Étape par étape

  1. 1

    Créer un Webhook dans CreatorDesk

    Dashboard → Intégrations → Webhooks → Nouveau Webhook. Sélectionne l'événement « booking.created », laisse l'URL vide pour l'instant, confirme l'AVV et enregistre.

  2. 2

    Créer un nouveau Zap dans Zapier

    Trigger : « Webhooks by Zapier » → « Catch Hook » → Continue. Zapier affiche une URL unique — copie-la.

  3. 3

    Saisir l'URL dans le Webhook CreatorDesk

    Retourne au Webhook dans CreatorDesk, colle l'URL Zapier et enregistre.

  4. 4

    Déclencher le Webhook de test

    Clique sur « Test-Webhook » dans CreatorDesk. Dans Zapier, clique sur « Test Trigger » — le payload devrait arriver.

  5. 5

    Configurer l'action : ActiveCampaign → Create/Update Contact + Add Tag

    Connecte le compte une seule fois via OAuth, puis mappe les champs (voir tableau ci-dessous).

  6. 6

    Exécuter le test de l'action + Publier

    Dans l'éditeur Zapier, « Test Action » — vérifie que tout arrive correctement dans l'outil cible. Puis clique sur « Publish » en haut à droite.

Mapping des champs

Champ CreatorDesk Champ ActiveCampaign
email email (obligatoire)
customer_name firstName + lastName (Split)
phone phone
(statisch) Tag : creatordesk-lead

Conseils

  • Optionnel : 2e étape Zap « Add Contact to Automation » démarre un funnel de bienvenue.
  • Pour un Split propre : ajoute une étape Formatter dans Zapier entre le Webhook et l'action ActiveCampaign.
  • Fonctionne de la même façon avec Make.com ou n8n — le déclencheur y est respectivement un « Webhook » / « Generic Webhook », l'action est ActiveCampaign.

Variante B — via un formulaire public

Formulaire public directement comme lead ActiveCampaign — avec les champs du formulaire comme tags.

Événement déclencheur form.submitted
Avantage Champs du formulaire directement comme data.*
Champ CreatorDesk Champ ActiveCampaign
data.email email (obligatoire)
data.interesse Tag par champ d'intérêt
form.title Tag : form-<title>
Événement recommandé invoice.paid
Plateforme recommandée Zapier (Make.com / n8n en analogie)

Étape par étape

  1. 1

    Créer un Webhook dans CreatorDesk

    Dashboard → Intégrations → Webhooks → Nouveau Webhook. Sélectionne l'événement « invoice.paid », laisse l'URL vide pour l'instant, confirme l'AVV et enregistre.

  2. 2

    Créer un nouveau Zap dans Zapier

    Trigger : « Webhooks by Zapier » → « Catch Hook » → Continue. Zapier affiche une URL unique — copie-la.

  3. 3

    Saisir l'URL dans le Webhook CreatorDesk

    Retourne au Webhook dans CreatorDesk, colle l'URL Zapier et enregistre.

  4. 4

    Déclencher le Webhook de test

    Clique sur « Test-Webhook » dans CreatorDesk. Dans Zapier, clique sur « Test Trigger » — le payload devrait arriver.

  5. 5

    Configurer l'action : Slack → Send Channel Message

    Connecte le compte une seule fois via OAuth, puis mappe les champs (voir tableau ci-dessous).

  6. 6

    Exécuter le test de l'action + Publier

    Dans l'éditeur Zapier, « Test Action » — vérifie que tout arrive correctement dans l'outil cible. Puis clique sur « Publish » en haut à droite.

Mapping des champs

Champ CreatorDesk Champ Slack
invoice_number insérer dans le texte du message
total Montant dans le texte du message
client.name Nom du client dans le texte du message

Conseils

  • Template de message : 💰 Facture #{invoice_number} ({total}€) payée par {client.name}
  • Le channel est sélectionné lors de la connexion du compte Slack — un par Zap.
  • Fonctionne de la même façon avec Make.com ou n8n — le déclencheur y est respectivement un « Webhook » / « Generic Webhook », l'action est Slack.

Variante B — via un formulaire public

Notification « Nouvelle soumission de formulaire » directement dans le channel — très populaire pour la capture de leads.

Événement déclencheur form.submitted
Avantage Champs du formulaire directement comme data.*
Champ CreatorDesk Champ Slack
form.title Nom du formulaire dans le texte du message
data.email E-mail du contact dans le texte du message
submission_id ID de référence

1. Vue d'ensemble

Pour chaque événement abonné, CreatorDesk envoie un HTTP POST à l'URL cible configurée. Le body est en JSON, avec un en-tête signé HMAC-SHA256. En cas d'erreurs temporaires (5xx, timeout), un retry avec backoff exponentiel est effectué jusqu'à cinq fois (1m, 5m, 30m, 2h, 12h).

17 types d'événements sont actuellement disponibles. Tu t'abonnes par webhook uniquement à ceux dont tu as besoin — aucun n'est obligatoire.

2. En-têtes de requête

Chaque POST est envoyé avec ces en-têtes. Les en-têtes personnalisés définis dans la configuration du webhook sont fusionnés, mais ne peuvent pas écraser les en-têtes réservés X-CreatorDesk-*.

En-tête Exemple
Content-Typeapplication/json
X-CreatorDesk-Eventclient.created
X-CreatorDesk-Signaturesha256=a1b2c3...
X-CreatorDesk-Timestamp2026-05-12T09:30:00Z
X-CreatorDesk-Request-ID8d3f2e4a-1c5b-...
User-AgentCreatorDesk-Webhooks/1.0

3. Vérifier la signature HMAC

La chaîne signée est {timestamp}.{raw_body}. Avec le secret webhook, tu peux vérifier que le message provient bien de CreatorDesk. Utilise des comparaisons en temps constant (ex. hmac.compare_digest), pas ==.

Python (Flask / Django)

import hmac, hashlib

WEBHOOK_SECRET = "dein_secret_aus_creatordesk"

def verify(request):
    timestamp = request.headers["X-CreatorDesk-Timestamp"]
    received = request.headers["X-CreatorDesk-Signature"]  # "sha256=..."
    body = request.get_data()  # raw bytes, NICHT request.json

    message = f"{timestamp}.".encode() + body
    expected = "sha256=" + hmac.new(
        WEBHOOK_SECRET.encode(), message, hashlib.sha256
    ).hexdigest()

    if not hmac.compare_digest(expected, received):
        return "invalid signature", 401

    # Replay-Schutz: Timestamp darf nicht aelter als 5 min sein
    # → return 401 bei zu altem Timestamp

    return "ok", 200

Node.js (Express)

const crypto = require("crypto");
const WEBHOOK_SECRET = process.env.WEBHOOK_SECRET;

// WICHTIG: raw body capturen, nicht JSON-parsen vor verify
app.post("/webhook",
  express.raw({ type: "application/json" }),
  (req, res) => {
    const ts = req.headers["x-creatordesk-timestamp"];
    const received = req.headers["x-creatordesk-signature"];
    const body = req.body;  // Buffer

    const message = Buffer.concat([Buffer.from(ts + "."), body]);
    const expected = "sha256=" + crypto
      .createHmac("sha256", WEBHOOK_SECRET)
      .update(message).digest("hex");

    if (!crypto.timingSafeEqual(
        Buffer.from(expected), Buffer.from(received))) {
      return res.status(401).send("invalid signature");
    }

    const payload = JSON.parse(body.toString());
    // ... verarbeiten
    res.send("ok");
});

PHP

<?php
$secret = getenv("WEBHOOK_SECRET");
$body = file_get_contents("php://input");  // raw bytes
$ts = $_SERVER["HTTP_X_CREATORDESK_TIMESTAMP"];
$received = $_SERVER["HTTP_X_CREATORDESK_SIGNATURE"];

$message = $ts . "." . $body;
$expected = "sha256=" . hash_hmac("sha256", $message, $secret);

if (!hash_equals($expected, $received)) {
    http_response_code(401);
    exit("invalid signature");
}

$payload = json_decode($body, true);
// ... verarbeiten
echo "ok";

4. Exemples de payloads

Un exemple représentatif par catégorie d'événement. Les champs varient légèrement selon l'événement — référence complète par type d'événement via le même payload builder, ici uniquement des extraits.

client.created — Nouveau contact dans le CRM
{
  "id": 42,
  "uuid": "8d3f2e4a-1c5b-4d6e-9a8b-7c5d4e3f2a1b",
  "email": "[email protected]",
  "name": "Anna Beispiel",
  "first_name": "Anna",
  "last_name": "Beispiel",
  "company": null,
  "phone": "+49 123 456789",
  "tags": ["Hochzeit", "2026"],
  "project_count": 0,
  "source": "instagram",
  "client_number": "K-2026-0042",
  "created_at": "2026-05-12T09:30:00Z"
}
booking.confirmed — Rendez-vous confirmé
{
  "id": 17,
  "customer_name": "Anna Beispiel",
  "email": "[email protected]",
  "phone": "+49 123 456789",
  "slot_date": "2026-08-14",
  "slot_time_start": "10:00:00",
  "project_id": 38,
  "quote_id": null,
  "booked_at": "2026-05-12T09:15:00Z",
  "confirmed_at": "2026-05-12T09:30:00Z"
}
invoice.paid — Facture payée
{
  "id": 89,
  "invoice_number": "R-2026-0089",
  "title": "Hochzeit Anna & Tobias",
  "status": "paid",
  "total": "1450.00",
  "subtotal": "1218.49",
  "issue_date": "2026-05-01",
  "due_date": "2026-05-31",
  "paid_at": "2026-05-12T09:30:00Z",
  "client": {
    "id": 42,
    "email": "[email protected]",
    "name": "Anna Beispiel",
    "first_name": "Anna",
    "last_name": "Beispiel"
  },
  "project_id": 38,
  "quote_id": 23
}
order.paid — Commande de galerie payée
{
  "id": 156,
  "order_number": "GS-2026-00156",
  "gallery_id": 73,
  "customer_email": "[email protected]",
  "customer_name": "Anna Beispiel",
  "total": "199.00",
  "payment_method": "stripe",
  "status": "paid",
  "items": [
    {"id": 412, "product_type": "digital_image_package",
     "quantity": 1, "unit_price": "199.00"}
  ],
  "paid_at": "2026-05-12T09:30:00Z"
}
gallery.published — Galerie publiée
{
  "id": 73,
  "uuid": "f6146aa2-0335-4af2-8c0f-cfcbb0f7d3d0",
  "title": "Hochzeit Anna & Tobias",
  "status": "published",
  "distribution_mode": "shop",
  "project_id": 38,
  "image_count": 342,
  "allow_sale": true,
  "published_at": "2026-05-12T09:30:00Z"
}
Les 17 types d'événements — liste complète
client.created Ein Kontakt wurde im CRM angelegt.
client.updated Felder eines Kontakts wurden geaendert.
client.deleted Ein Kontakt wurde geloescht (DSGVO-Loeschungsrecht — Empfaenger sollte lokale Kopie entfernen).
booking.created Ein Kunde hat ueber den Buchungs-Kalender eine Anfrage gestellt (noch nicht bestaetigt).
booking.confirmed Ein Termin wurde bestaetigt (SlotBooking.confirmed_at gesetzt).
project.created Ein neues Projekt wurde im CRM angelegt.
project.status_changed Der Status eines Projekts hat sich veraendert.
quote.created Ein neues Angebot wurde erstellt.
quote.accepted Der Kunde hat ein Angebot akzeptiert.
invoice.issued Eine Rechnung wurde an den Kunden geschickt.
invoice.paid Eine Rechnung wurde als bezahlt markiert.
contract.signed Ein Vertrag wurde vom Kunden unterschrieben.
gallery.published Eine Galerie hat den Status published erhalten.
gallery.delivered Galerie.delivered_at wurde gesetzt — Lieferschein ist raus.
order.paid Ein Endkunde hat eine Galerie-Bestellung bezahlt.
order.shipped Eine Galerie-Bestellung mit Druck-Artikeln wurde versandt.
form.submitted Ein Public-Formular wurde abgeschickt — Payload enthaelt alle Felder.

5. Zapier / Make / n8n — Quickstart

Zapier

  1. Nouveau Zap → Déclencheur : Webhooks by Zapier
  2. Événement : Catch Hook → Continuer
  3. Copier l'URL générée
  4. Créer un nouveau webhook dans CreatorDesk avec cette URL
  5. Envoyer un événement de test depuis CreatorDesk, déclencher le test du Zap
Documentation officielle →

Make (Integromat)

  1. Nouveau Scenario → Module Webhook
  2. Custom Webhook → Add → Save
  3. Copier l'URL du webhook
  4. Créer un nouveau webhook dans CreatorDesk avec cette URL
  5. Make attend le premier POST de test — envoyer un événement de test
Documentation officielle →

n8n

  1. Nouveau Workflow → Nœud déclencheur Webhook
  2. Method : POST, chemin au choix
  3. Copier l'URL de test (ou l'URL de production après activation)
  4. Créer un nouveau webhook dans CreatorDesk avec cette URL
  5. Déclencher l'événement de test
Documentation officielle →
Conseil Zapier/Make/n8n ne vérifient pas automatiquement la signature HMAC. Pour une utilisation en production, intègre un filtre ou une étape de fonction qui vérifie la signature — sinon n'importe qui peut envoyer des événements falsifiés via l'URL.

6. Comportement de retry

Response Comportement
2xxSuccès, failure_count = 0
4xx (außer 408)Erreur permanente, pas de nouvel essai — vérifier la configuration du récepteur
5xx / 408 / TimeoutBackoff exponentiel : 1 min → 5 min → 30 min → 2 h → 12 h (5 tentatives max.)
5 échecs consécutifsLe webhook est automatiquement désactivé

Timeout HTTP par tentative : 10 secondes. Conçois ton endpoint récepteur de façon à ce qu'il retourne un 2xx en moins de 10 s — et effectue les traitements lourds de manière asynchrone (queue, worker en arrière-plan).

7. Dépannage

Le webhook n'arrive pas
  • Vérifier : le webhook est-il actif ? (la vue détail affiche un badge de statut)
  • Vérifier : l'événement concerné est-il bien abonné ?
  • Dans le journal de livraison : y a-t-il une entrée pour cet événement ?
  • Si non : il est possible que ton code existant n'ait pas exécuté le save déclencheur de l'événement (ex. .update() au lieu de .save()).
Le statut de livraison indique failed
  • Clique sur l'entrée dans le journal de livraison → l'extrait du corps de la réponse affiche l'erreur
  • 401 du récepteur : la vérification HMAC ne correspond pas — secret incorrect ou le corps a été parsé au lieu d'être vérifié en raw
  • 404 : URL de destination inaccessible ou chemin incorrect
  • 5xx du récepteur : ton endpoint plante — vérifier les logs du récepteur
  • Re-déclenchement manuel via le bouton Réessayer dans la vue détaillée
Le webhook a été désactivé automatiquement

Après 5 erreurs consécutives, le webhook est automatiquement désactivé afin d'éviter des tentatives infinies sur des récepteurs défaillants. Corrige l'erreur, puis réactive-le via Activer dans la vue détaillée — le failure_count est alors remis à 0.

Événements en double

Normalement impossible — lors des transitions de statut, nous ne déclenchons l'événement qu'en cas de vrai changement (ancien != nouveau). Si cela se produit quand même : vérifie si plusieurs webhooks envoient le même événement vers la même URL.

Idempotence côté récepteur : utilise l'en-tête X-CreatorDesk-Request-ID comme clé de déduplication. Un re-déclenchement manuel génère un NOUVEL identifiant de requête ; c'est intentionnel — tu veux vraiment effectuer une nouvelle livraison.

8. RGPD

Les webhooks sortants transmettent des données clients (nom, e-mail, téléphone éventuel) à un destinataire externe. En tant que photographe, tu es responsable de t'assurer qu'un contrat de sous-traitance (DPA) est en place avec le destinataire — ou que le destinataire est ton propre système.

Lors de la création d'un webhook dans le CRM, tu le confirmes via une case à cocher. Sans confirmation du DPA, le webhook ne peut pas être activé.

Minimisation des données : les payloads ne contiennent que le strict nécessaire par événement. Les adresses et numéros de téléphone ne sont délibérément pas transmis s'ils ne font pas explicitement partie de l'événement.

Droit de suppression des clients finaux : lors d'un Client.delete, nous envoyons automatiquement client.deleted avec l'e-mail à tous les webhooks actifs — afin que le receiver puisse supprimer sa copie locale.

FAQ

Que se passe-t-il si mon endpoint est indisponible ?

CreatorDesk effectue des retries en cas d'erreurs temporaires (5xx, timeout) avec un backoff exponentiel : 1 minute → 5 minutes → 30 minutes → 2 heures → 12 heures. Après 5 échecs consécutifs, le webhook est automatiquement désactivé pour que tu t'en rendes compte.

Comment m'assurer qu'un webhook provient bien de CreatorDesk ?

Chaque requête est signée en HMAC-SHA256. Tu vérifies la signature avec ton secret webhook — nous fournissons des snippets de code pour Python, Node.js et PHP plus haut. Zapier/Make ne vérifient pas automatiquement ; tu y ajoutes une étape de filtre.

Quel niveau de plan me faut-il ?

Les webhooks sont inclus dans tous les niveaux de plan — même en formule gratuite. Aucun add-on supplémentaire nécessaire.

Puis-je aussi extraire des données de CreatorDesk plutôt que de recevoir uniquement du push ?

Pour l'instant, l'intégration est en push uniquement (webhooks). Une API REST pull est en cours de développement — si tu en as concrètement besoin, fais-le nous savoir et nous la prioriserons.

Quels sont les 17 événements disponibles ?
client.created — Ein Kontakt wurde im CRM angelegt.
client.updated — Felder eines Kontakts wurden geaendert.
client.deleted — Ein Kontakt wurde geloescht (DSGVO-Loeschungsrecht — Empfaenger sollte lokale Kopie entfernen).
booking.created — Ein Kunde hat ueber den Buchungs-Kalender eine Anfrage gestellt (noch nicht bestaetigt).
booking.confirmed — Ein Termin wurde bestaetigt (SlotBooking.confirmed_at gesetzt).
project.created — Ein neues Projekt wurde im CRM angelegt.
project.status_changed — Der Status eines Projekts hat sich veraendert.
quote.created — Ein neues Angebot wurde erstellt.
quote.accepted — Der Kunde hat ein Angebot akzeptiert.
invoice.issued — Eine Rechnung wurde an den Kunden geschickt.
invoice.paid — Eine Rechnung wurde als bezahlt markiert.
contract.signed — Ein Vertrag wurde vom Kunden unterschrieben.
gallery.published — Eine Galerie hat den Status published erhalten.
gallery.delivered — Galerie.delivered_at wurde gesetzt — Lieferschein ist raus.
order.paid — Ein Endkunde hat eine Galerie-Bestellung bezahlt.
order.shipped — Eine Galerie-Bestellung mit Druck-Artikeln wurde versandt.
form.submitted — Ein Public-Formular wurde abgeschickt — Payload enthaelt alle Felder.
Est-ce conforme au RGPD ?

En tant que photographe, tu es responsable d'avoir un contrat de sous-traitance (DPA) avec le destinataire du webhook — ou le destinataire est ton propre système. Lors de la création d'un webhook, tu le confirmes via une case à cocher. Pour les suppressions de contacts, nous envoyons automatiquement un événement client.deleted afin que le destinataire puisse supprimer sa copie.

Configuré en 5 minutes

Créer un webhook, s'abonner aux événements, connecter une action dans Zapier/Make/n8n — c'est tout. Pas besoin de conseil, la documentation suffit.