---
title: "Campaign finished"
method: POST
path: "campaignEnding"
tags: ["Webhooks"]
---

# Campaign finished

`POST campaignEnding` (webhook)

Sent once to URLs whose events include `CAMPAIGN_ENDING`, when a campaign is closed automatically by the daily job (04:00 server time). In the current code it is only delivered for advanced campaigns that are not `alwaysOn`; the email and LinkedIn variants are accepted at registration but never sent. Marking a campaign as finished by hand (app or API) does not trigger it, nor does archiving. Single attempt, errors ignored.

## Payload

- WebhookCampaignEndingPayload
  - `date` string, date-time, required: Time of the automatic closing (daily job at 04:00 server time).
  - `campaign` string, required: Campaign name.
  - `id` string, required: Campaign ID.

## Acknowledgement `2XX`

Any response is accepted. Emelia ignores the status and the body.

## Other responses

- `default`: Ignored too: errors are not retried and the webhook stays active.

---

[API](https://skmtc.dev/emelia/apis/emelia-api.md) · [All operations](https://skmtc.dev/emelia/apis/emelia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/emelia/apis/emelia-api/revisions/8c0cb435f2c4?raw)
