Skip to main content
Event triggers generate content in response to GitHub activity, either a published release or a push to the repository’s default branch. Each trigger listens on one or more repositories, fires for one event type and produces one output format. You manage them under Automation > Events in the dashboard.

How event triggers work

1

GitHub event occurs

Someone publishes a release or pushes commits to the default branch.
2

Webhook received

GitHub sends the event to the repository’s webhook URL in Notra.
3

Validation

Notra verifies the signature and drops duplicate deliveries, then checks that the repository is connected and enabled and that a matching trigger is enabled.
4

Content generation

The run reads the event and the hour of repository activity leading up to it, then writes the content in your brand identity.
5

Review

The result appears under Content as a draft, or as a published post when auto-publish is on.

Supported event types

Fires when someone publishes a release on GitHub, and ignores draft releases.GitHub actions that fire it:
  • published
  • prereleased
Each release trigger has an Include pre-releases switch that is on by default, and when it’s off, releases marked as pre-release on GitHub don’t fire the trigger.What gets analyzed: the release tag, name and notes, the publish time and repository activity in the hour before it.
Event data
Event triggers are GitHub-only, while Linear is a source for schedules and on-demand generation.

Set up the repository webhook

Notra receives events through a webhook you add to each repository. Installing the GitHub App connects the repository, but the webhook is a separate, one-time step per repository.
1

Open the repository in Notra

Go to Integrations > GitHub and open the repository. The Webhook section reads “Receive events from GitHub when commits are pushed or releases are published.”
2

Generate a secret

Click generate, and Notra shows the Payload URL, the Content type (application/json) and the Secret with copy buttons. You can regenerate the secret later, as long as you update GitHub when you do.
3

Add the webhook in GitHub

In the repository’s Settings > Webhooks, add a webhook with the payload URL, content type and secret from Notra. Select the Releases and Pushes events (or “Send me everything”), then save.
4

Confirm in Notra

Click I’ve added the webhook. GitHub’s webhook page shows each delivery and Notra’s response, so check it first when you debug a setup.

Create an event trigger

1

Open Automation > Events

Click New event trigger.
2

Choose the trigger event

Pick Release published or Push to default branch, and for releases decide whether to include pre-releases.
3

Select repositories

Choose one or more connected repositories, and the trigger fires for events from any of them.
4

Choose the content format

Pick a changelog entry, blog post, LinkedIn post, tweet or image.
5

Pick a brand identity and auto-publish

Use the default brand identity or pin one. Auto-publish is available for changelogs and blog posts, and when it’s on, Notra publishes posts immediately instead of saving them as drafts.
6

Save

New triggers start enabled, and Notra rejects a trigger that duplicates an existing one (“Trigger already exists”).

Content generation context

When an event fires, the run builds its prompt from:
  • Event details: type, action and a sanitized copy of the event data. Notra strips the payload down to known fields and instructs the model to treat it as data, never as instructions.
  • Repository activity: the hour leading up to the event timestamp (the release publish time, or the latest commit timestamp in the push).
  • Brand identity: tone, audience, company details and custom instructions from the selected or default brand identity.

Security and validation

Every delivery must carry a valid X-Hub-Signature-256 HMAC SHA-256 signature computed with the repository’s webhook secret. Notra rejects and logs requests without a valid signature.
Notra deduplicates deliveries by GitHub’s X-GitHub-Delivery ID for 24 hours, so a redelivered event doesn’t generate content twice.
Notra extracts only known fields from the payload, caps string lengths and tells the model that the event context is untrusted input.
Each webhook URL belongs to one organization, integration and repository. Notra drops events when the integration is disabled, and a trigger only fires when it is enabled and lists that repository.

Testing a trigger

Event triggers don’t have a Run now action because they fire only from GitHub. To test one, publish a release (a pre-release works if the trigger includes pre-releases) or push a small commit to the default branch, then check Content for the draft and Settings > Logs for the delivery.

Monitoring

  • Settings > Logs lists integration events with their delivery status, including rejected signatures, duplicate deliveries and payload validation errors.
  • Settings > Notifications can email you when automated content is created, when generation fails and when a run is skipped.
  • GitHub’s own Recent Deliveries view on the webhook shows every request and Notra’s response code.

Common use cases

Release announcements

Generate a LinkedIn post or tweet whenever you publish a GitHub release.

Continuous changelog

Create a changelog entry for every push to the default branch, auto-published to your changelog.

Launch blog posts

Draft a blog post for major releases to support product launches.

Release visuals

Generate a brand-matched social image for each release to pair with the announcement.

Best practices

Release triggers produce far fewer runs than push triggers, so use releases for announcements and reserve push triggers for changelogs.
Each run uses the plan quota for its format (long-form for changelogs and blog posts, social for LinkedIn and X, image generations for images). A push trigger on a busy repository can use quota quickly.
Use event triggers for immediate announcements and a weekly schedule for digests that cover everything else.
If you regenerate a webhook secret in Notra, update the GitHub webhook right away, because Notra rejects deliveries signed with the old secret.

Troubleshooting

Check:
  • The webhook exists in the repository’s GitHub settings with the payload URL from Notra
  • The content type is application/json
  • The secret matches the one shown in Notra
  • The repository integration is enabled in Notra
GitHub’s Recent Deliveries view shows the response Notra returned for each attempt.
Check:
  • The event type matches the trigger (a push to a feature branch never fires)
  • The release is not a draft, and pre-releases are included if the release is one
  • The repository is in the trigger’s target list
  • The trigger is enabled (Active tab, not Paused)
  • You still have quota or AI credits for that format
If the run finds nothing worth writing about, Notra records it as skipped, and you can enable the Skipped notification to hear about it.

Next steps

Scheduled automation

Time-based content generation with lookback windows

Brand voice

Customize how generated content sounds
Last modified on October 8, 2026