Hoppa till innehåll

Webhooks

Webhooks skickar det som händer i WORK³ till en egen adress, till exempel en webhook i n8n, Make eller Zapier, i samma stund som det händer.

  1. Gå till Inställningar → Integrationer → Webhooks och klicka på Lägg till adress. Du behöver behörigheten Koppla integrationer och regler.
  2. Klistra in adressen. Den måste vara en publik https://-adress; adresser i ett privat nätverk nekas.
  3. Välj händelser att skicka: ärende skapat, ändrat eller borttaget, ärende förfaller i morgon (skickas kl. 08:00 dagen innan, i workspacets tidszon), ny kommentar, och projekt skapat, ändrat eller borttaget.
  4. Spara och kopiera signeringshemligheten nu. Den visas bara en gång.

Stäng av en adress med reglaget. I menyn kan du Skicka test, ändra adressen, Byta hemlighet eller ta bort den.

Varje händelse är ett POST med JSON: händelsetypen, workspacet, vem som gjorde det (actorId och actorName), och ärendet eller projektet i samma form som i REST API. En ändring listar också vad som ändrades, från och till. För status, typ, prioritet, ansvarig och överordnat ärende följer namnen med (det överordnades referens) (fromName, toName), och ärendet har namnen bredvid id:na. Att ändra taggar på ett ärende är en item.updated med changes.labels (taggnamnen före och efter). Att arkivera eller återställa ett ärende är en item.updated med changes.archived, och skickas för varje underärende också. En project.updated listar bara de fält vars värde faktiskt ändrades, med det nya värdet, och skickas inte alls om inget ändrades. previous har värdena de hade innan, och en ny lead kommer med namn (lead) på båda sidor. Båda händelserna har också diff: samma ändringar per fält med enkla namn, vart och ett som from och into, med { id, name } för värden som har ett id.

Varje anrop har headern WORK3-Signature: t=<tid>,v1=<hmac>. Räkna ut HMAC-SHA256 av <t>.<body> med hemligheten och jämför med v1. Neka anrop där t är äldre än 5 minuter. Headern WORK3-Delivery är unik per leverans, så att du kan hoppa över dubbletter.

WORK³-appen för n8n registrerar sin webhook och kontrollerar signaturen åt dig. Utan den kan du göra samma sak för hand:

  1. Lägg till en Webhook-nod med HTTP Method POST. Lägg till dess URL som adress i WORK³ (Production URL, och aktivera workflowet) och kopiera hemligheten.
  2. Lägg till en Crypto-nod: Action Hmac, Type SHA256, Encoding HEX, Property Name expected, en Crypto-credential med hemligheten som Hmac Secret, och som Value uttrycket:
    {{ $json.headers['work3-signature'].split(',')[0].slice(2) }}.{{ JSON.stringify($json.body) }}
  3. Lägg till en If-nod med två villkor och AND emellan:
    • String is equal to: {{ $json.expected }} och {{ $json.headers['work3-signature'].split('v1=')[1] }}
    • Number is less than: {{ Math.abs(Date.now()/1000 - Number($json.headers['work3-signature'].split(',')[0].slice(2))) }} och 300
  4. Fortsätt från true med $json.body. Koppla false till en Stop and Error-nod.

Använd Skicka test på adressen för att prova. n8n:s Code-nod kan inte ladda crypto som standard, därför används Crypto-noden.

Svarar adressen inte med 2xx inom 10 sekunder görs nya försök efter 1 min, 5 min, 30 min, 2 h och 6 h. Senaste leveranserna visar varje leverans och hur den gick, och Skicka igen skickar om en som misslyckats. Leveranser sparas i 30 dagar.

Om ditt flöde anropar REST API, som i sin tur skickar en webhook tillbaka till samma flöde, kontrollera vem som gjorde det och hoppa över händelser från din egen API-nyckel.

WORK³ · powered by NOD³