The Five-Step Pipeline
Every generated post flows through these stages:1. Ingest Activity
A run starts with a source and a window. Where 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
- Iris, which watches merged pull requests, pushes and releases and plans its own runs
Notra only reads repositories, workspaces and channels you have explicitly 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. GitHub tools available to the agent: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.
Filtering:
1
Audience relevance
Every candidate is checked against the audience in your brand identity. Internal-only work is dropped: 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, it is filed 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 every candidate is filtered out, the agent calls the skip tool and no post is created. Filler is never published.
3. Generate Drafts
With context in hand, the agent writes the draft for each requested format. Formats:- 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 different changelog, blog post and tweet rather than one text reformatted three times.
4. Apply Brand Voice
The selected brand identity is injected into every generation prompt. What 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. Existing drafts are not modified.
5. Publish-Ready Output
The final stage stores the draft and hands it to you. What happens at this stage:- The post is saved 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. Instead of activity, it starts from a target: a prompt where competitors are mentioned and you are not, 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. Edit it first if the angle is off.
3
Write
The brief moves to Queued, then Writing. 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
Create Content wizard:- 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, push; include pre-releases or not
- Repositories, output type, brand identity, auto-publish
Error Handling
GitHub API rate limits:- Rate limit errors are detected and surfaced with a clear message instead of a half-written post
- The agent calls the skip tool and the run ends without a post. This is expected for quiet weeks or maintenance-only windows.
- The agent omits details it cannot verify rather than guessing. No made-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
- GitHub webhook deliveries can be inspected in your repository settings on GitHub