Skip to main content

Webhookit

Webhookien avulla voit vastaanottaa reaaliaikaisia ilmoituksia tiimin tapahtumista ulkoiseen järjestelmään. Finagentti lähettää HTTP POST -pyynnön määrittämääsi URL-osoitteeseen aina kun tiimissä tapahtuu jotain.

Webhookin lisääminen

  1. Mene tiimin Asetukset-sivulle
  2. Avaa Webhookit-välilehti
  3. Syötä URL-osoite, johon tapahtumat lähetetään
  4. Klikkaa Lisää

Luonnin jälkeen näytetään webhook-salaisuus (secret). Tallenna se turvalliseen paikkaan — se näytetään vain kerran. Salaisuutta käytetään pyyntöjen allekirjoituksen tarkistamiseen.

:::caution Tärkeää Webhook-salaisuus näytetään vain kerran luonnin yhteydessä. Jos unohdat tallentaa sen, poista webhook ja luo uusi. :::

Tapahtumat

Webhook vastaanottaa kaikki tiimin tapahtumat, esimerkiksi:

TapahtumaKuvaus
integration.addedIntegraatio lisätty
integration.removedIntegraatio poistettu
team.member_addedJäsen lisätty tiimiin
team.member_removedJäsen poistettu tiimistä
scheduled_task.createdAjastettu tehtävä luotu
phone.verifiedPuhelinnumero vahvistettu

Lisäksi kaikki agentin suorittamat toiminnot (laskujen luonti, lähetys, hyväksyntä jne.) lähetetään webhookiin.

Payload

Jokainen webhook-pyyntö on HTTP POST JSON-muodossa:

{
"event": "integration.added",
"timestamp": "2026-05-14T12:00:00.000Z",
"data": {
"resourceType": "integration",
"resourceId": "uuid",
...
}
}
KenttäKuvaus
eventTapahtuman nimi
timestampAikaleima ISO 8601 -muodossa
data.resourceTypeResurssin tyyppi (esim. invoice, integration, team)
data.resourceIdResurssin tunniste (valinnainen)

data-objekti voi sisältää myös muita tapahtuman metatietoja.

Allekirjoituksen tarkistaminen

Jokainen pyyntö allekirjoitetaan HMAC-SHA256-algoritmilla. Allekirjoitus lähetetään X-Webhook-Signature -headerissa heksadesimaalimuodossa.

Tarkista allekirjoitus vertaamalla headerin arvoa itse laskettuun arvoon:

import crypto from "crypto";

function verifySignature(body, secret, signature) {
const expected = crypto
.createHmac("sha256", secret)
.update(body)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected),
);
}
import hmac
import hashlib

def verify_signature(body: bytes, secret: str, signature: str) -> bool:
expected = hmac.new(
secret.encode(), body, hashlib.sha256
).hexdigest()
return hmac.compare_digest(signature, expected)

Hallinta

  • Päälle/pois — webhookin voi kytkeä päälle ja pois asetussivulta kytkimellä
  • Poistaminen — webhookin voi poistaa pysyvästi
  • Webhookit ovat vain ylläpitäjien hallittavissa

Tekniset tiedot

  • Pyyntö lähetetään HTTP POST -metodilla
  • Content-Type: application/json
  • Aikakatkaisu: 10 sekuntia
  • Epäonnistuneet toimitukset eivät estä muita toimintoja