Chat: set up webhooks for GitHub and external services

Every team or project channel can get its own inbound webhooks: a secret URL that an external service calls to automatically post a message to the channel — with built-in formatting for GitHub events and Discord-compatible payloads.

Prerequisites
  • You're signed in; Chat can be enabled per organization — the sidebar only shows organizations where the module is active.
  • You're an Admin of the relevant team or project channel — webhooks are only available there.

Create a webhook

  1. Open the channel's settings and click Add webhook in the Webhooks section.
  2. Give it a name (e.g. "GitHub") and confirm.
  3. The generated URL is shown once — copy it immediately, it can't be shown again later.

Enter it in GitHub

Enter the copied URL in the GitHub repository under Settings → Webhooks → Payload URL, with content type application/json. Project Manager recognizes GitHub events via the X-GitHub-Event header and automatically formats a curated selection (including push, pull request, issues) as a readable chat message; pure CI events like check runs are accepted but deliberately not posted.

Connect Discord-compatible services

Services that speak the Discord webhook format (for example notifications from Coolify) can be connected with the same URL — Project Manager recognizes the embeds field in the payload and formats the chat message from it.

Send your own JSON messages

Without GitHub or Discord formatting, a plain POST request with a JSON body of { "content": "Your message" } to the same URL is enough — handy for your own scripts or other automations.

Revoke a webhook

Use the trash icon next to a webhook to revoke it permanently; any service still using the old URL afterward just gets an error.

Common pitfalls

  • The URL is only shown once

    For security reasons, Project Manager only shows a newly created webhook URL right after creation. If it's lost, the only option is a new webhook — the old one can't be viewed again, only revoked.

  • Messages are capped at 8,000 characters

    Longer payload content is automatically truncated when posted to the channel.

  • Webhooks only exist for team and project channels

    You can't create webhooks for General, Announcements, Admin, direct messages, meeting chats, or your daily overview channel.

Frequently asked questions

Who sees the webhook URL?

Only Admins of the relevant channel can create webhooks, view them (name and last use, not the URL itself), and revoke them.

Do I get a notification-page entry for webhook messages like I would for @-mentions?

No. Webhook messages count as regular channel traffic, like a message from a member — push notifications yes, but a notifications-page entry only for explicit @-mentions or AI-generated content.

Which GitHub events get posted?

A curated selection like push, pull request, and issues. Pure CI events (e.g. check runs, workflow jobs, status updates) are received but deliberately not posted as a message, to avoid flooding the channel.

Keep reading

Couldn't find your answer, or still stuck?

Go to support

Last reviewed on 2026-09-26