The five-step pipeline
Every generated post goes through these stages:1. Ingest activity
A run starts with a source and a window. Activity comes from:- GitHub: pull requests, commits and releases from repositories granted to the Notra GitHub App
- Linear: issues and updates from connected workspaces
- Granola: meeting notes, transcripts and AI summaries
- The Create Content wizard, where you pick formats, a timeframe and the pull requests, commits, releases or issues to include
- A schedule with a lookback window of Current day, Yesterday, Last 7 days, Last 14 days or Last 30 days
- A GitHub webhook event: a published release (pre-releases optional) or a push
Notra only reads repositories, workspaces and channels you have connected. Each run lists its source targets, and the agent can only query those.
2. Analyze context
The generation agent gathers what it needs with a small set of tools and decides what is worth telling your audience. The agent has these GitHub tools:getCommitsByTimeframe: commit history for a repository over the exact lookback range, with paginationgetPullRequests: PR titles, descriptions, authors and merge statusgetReleaseByTag: release notes, tag and assets
listAvailableSkillsandgetSkillByName: load writing skills from the Skills page, including the built-in human-writer skill that polishes the final text
getCommitsByTimeframe for every source repository, then getPullRequests for the PRs those commits reference, and builds a candidate list from the result.
The agent then filters the candidates:
1
Audience relevance
The agent checks every candidate against the audience in your brand identity and drops internal-only work, such as small refactors, formatting and lint changes, dependency churn, test-only updates and routine infra chores.
2
Meaningful fixes stay
Bug fixes stay when they clearly improve user experience, reliability, security, performance, compatibility or developer workflows.
3
Category priority
When a change fits several categories, the agent files it under the first match in this order: Security, Bug Fixes, Features and Enhancements, Performance Improvements, Infrastructure, Internal Changes, Testing, Documentation.
4
Skip when empty
If the agent filters out every candidate, it calls the skip tool and Notra creates no post, because Notra never publishes filler.
3. Generate drafts
The agent then writes a draft for each requested format:- Changelog entry: release notes with a summary, Highlights and categorized More Updates
- Blog post: long-form announcements and stories
- LinkedIn post: a professional update
- Tweet: a short post for X
- Image: a generated visual to accompany a post
Each format has its own prompt template per tone, so the same activity produces a separate changelog, blog post and tweet, not one text reformatted three times.
4. Apply brand voice
Notra adds the selected brand identity to every generation prompt. Brand voice controls:- Company name and description: who is publishing and what you build
- Tone profile: Conversational, Professional, Casual or Formal, plus custom tone notes
- Language: the language the final text is written in
- Audience: who you are writing for, which also drives PR links and detail level
- Custom instructions: rules like “avoid jargon” or “always mention pricing”
Brand identity changes apply to future runs and do not modify existing drafts.
5. Publish-ready output
The final stage saves the draft for you to review:- Notra saves the post as a Draft with its format, source targets and window
- It appears in Content, grouped with the other outputs of the same run into a collection
- Schedules and triggers with auto-publish enabled mark it Published immediately instead
- Edit the text directly, or use the chat panel to rewrite sections
- Switch between Draft and Published
- Post tweets and LinkedIn posts to connected X and LinkedIn accounts
- Send published content to Framer if the integration is connected
GEO Write
Write is the GEO entry point into the same pipeline, and it starts from a target instead of activity. The target is a prompt where engines mention competitors but not you, a comparison against specific competitors or a custom topic.1
Plan a brief
The planner produces a brief with a working title, the search intent behind the prompt, the audience, the job to be done, section headings, internal links from your sitemap and an acceptance checklist.
2
Approve
The brief sits in Draft until you approve it, so edit it first if the angle is off.
3
Write
The brief moves to Queued, then Writing, and the writer uses your brand identity, the same skills as Studio and the brief as its outline.
4
Done
The finished article opens in Content as a regular draft. Publish it, then watch the prompt on the next scan.
Pipeline configuration
The Create Content wizard sets:- Formats to generate
- Timeframe and which data points to include (Pull Requests, Commits, Releases, Linear issues)
- Brand identity
- Frequency: daily, weekly (day of week) or monthly (day of month), with hour and minute in UTC
- Repositories, output type, brand identity
- Lookback window and auto-publish
- Source: GitHub webhook
- Event types: release or push, with or without pre-releases
- Repositories, output type, brand identity, auto-publish
Error handling
- GitHub API rate limits. Notra detects rate limit errors and shows a clear message instead of a half-written post.
- Nothing worth publishing. The agent calls the skip tool and the run ends without a post, which is expected for quiet weeks or maintenance-only windows.
- Missing data. The agent omits details it cannot verify instead of guessing, so it never makes up PR numbers or commit details.
Monitoring pipeline health
- Content shows every collection and the run that produced it
- Schedules and Events show whether each workflow is enabled and when it last ran
- Settings > Logs lists workflow activity for the workspace
- Your repository settings on GitHub show GitHub webhook deliveries