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
- Mene tiimin Asetukset-sivulle
- Avaa Webhookit-välilehti
- Syötä URL-osoite, johon tapahtumat lähetetään
- 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:
| Tapahtuma | Kuvaus |
|---|---|
integration.added | Integraatio lisätty |
integration.removed | Integraatio poistettu |
team.member_added | Jäsen lisätty tiimiin |
team.member_removed | Jäsen poistettu tiimistä |
scheduled_task.created | Ajastettu tehtävä luotu |
phone.verified | Puhelinnumero 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 |
|---|---|
event | Tapahtuman nimi |
timestamp | Aikaleima ISO 8601 -muodossa |
data.resourceType | Resurssin tyyppi (esim. invoice, integration, team) |
data.resourceId | Resurssin 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