· 4 min · TextMeFlow Team

WhatsApp-meldingen versturen vanuit Trello met webhooks

Teams die met Trello werken missen vaak het moment waarop een kaart verschuift naar "Klaar" of "Actie vereist". Een board-notificatie in de Trello-app verdrinkt tussen de andere meldingen, en niet iedereen heeft Trello continu open staan. WhatsApp wel — dat lezen mensen binnen enkele minuten. In dit artikel bouw je een koppeling die automatisch een WhatsApp-bericht stuurt zodra een kaart van lijst wisselt, zonder tussenliggende automatiseringstool.

Waarom rechtstreeks via webhooks

Trello heeft geen native WhatsApp-integratie, en de meeste teams grijpen dan naar Zapier of Make. Dat werkt, maar kost een extra abonnement en een extra laag die kan haperen. Trello's eigen webhook-systeem stuurt elke boardwijziging al als JSON naar een URL van jouw keuze — je hebt alleen een klein stukje code nodig dat die payload vertaalt naar een oproep richting de TextMeFlow API. Voor wie liever geen aparte tool onderhoudt, of wie al met n8n/Make werkt en dit specifieke geval simpeler wil houden, is dit de directe route. (Voor de meeste andere koppelingen — CRM's, formulieren, spreadsheets — blijft n8n, Make of Zapier vaak sneller opzetten.)

Stap 1: een Trello webhook registreren

Trello vereist een POST-call naar hun eigen API om een webhook aan te maken. Je hebt een API-key en -token nodig (via trello.com/app-key), en het ID van het board dat je wil volgen.

curl -X POST "https://api.trello.com/1/webhooks" \
  -d "key=JOUW_API_KEY" \
  -d "token=JOUW_TOKEN" \
  -d "callbackURL=https://jouwdomein.tld/trello-webhook" \
  -d "idModel=BOARD_ID" \
  -d "description=WhatsApp meldingen"

Belangrijk: Trello stuurt eerst een HEAD-request naar je callbackURL om te controleren of die bereikbaar is, vóórdat de webhook geregistreerd wordt. Je endpoint moet dus al live staan en op een HEAD-request minstens een 200 teruggeven.

Stap 2: de payload filteren op kaartverplaatsing

Trello stuurt een event voor élke boardwijziging — een nieuw label, een gewijzigde beschrijving, een verplaatste kaart. Je wil alleen reageren op action.type === "updateCard" waarbij listBefore en listAfter verschillen.

// routes/web.php of een aparte controller
Route::post('/trello-webhook', function (Request $request) {
    $action = $request->input('action');

    if (($action['type'] ?? null) !== 'updateCard') {
        return response()->json(['ok' => true]);
    }

    $listBefore = $action['data']['listBefore']['name'] ?? null;
    $listAfter  = $action['data']['listAfter']['name'] ?? null;

    if (! $listAfter || $listBefore === $listAfter) {
        return response()->json(['ok' => true]);
    }

    $cardName = $action['data']['card']['name'] ?? 'Onbekende kaart';

    Http::withToken(config('services.textmeflow.api_key'))
        ->post('https://textmeflow.eu/api/messages', [
            'to' => config('services.trello_notify.phone'),
            'body' => "Kaart \"{$cardName}\" is verplaatst naar \"{$listAfter}\".",
        ]);

    return response()->json(['ok' => true]);
});

Wil je alleen een melding bij een specifieke lijst — bijvoorbeeld enkel wanneer een kaart in "Actie vereist" belandt — voeg dan een simpele if ($listAfter !== 'Actie vereist') return; toe vóór de API-call.

Stap 3: koppel het aan een groep in plaats van één nummer

Eén hardcoded telefoonnummer is prima voor een test, maar in de praktijk wil je vaak dat het hele team het bericht ziet. Stuur in dat geval naar een WhatsApp-groep in plaats van een 1-op-1 nummer, of loop over een lijst van teamleden en verstuur individueel. Hou hierbij rekening met de rate limits en verzendstatussen van de API — bij meerdere ontvangers per event verstuur je best sequentieel met een korte pauze, niet in een parallelle burst.

Beveilig het endpoint

Trello ondertekent zijn webhook-payloads niet standaard met HMAC zoals TextMeFlow dat wel doet voor inkomende WhatsApp-events. Voeg daarom minstens een geheime query-parameter toe aan je callbackURL (bijvoorbeeld ?secret=xxxx) en controleer die bij elke request, zodat niet eender wie jouw endpoint kan aanroepen met valse payloads. Als je zelf ook inkomende WhatsApp-webhooks verwerkt, gebruik daar wél de HMAC-verificatie die TextMeFlow standaard aanbiedt — zie de uitleg over webhook-signatures verifiëren.

Verder automatiseren

Dezelfde structuur werkt voor andere Trello-events: een nieuwe kaart in een lijst (createCard), een toegevoegd label, of een naderende due date. Combineer het met de bestaande webhook-events van TextMeFlow als je ook de andere kant op wil communiceren — bijvoorbeeld een klant die via WhatsApp antwoordt en dat automatisch als comment op de juiste Trello-kaart plaatst.

Voor teams die dit soort koppelingen zonder code willen bouwen: dat kan ook prima via Make of n8n, waar Trello als kant-en-klare trigger beschikbaar is. De directe route hierboven is vooral interessant als je al een backend hebt draaien en geen extra abonnement wil.

Aan de slag

Wil je dit zelf uittesten? Het gratis plan van TextMeFlow geeft je 50 berichten per maand, zonder vervaldatum — genoeg om deze Trello-koppeling volledig te bouwen en te testen voor je iets betaalt. Start gratis.

Zelf WhatsApp-berichten versturen via API?

Gratis voor altijd tot 50 berichten/maand. QR scannen en binnen 5 minuten verstuur je je eerste bericht.

Gratis voor altijd