Publiez automatiquement sur n’importe quel site
Suiko ne connecte pas encore votre CMS ? Il prévient votre outil à chaque mise à jour approuvée, avec le contenu prêt à publier. Un scénario Make ou n8n, ou votre propre code, publie sur Webflow, Shopify, HubSpot, Drupal, un CMS maison, puis dit à Suiko que la page est en ligne. Aucun connecteur à attendre.
Comment ça marche, de bout en bout
01Vous approuvez
Dans Suiko, comme d’habitude : la proposition relue, les faits vérifiés, un clic.
02Suiko prévient
Un appel POST part vers l’adresse de votre choix, avec le titre, le HTML, les balises et les questions fréquentes de la page.
03Votre outil publie
Make, n8n ou votre code met la page à jour sur votre site, à sa façon.
04Il confirme
Un appel à l’API marque la page publiée dans Suiko ; elle compte dans votre pack et apparaît dans Performances.
Les événements du webhook
Suiko appelle votre adresse à chaque changement d’état d’une proposition. Sur les trois premiers, le JSON porte le contenu complet.
proposition.deposeeLa machine a déposé une proposition, à relire.proposition.approuveeUn relecteur l’a approuvée : c’est le moment de publier.proposition.publieeLa page est en ligne (par un connecteur, ou par votre appel à l’API).proposition.rejeteeLa proposition a été rejetée.proposition.correction_demandeeUn relecteur demande une correction ; une nouvelle version suivra.proposition.conflitLa page a changé sur le site entre-temps ; la proposition attend une décision.proposition.echec_publicationUn connecteur n’a pas réussi à publier.
Le JSON envoyé
Même forme pour tous les événements ; le bloc content n’est présent que sur déposée, approuvée et publiée. L’en-tête X-Suiko-Event répète le nom de l’événement.
{
"event": "proposition.approuvee",
"proposal_id": "3f1c…",
"version": 1,
"status": "approuvee",
"page_slug": "blog/japan-rail-pass",
"page_url": "https://www.kankou.example/blog/japan-rail-pass",
"page_title": "Japan Rail Pass : prix, fonctionnement et rentabilité",
"content": {
"title": "Japan Rail Pass : prix, fonctionnement et rentabilité",
"html": "<h2>Prix du pass en 2026</h2><p>29 650 ¥ pour 7 jours…</p>",
"meta_title": "Japan Rail Pass 2026 : prix et rentabilité | Kankou",
"meta_description": "Prix, fonctionnement et rentabilité du Japan Rail Pass…",
"faq": [{ "question": "Le pass est-il rentable pour 7 jours ?", "answer": "Dès un aller-retour Tokyo-Kyoto…" }]
},
"url": "https://app.getsuiko.com/updates/3f1c…",
"at": "2026-10-31T09:12:00.000Z"
}La signature
Chaque appel porte l’en-tête X-Suiko-Signature : « sha256= » suivi du HMAC SHA-256 du corps brut, calculé avec le secret affiché dans Paramètres > API. Vérifiez-le si votre adresse est publique ; Make et n8n s’en passent le plus souvent. En cas d’échec, Suiko réessaie après 5 secondes puis 20 secondes.
// Node.js : vérifier X-Suiko-Signature avec le secret de Paramètres > API
import { createHmac, timingSafeEqual } from 'node:crypto';
const expected = 'sha256=' + createHmac('sha256', process.env.SUIKO_WEBHOOK_SECRET).update(rawBody).digest('hex');
const ok = timingSafeEqual(Buffer.from(expected), Buffer.from(req.headers['x-suiko-signature'] ?? ''));Avec Make
- 1.Dans Make, ajoutez un module Webhooks > Custom webhook et copiez son adresse.
- 2.Dans Suiko, Paramètres > API, collez l’adresse, enregistrez, puis Envoyer un essai : Make reçoit un exemple et reconnaît les champs.
- 3.Ajoutez un filtre sur
eventégal àproposition.approuvee. - 4.Ajoutez le module de votre site (Webflow, Shopify, HubSpot, WordPress…) et faites correspondre
content.title,content.html,content.meta_title,content.meta_description. - 5.Terminez par un module HTTP > Make a request : POST sur
/api/mises-a-jour/{{proposal_id}}/publiee, en-têteAuthorization: Bearersuivi de votre clé d’API.
Avec n8n
- 1.Ajoutez un nœud Webhook (méthode POST) et copiez son adresse de production.
- 2.Dans Suiko, Paramètres > API, collez l’adresse, enregistrez, puis Envoyer un essai pour voir les champs dans n8n.
- 3.Un nœud IF sur
{{ $json.event }}égal àproposition.approuvee. - 4.Le nœud de votre site (Webflow, Shopify, HubSpot, WordPress, ou HTTP Request vers votre CMS) avec les champs de
content. - 5.Un nœud HTTP Request : POST sur
/api/mises-a-jour/{{ $json.proposal_id }}/publieeavec votre clé d’API. Pour vérifier la signature, un nœud Crypto (HMAC SHA-256, secret de Paramètres > API) comparé à l’en-tête.
L’API
Base : https://app.getsuiko.com. Chaque appel porte l’en-tête Authorization: Bearer chk_…. Les réponses sont en JSON.
GET/api/mises-a-jour?statut=approuveeLes propositions de votre organisation, filtrées par état (plusieurs états séparés par des virgules) et par date (depuis=…).GET/api/mises-a-jour/{id}Une proposition avec son contenu prêt à publier, le même bloc content que le webhook.POST/api/mises-a-jour/{id}/publieeMarque une proposition approuvée comme publiée, avec en option { "url": "…" } de la page en ligne.
curl -H "Authorization: Bearer chk_…" \
https://app.getsuiko.com/api/mises-a-jour?statut=approuveeLes clés
Une clé d’API se crée dans Paramètres > API par un administrateur ; elle s’affiche une seule fois. Elle vaut pour toute l’organisation et se révoque d’un clic. Le secret du webhook est au même endroit.
Bon à savoir
- Le webhook exige une adresse https. Un appel qui échoue est retenté deux fois, puis journalisé ; l’application, elle, n’attend jamais votre serveur.
- Le HTML du bloc content est celui que les connecteurs publient : titres, paragraphes, listes, tableaux, questions fréquentes, sans mise en page.
- Une page approuvée est décomptée de votre pack à l’approbation, qu’elle soit publiée par un connecteur, par votre outil ou en copiant le texte.
- Webflow, Shopify, Drupal, Prismic, un CMS maison : si vous préférez un connecteur natif, nous le développons sur demande, sans supplément.
Essayez sur trois de vos pages
Le webhook et l’API sont compris dans l’essai gratuit : branchez Make ou n8n dès la première proposition.