over4u

Koppelen via de API

Laat je eigen software, een script of een dienst als Zapier, Make of Power Automate met over4u praten. Lezen wat er openstaat, punten aanmaken en bijwerken, en een bericht krijgen als er iets verandert.

In het kort

Een sleutel maken

Ga in over4u naar Instellingen → Sleutels voor Claude en scripts en maak een sleutel. Kies alleen lezen of lezen en schrijven. Je ziet de sleutel één keer; wij bewaren alleen een afdruk ervan. Uitzetten of verwijderen kan op dezelfde plek, en je ziet er wanneer een sleutel voor het laatst is gebruikt.

Stuur de sleutel mee met elke aanroep:

Authorization: Bearer hub_<id>.<geheim>

Het adres begint met https://app.over4u.com/api/agent. Alles gaat over https en in JSON.

Wat je kunt aanroepen

MethodePadWat het doet
GET/Wat deze sleutel mag, en de lijst met paden
GET/bordenAlle borden, met hun id
GET/puntenPunten zoeken. Filters: bord, status, eigenaar, zoek, open=1, limiet (hooguit 200)
GET/punten/:idEén punt met de eigen kolommen, de deelstappen en de reacties
POST/puntenEen punt aanmaken: bord, titel, en naar keuze omschrijving, eigenaar, deadline, prioriteit
PATCH/punten/:idTitel, omschrijving, status of deadline bijwerken
POST/punten/:id/reactiesEen reactie bij het punt zetten: tekst
GET/meldingenDe laatste 100 meldingen met status en reactietermijn
GET/projectenProjecten met klant, fase en streefdatum
GET/overlegWat te laat is, wat deze week moet en de openstaande besluiten

Statussen zijn NIEUW, GEPLAND, IN_UITVOERING, WACHT_OP, AFGEROND en VERVALLEN; op een verkoopbord LEAD, CONTACT, OFFERTE, GEWONNEN en VERLOREN. Prioriteiten zijn HOOG, NORMAAL en LAAG. Een datum geef je als 2026-11-30.

Voorbeelden

Wat staat er open op een bord?

curl -H "Authorization: Bearer $SLEUTEL" \
  "https://app.over4u.com/api/agent/punten?bord=BORD_ID&open=1"

Een punt aanmaken:

curl -X POST -H "Authorization: Bearer $SLEUTEL" -H "Content-Type: application/json" \
  -d '{"bord":"BORD_ID","titel":"Offerte nabellen","eigenaar":"Sanne","deadline":"2026-11-30"}' \
  "https://app.over4u.com/api/agent/punten"

Een punt afronden en erbij zetten waarom:

curl -X PATCH -H "Authorization: Bearer $SLEUTEL" -H "Content-Type: application/json" \
  -d '{"status":"AFGEROND"}' "https://app.over4u.com/api/agent/punten/PUNT_ID"

curl -X POST -H "Authorization: Bearer $SLEUTEL" -H "Content-Type: application/json" \
  -d '{"tekst":"Verwerkt door de nachtelijke import."}' "https://app.over4u.com/api/agent/punten/PUNT_ID/reacties"

Wat je terugkrijgt als het misgaat

CodeBetekenis
400De invoer klopt niet; in error staat wat er mis is
401Geen of een onbekende sleutel, of de sleutel is uitgezet
403De sleutel mag alleen lezen
404Het punt of bord bestaat niet (in jouw organisatie)
429Te veel aanroepen kort na elkaar; wacht even en probeer opnieuw

Een sleutel ziet alleen de gegevens van zijn eigen organisatie. Elke wijziging via een sleutel staat in het logboek van het punt, met de naam van de sleutel erbij.

Berichten ontvangen: webhooks

Koppel bij Instellingen → Slack, Teams en webhooks een eigen adres (https). Kies daarna op een bord onder Automatiseren wanneer er een bericht heen moet, bijvoorbeeld “als de status Afgerond wordt”. Je adres krijgt dan een POST met deze inhoud:

{
  "gebeurtenis": "STATUS_WORDT",
  "titel": "Offerte Van Dijk",
  "tekst": "Status is nu Afgerond — bord Verkoop",
  "link": "https://app.over4u.com/w/BORD_ID?punt=PUNT_ID",
  "punt": { "id": "PUNT_ID", "titel": "Offerte Van Dijk", "status": "AFGEROND", "bord": "Verkoop" },
  "tijd": "2026-11-03T09:15:00.000Z"
}

Mogelijke gebeurtenissen: AANGEMAAKT, STATUS_WORDT, EIGENAAR_WIJZIGT, VELD_WORDT, DEADLINE_NADERT, DEADLINE_VERSTREKEN en PROEF (het proefbericht).

Controleren dat het bericht van over4u komt

Bij het koppelen krijg je één keer een geheim. Elk bericht heeft de kop X-Over4u-Handtekening: sha256=…: de HMAC-SHA256 van de ruwe inhoud van het bericht, met dat geheim. Reken hem na en vergelijk:

import crypto from "node:crypto";

function komtVanOver4u(ruweInhoud, kop, geheim) {
  const verwacht = "sha256=" + crypto.createHmac("sha256", geheim).update(ruweInhoud).digest("hex");
  return kop.length === verwacht.length && crypto.timingSafeEqual(Buffer.from(kop), Buffer.from(verwacht));
}

Antwoord binnen acht seconden met een code in de 200. Een bericht wordt één keer verstuurd en niet herhaald; een adres op een intern netwerk wordt geweigerd.

Hulp nodig?

Mis je iets in de API, of wil je weten of een koppeling kan? Mail info@over4u.com.