Per webhook-adres kies je welke gebeurtenissen je wilt ontvangen. Hieronder staat per gebeurtenis wanneer hij afgaat en welke gegevens er in data meekomen.
| Gebeurtenis | Op het scherm | Gaat af als |
|---|---|---|
lead.created | Nieuwe lead | Er komt een prospect met een LinkedIn-profiel bij. |
conversation.new_message | Nieuw bericht | Een prospect stuurt je een bericht op LinkedIn. |
conversation.reply_sent | Antwoord verstuurd | Er gaat een antwoord uit, door jou, de AI of de API. |
conversation.label_changed | Label gewijzigd | Een gesprek krijgt een ander label. |
meeting.booked | Afspraak geboekt | Een gesprek is op Afspraak gezet. |
Goed om te weten
lead.status_changed) met de tekst Volgt nog. Die is nog niet te kiezen, want LeadForge verstuurt hem nog niet.Omhulsel
Elke aflevering is een POST met een JSON-body in dezelfde vorm:
{
"id": "<aflever-id>",
"event": "lead.created",
"createdAt": "2026-11-09T10:15:00.000Z",
"data": { ... }
}
Velden
| Naam | Type | Beschrijving |
|---|---|---|
| id | tekst (uuid) | Het id van deze aflevering. Hetzelfde id staat in de header X-LeadForge-Delivery. |
| event | tekst | De naam van de gebeurtenis. Dezelfde naam staat in de header X-LeadForge-Event. |
| createdAt | datum (ISO) | Wanneer de aflevering is gemaakt. |
| data | object | De gegevens van de gebeurtenis. Zie hieronder. |
De headers en de handtekening staan in Handtekening controleren. Bij een testaflevering heeft data ook test: true; zie Testaflevering.
lead.created
Gaat af als er een nieuwe lead met een LinkedIn-profiel bij komt: geplakt op Prospects of vastgelegd door het userscript. Een profiel dat al als lead bestond, geeft geen nieuwe gebeurtenis.
Velden
| Naam | Type | Beschrijving |
|---|---|---|
| leadId | tekst (uuid) | Het id van de lead. Haal de hele lead op met GET /api/v1/leads/{id}. |
| firstName | tekst of null | Voornaam. |
| lastName | tekst of null | Achternaam. |
| company | tekst of null | Bedrijf. Altijd null bij een profiel dat op Prospects is geplakt. |
| title | tekst of null | Functie. Altijd null bij een profiel dat op Prospects is geplakt. |
| tekst | Adres van het LinkedIn-profiel. | |
| source | tekst | Waar de lead vandaan komt: linkedin_url_geplakt (Prospects) of linkedin_engagement_userscript (het userscript). |
{
"id": "<aflever-id>",
"event": "lead.created",
"createdAt": "2026-11-09T10:15:00.000Z",
"data": {
"leadId": "<lead-id>",
"firstName": "Sam",
"lastName": null,
"company": null,
"title": "CEO",
"linkedIn": "https://www.linkedin.com/in/sam",
"source": "linkedin_engagement_userscript"
}
}
conversation.new_message
Gaat af als LeadForge bij het lezen van je LinkedIn-inbox in een gesprek een nieuw bericht van de prospect vindt en het laatste bericht van de prospect komt. Per gesprek gaat er één aflevering uit, ook als er meer berichten tegelijk binnenkomen.
Velden
| Naam | Type | Beschrijving |
|---|---|---|
| conversationId | tekst (uuid) | Het id van het gesprek. Haal het hele gesprek op met GET /api/v1/conversations/{id}. |
| profileUrl | tekst | Adres van het LinkedIn-profiel van de prospect. |
| name | tekst of null | Naam van de prospect. |
| leadId | tekst (uuid) of null | De lead bij dit gesprek, als die er is. |
| message | tekst of null | Het begin van het laatste bericht, hoogstens 300 tekens. |
| newMessages | geheel getal | Hoeveel nieuwe berichten LeadForge deze keer in het gesprek vond, van beide kanten samen. |
{
"id": "<aflever-id>",
"event": "conversation.new_message",
"createdAt": "2026-11-09T10:15:00.000Z",
"data": {
"conversationId": "<gesprek-id>",
"profileUrl": "https://www.linkedin.com/in/voorbeeld",
"name": "Anna Jansen",
"leadId": "<lead-id>",
"message": "Klinkt goed, kun je volgende week bellen?",
"newMessages": 1
}
}
conversation.reply_sent
Gaat af als er een antwoord in een LinkedIn-gesprek klaargezet wordt: door jou in de Inbox, door de AI of via de API.
Let op
Velden
| Naam | Type | Beschrijving |
|---|---|---|
| conversationId | tekst (uuid) | Het id van het gesprek. |
| jobId | tekst (uuid) | Het id van de verzendtaak, hetzelfde als jobId in het antwoord van de API. |
| message | tekst | De tekst van het antwoord. |
| via | tekst | app (door iemand in LeadForge), ai (door de AI) of api (via de REST API). |
{
"id": "<aflever-id>",
"event": "conversation.reply_sent",
"createdAt": "2026-11-09T10:15:00.000Z",
"data": {
"conversationId": "<gesprek-id>",
"jobId": "<taak-id>",
"message": "Dank je, ik bel je dinsdag om 10 uur.",
"via": "api"
}
}
conversation.label_changed
Gaat af als een LinkedIn-gesprek in de Inbox een ander label krijgt. Kies je opnieuw hetzelfde label, dan gaat er niets uit.
Velden
| Naam | Type | Beschrijving |
|---|---|---|
| conversationId | tekst (uuid) | Het id van het gesprek. |
| from | tekst | Het vorige label. Een gesprek zonder label telt als new. |
| to | tekst | Het nieuwe label. |
| leadId | tekst (uuid) of null | De lead bij dit gesprek, als die er is. |
| name | tekst of null | Naam van de prospect. |
De labels zijn new, interested, meeting, not_now, not_interested en done. Wat ze betekenen staat bij Labelwaarden.
{
"id": "<aflever-id>",
"event": "conversation.label_changed",
"createdAt": "2026-11-09T10:15:00.000Z",
"data": {
"conversationId": "<gesprek-id>",
"from": "interested",
"to": "meeting",
"leadId": "<lead-id>",
"name": "Anna Jansen"
}
}
meeting.booked
Gaat af als een gesprek het label meeting (Afspraak) krijgt. Volgt je adres ook conversation.label_changed, dan krijg je bij die wijziging beide gebeurtenissen. Staat het gesprek al op Afspraak en kies je dat label opnieuw, dan gaat er niets uit.
Velden
| Naam | Type | Beschrijving |
|---|---|---|
| conversationId | tekst (uuid) | Het id van het gesprek. |
| leadId | tekst (uuid) of null | De lead bij dit gesprek, als die er is. |
| name | tekst of null | Naam van de prospect. |
| profileUrl | tekst | Adres van het LinkedIn-profiel van de prospect. |
{
"id": "<aflever-id>",
"event": "meeting.booked",
"createdAt": "2026-11-09T10:15:00.000Z",
"data": {
"conversationId": "<gesprek-id>",
"leadId": "<lead-id>",
"name": "Anna Jansen",
"profileUrl": "https://www.linkedin.com/in/voorbeeld"
}
}
Verder lezen
- Webhooks: een adres toevoegen
- Handtekening controleren
- Aflevering en herhalen