Skip to main content
The content pipeline is the Studio side of Notra, and it turns activity from your connected tools into changelogs, blog posts, social posts and images. GEO Write reuses the last stages of the same pipeline to turn a content gap into an article. Knowing the stages helps you configure runs and find out why a draft does not match what you expected.

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
A run starts from one of these:
  • 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 pagination
  • getPullRequests: PR titles, descriptions, authors and merge status
  • getReleaseByTag: release notes, tag and assets
It also has two skill tools:
  • listAvailableSkills and getSkillByName: load writing skills from the Skills page, including the built-in human-writer skill that polishes the final text
For a 7-day changelog the agent usually calls 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.
The audience field controls this stage. A developer-oriented audience (“developers”, “engineers”, “technical teams”) gets verified PR links on every referenced change, while any other audience gets none.

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
A changelog has this structure:
Highlights holds up to five changes with clear user, customer, reliability, security or performance impact. Every change that passed filtering appears exactly once, either in Highlights or in More Updates. Both developer and non-developer audiences get author attribution, but only developer audiences get PR links.
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”
The model receives it like this:
The company block is the publishing identity, and the agent treats source repositories as evidence only. Content about an upstream or open source repository describes your contribution and does not claim ownership of the whole project. Each tone profile writes in a different style:
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
In the editor you can:
  • 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
Leave auto-publish off until you have reviewed a few runs, since Draft is the default for every path into the pipeline.

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
Schedules set:
  • 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
Event-based triggers set:
  • 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
Last modified on October 8, 2026