---
canonical_url: "https://docs.composio.dev/toolkits/notra"
markdown_url: "https://docs.composio.dev/toolkits/notra.md"
product: "platform"
version: null
last_updated: null
---

# Notra

Create and manage content, AI agents, feedback workflows, and generative engine optimization data with Notra.

- **Category:** ai content generation
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 110
- **Triggers:** 0
- **Slug:** `NOTRA`
- **Version:** 00000000_00

## Tools

### Approve GEO Content Brief

**Slug:** `NOTRA_APPROVE_GEO_CONTENT_BRIEF`

Irreversibly approve a draft or failed brief and queue the paid Notra writer. This claims the brief and books writer work.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `brief_id` | string | Yes | Draft or failed brief ID to approve. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Cancel Post Schedule

**Slug:** `NOTRA_CANCEL_POST_SCHEDULE`

Destructively cancel every post destination that has not started and clear failed destinations. A destination already publishing cannot be interrupted; it finishes and is not retried, and in_progress reports this case.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_id` | string | Yes | Post ID whose schedule should be canceled. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Agent Session

**Slug:** `NOTRA_CREATE_AGENT_SESSION`

Starts a durable paid AI agent session with an initial user message and returns its session ID. Read subsequent output from the session event stream. This can consume credits and produce unbounded streamed model output; do not retry blindly after an ambiguous failure.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message` | string | Yes | The first user message of the session. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Chat

**Slug:** `NOTRA_CREATE_CHAT`

Create a paid Notra chat, persist the first message, and wait for the full assistant stream. The response is newline-delimited stream text rather than parsed message parts and may run for an unbounded model/tool duration. Limited with chat messages to 30 requests per minute per organization; retrying creates another chat and may repeat tool side effects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `model` | string ("auto" | "anthropic/claude-opus-5.5" | "anthropic/claude-opus-5" | "anthropic/claude-opus-4.8" | "anthropic/claude-sonnet-5" | "anthropic/claude-sonnet-4.6" | "anthropic/claude-haiku-4.5" | "openai/gpt-6-sol" | "openai/gpt-6-luna" | "openai/gpt-5.6-sol" | "openai/gpt-5.5" | "openai/gpt-5.4") | No | Model to respond with; omit or use auto to let Notra choose. |
| `context` | array | No | Connected GitHub, Linear, or MCP integrations the assistant may use. |
| `message` | string | Yes | First user message in the new chat. |
| `timezone` | string | No | IANA time zone used to interpret dates. |
| `thinking_level` | string ("off" | "low" | "medium" | "high") | No | Reasoning effort when thinking is enabled. |
| `enable_thinking` | boolean | No | Allow the model to reason before answering. |
| `external_channel_id` | object | No | Discord, Slack, or dashboard channel to link for later lookup. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Event Trigger

**Slug:** `NOTRA_CREATE_EVENT_TRIGGER`

Creates a persistent GitHub event automation that generates the selected content type for matching releases or pushes and can publish the result automatically. This is a paid operation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `enabled` | boolean | Yes | Whether matching events can start generation. |
| `targets` | object | Yes | Repositories to monitor. |
| `output_type` | string ("changelog" | "blog_post" | "linkedin_post" | "twitter_post" | "image") | Yes | Content type generated for matching events. |
| `source_type` | string | Yes | GitHub webhook event source. |
| `auto_publish` | boolean | No | Publish generated posts automatically. |
| `output_config` | object | No | Optional publishing and brand configuration. |
| `source_config` | object | Yes | GitHub event matching configuration. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create GEO Project

**Slug:** `NOTRA_CREATE_GEO_PROJECT`

Create a persistent GEO project linked to a brand identity. Requires an active paid plan or positive AI credit balance and a GEO plan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Project name. |
| `brand_settings_id` | string | No | Brand identity ID to link; omit to use the organization's default identity. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create GEO Prompt

**Slug:** `NOTRA_CREATE_GEO_PROMPT`

Persist a custom prompt for future GEO scans. Requires paid access and an active GEO plan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | No | Optional labels, lowercased and deduplicated by Notra. |
| `prompt` | string | Yes | Prompt text to track. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create GEO Scan

**Slug:** `NOTRA_CREATE_GEO_SCAN`

Irreversibly queue a paid GEO scan that records checks against configured answer engines. The scan record is created before hand-off; poll the returned status URL. Requires sufficient plan or AI credits, rejects concurrent scans with 409, and is limited to 4 requests per hour per organization.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | GEO project ID to scan. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create GEO Sequence

**Slug:** `NOTRA_CREATE_GEO_SEQUENCE`

Persist a one-to-five-turn GEO prompt sequence for tracked runs. Requires paid GEO access.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Sequence name. |
| `steps` | array | Yes | One to five conversation turns, in order. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create GitHub Integration

**Slug:** `NOTRA_CREATE_GITHUB_INTEGRATION`

Connect a GitHub repository to Notra, enabling changelog generation and creating a webhook secret. This paid operation stores a supplied personal access token for private repositories; never pass a token unless required. Limited to 20 requests per minute per API key.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `repo` | string | Yes | Repository name without the owner. |
| `owner` | string | Yes | GitHub user or organization that owns the repository. |
| `token` | string | No | Sensitive GitHub personal access token with repository read access. Required for private repositories; omit for public repositories. |
| `branch` | string | No | Branch to read; defaults to the repository's default branch. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Post

**Slug:** `NOTRA_CREATE_POST`

Create a draft or published Notra post directly from supplied content without invoking AI generation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `slug` | string | No | URL slug for blog posts or changelogs only; Notra normalizes it to lowercase letters, numbers, and hyphens. |
| `title` | string | Yes | Post title. |
| `status` | string ("draft" | "published") | No | Initial publication status. Use draft for safely reversible preparation. |
| `markdown` | string | No | Markdown body; omit to create an empty draft. |
| `content_type` | string ("blog_post" | "changelog" | "linkedin_post" | "twitter_post") | Yes | Kind of post to create. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Schedule

**Slug:** `NOTRA_CREATE_SCHEDULE`

Creates a recurring schedule that generates one content type from the selected GitHub integrations. Times are in UTC. A schedule with the same source, targets, output, and lookback settings as an existing one is rejected with 409. This paid operation creates a persistent recurring automation that may generate and auto-publish content on future runs; review enabled and auto_publish before calling.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Display name shown in the dashboard. |
| `enabled` | boolean | Yes | Whether the schedule runs. Disabled schedules are stored but never fire. |
| `targets` | object | Yes | Repositories used as sources. |
| `output_type` | string ("changelog" | "blog_post" | "linkedin_post" | "twitter_post" | "image") | Yes | Type of content each run generates. |
| `source_type` | string | Yes | Always cron for schedules. |
| `auto_publish` | boolean | No | Publish generated posts automatically instead of saving them as drafts. |
| `output_config` | object | No | Optional publishing and brand configuration. |
| `source_config` | object | Yes | UTC recurrence configuration. |
| `lookback_window` | string ("current_day" | "yesterday" | "last_7_days" | "last_14_days" | "last_30_days") | No | How far back each run collects source activity. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Skill

**Slug:** `NOTRA_CREATE_SKILL`

Creates a custom skill. Names must be unique within the organization. This paid operation creates a persistent agent skill.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Skill name. Lowercase letters, digits, and hyphens only. |
| `content` | string | Yes | Full skill instructions, typically Markdown. |
| `description` | string | Yes | Short description of when the skill should be used. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Webhook

**Slug:** `NOTRA_CREATE_WEBHOOK`

Create a paid outbound webhook subscription that causes persistent external deliveries. The signing secret is returned only once and must be stored securely.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | HTTPS endpoint that will receive Notra events. |
| `events` | array | Yes | Event types to deliver to the endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Brand Identity

**Slug:** `NOTRA_DELETE_BRAND_IDENTITY`

Permanently delete a non-default brand identity and disable every schedule or event trigger that references it. The default identity cannot be deleted.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `brand_identity_id` | string | Yes | Non-default brand identity ID to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Event Trigger

**Slug:** `NOTRA_DELETE_EVENT_TRIGGER`

Delete an event trigger. Permanently delete an event trigger and stop future matching events from running it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `trigger_id` | string | Yes | triggerId. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete GEO Competitor

**Slug:** `NOTRA_DELETE_GEO_COMPETITOR`

Permanently stop tracking a competitor and return the remaining competitor list.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Competitor name, matched case-insensitively. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete GEO Project

**Slug:** `NOTRA_DELETE_GEO_PROJECT`

Permanently delete a GEO project and cascade-delete its settings, prompts, sequences, competitors, scans, checks, and reports, while cancelling pending scans. Feedback is detached, not deleted. The last project or a project with hosted Sites cannot be deleted.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | ID of the GEO project to permanently delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete GEO Prompt

**Slug:** `NOTRA_DELETE_GEO_PROMPT`

Permanently stop tracking a GEO prompt. This destructive change removes it from future scans and requires an active GEO plan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `prompt_id` | string | Yes | Prompt ID to stop tracking. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete GEO Sequence

**Slug:** `NOTRA_DELETE_GEO_SEQUENCE`

Permanently delete a tracked GEO prompt sequence so it can no longer be run.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | GEO project ID. |
| `sequence_id` | string | Yes | Sequence ID to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Integration

**Slug:** `NOTRA_DELETE_INTEGRATION`

Permanently delete a Notra GitHub or Linear integration and disable every schedule or event trigger that targets it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `integration_id` | string | Yes | GitHub or Linear integration ID to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Post

**Slug:** `NOTRA_DELETE_POST`

Permanently delete one Notra post by ID. Use only when the post is no longer needed; this operation cannot be undone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_id` | string | Yes | ID of the post to permanently delete. Verify the ID before calling because deletion cannot be undone. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Schedule

**Slug:** `NOTRA_DELETE_SCHEDULE`

Deletes the schedule and stops future runs. Posts generated by earlier runs are kept. Permanently delete a schedule and stop future runs; posts from previous runs remain.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `schedule_id` | string | Yes | scheduleId. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Skill

**Slug:** `NOTRA_DELETE_SKILL`

Deletes a custom skill. System skills cannot be deleted. Permanently delete an agent skill.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Skill name. Lowercase letters, digits, and hyphens only. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Webhook

**Slug:** `NOTRA_DELETE_WEBHOOK`

Permanently remove a Notra webhook subscription and cancel all deliveries that have not yet been sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `endpoint_id` | string | Yes | Webhook endpoint ID to remove. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate Brand Identity

**Slug:** `NOTRA_GENERATE_BRAND_IDENTITY`

Create a brand identity immediately and queue a paid, irreversible website-analysis job that fills its company, tone, and audience fields. Poll NOTRA_GET_BRAND_IDENTITY_GENERATION; limited to 5 requests per minute per API key.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Unique display name; defaults to "Untitled Brand Voice". |
| `website_url` | string | Yes | Public website to analyze; https is assumed when the scheme is omitted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate Post

**Slug:** `NOTRA_GENERATE_POST`

Queue a paid, irreversible AI post-generation job. The call consumes plan capacity or credits even if later generation fails. Poll NOTRA_GET_POST_GENERATION until terminal; limited to 10 requests per minute per API key.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `github` | object | No | Connected repositories selected by owner and name; cannot be combined with integrations.github. |
| `timezone` | string | No | IANA time zone for relative lookback windows. |
| `data_points` | object | No | Kinds of source activity to collect. |
| `content_type` | string ("changelog" | "blog_post" | "linkedin_post" | "twitter_post" | "image") | Yes | Type of content to generate. |
| `integrations` | object | No | Integration IDs to use as activity sources. Omit with github to use all connected GitHub integrations. |
| `brand_voice_id` | string | No | Deprecated legacy brand voice ID; use brand_identity_id instead. |
| `repository_ids` | array | No | Deprecated repository IDs; use integrations.github instead. |
| `selected_items` | object | No | Specific commits, pull requests, releases, or Linear issues to include. |
| `lookback_window` | string ("current_day" | "yesterday" | "last_7_days" | "last_14_days" | "last_30_days") | No | How far back to collect source activity. |
| `brand_identity_id` | string | No | Brand identity to write in; defaults to the organization's default. |
| `linear_integration_ids` | array | No | Deprecated Linear integration IDs; use integrations.linear instead. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Brand Identity

**Slug:** `NOTRA_GET_BRAND_IDENTITY`

Get one Notra brand identity by ID. A missing identity is represented by a successful response with brand_identity set to null.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `brand_identity_id` | string | Yes | Brand identity ID to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Brand Identity Generation

**Slug:** `NOTRA_GET_BRAND_IDENTITY_GENERATION`

Get a brand identity analysis job. Poll until status is completed or failed, then fetch job.brand_identity_id with NOTRA_GET_BRAND_IDENTITY.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `job_id` | string | Yes | Job ID returned by NOTRA_GENERATE_BRAND_IDENTITY. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Chat

**Slug:** `NOTRA_GET_CHAT`

Get one Notra chat and its complete message history by chat ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | string | Yes | ID of the chat to retrieve, from NOTRA_LIST_CHATS. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Chat By External Channel

**Slug:** `NOTRA_GET_CHAT_BY_EXTERNAL_CHANNEL`

Find the Notra chat linked to a Discord or Slack channel ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | string ("discord" | "slack") | Yes | Messaging platform the channel belongs to. |
| `channel_id` | string | Yes | Channel ID on that platform. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Event Trigger

**Slug:** `NOTRA_GET_EVENT_TRIGGER`

Returns one GitHub event trigger with its event filters, monitored repositories, generated content type, and publishing settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `trigger_id` | string | Yes | Event trigger to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Feedback

**Slug:** `NOTRA_GET_FEEDBACK`

Returns one feedback entry with its classification, triage status, submission context, and timestamps.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `feedback_id` | string | Yes | Feedback entry to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Agent Readiness

**Slug:** `NOTRA_GET_GEO_AGENT_READINESS`

Get the latest stored agent-readiness report, any newer run state, score history, and comparison for a GEO project's website without starting a scan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | GEO project ID from NOTRA_LIST_GEO_PROJECTS. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Competitor Share

**Slug:** `NOTRA_GET_GEO_COMPETITOR_SHARE`

Read paid-plan competitor share-of-voice metrics without starting a scan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `days` | integer | No | Rolling window in days. |
| `to_date` | string | No | Inclusive end date. |
| `from_date` | string | No | Inclusive start date. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Competitor Visibility

**Slug:** `NOTRA_GET_GEO_COMPETITOR_VISIBILITY`

Read one competitor's paid-plan mention history without starting a scan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `days` | integer | No | Rolling window in days. |
| `brand` | string | Yes | Competitor brand from competitor share. |
| `to_date` | string | No | Inclusive end date. |
| `from_date` | string | No | Inclusive start date. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Content Brief

**Slug:** `NOTRA_GET_GEO_CONTENT_BRIEF`

Read one stored paid-plan GEO content brief without approving or starting writer work.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `brief_id` | string | Yes | Content brief ID. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Ingest Setup

**Slug:** `NOTRA_GET_GEO_INGEST_SETUP`

Read paid-plan traffic installation snippets and endpoints. This does not issue or rotate credentials, but deploying the returned setup changes external traffic collection.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Language Share

**Slug:** `NOTRA_GET_GEO_LANGUAGE_SHARE`

Read paid-plan GEO visibility by language without starting a scan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `days` | integer | No | Rolling window in days. |
| `to_date` | string | No | Inclusive end date. |
| `from_date` | string | No | Inclusive start date. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Project

**Slug:** `NOTRA_GET_GEO_PROJECT`

Get one GEO project. All GEO endpoints require an active GEO plan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Prompt History

**Slug:** `NOTRA_GET_GEO_PROMPT_HISTORY`

Read stored paid-plan checks for a tracked prompt without starting a scan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `scan_id` | string | No | Optional scan ID filter. |
| `prompt_id` | string | Yes | Tracked prompt ID. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Prompt Result Detail

**Slug:** `NOTRA_GET_GEO_PROMPT_RESULT_DETAIL`

Read one stored paid-plan prompt result without starting a scan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `check_id` | string | Yes | Check ID from summaries or prompt history. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Prompt Results

**Slug:** `NOTRA_GET_GEO_PROMPT_RESULTS`

Read stored paid-plan prompt answers and grounding data without starting or billing a scan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `days` | integer | No | Rolling window in days; ignored when dates are supplied. |
| `to_date` | string | No | Inclusive end date. |
| `from_date` | string | No | Inclusive start date. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Scan

**Slug:** `NOTRA_GET_GEO_SCAN`

Get one GEO scan's status, progress and mentions by engine, including safe failure metadata. Legacy scans may have null planned totals. Requires an active GEO plan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `scan_id` | string | Yes | GEO scan ID. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Sentiment

**Slug:** `NOTRA_GET_GEO_SENTIMENT`

Read current and previous paid-plan GEO sentiment metrics without starting billed analysis.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `days` | integer | No | Rolling window in days. |
| `to_date` | string | No | Inclusive end date. |
| `from_date` | string | No | Inclusive start date. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Sentiment Analysis

**Slug:** `NOTRA_GET_GEO_SENTIMENT_ANALYSIS`

Read cached paid-plan thematic sentiment analysis. This never starts or bills a model run.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `days` | integer | No | Rolling window in days. |
| `to_date` | string | No | Inclusive end date. |
| `from_date` | string | No | Inclusive start date. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Settings

**Slug:** `NOTRA_GET_GEO_SETTINGS`

Get the complete GEO configuration and current scan state for a project. Requires an active GEO plan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Traffic Journey

**Slug:** `NOTRA_GET_GEO_TRAFFIC_JOURNEY`

Read the paid-plan events in one AI traffic journey without changing tracking setup.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `days` | integer | No | Rolling window in days. |
| `to_date` | string | No | Inclusive end date. |
| `from_date` | string | No | Inclusive start date. |
| `journey_id` | string | Yes | Traffic journey ID. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Traffic Log

**Slug:** `NOTRA_GET_GEO_TRAFFIC_LOG`

Read a bounded set of recent paid-plan AI traffic events without changing tracking setup.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `host` | string | No | Hostname filter including its subdomains. |
| `limit` | integer | No | Maximum recent events to return. |
| `categories` | array | No | Traffic categories to include. |
| `project_id` | string | Yes | GEO project ID. |
| `visitor_types` | array | No | Visitor types to include. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Traffic Overview

**Slug:** `NOTRA_GET_GEO_TRAFFIC_OVERVIEW`

Get AI crawler, citation, referral, and conversion traffic totals, source breakdowns, and daily points for a GEO project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `days` | integer | No | Rolling window in days; Notra ignores it when explicit dates are supplied. |
| `to_date` | string | No | Optional inclusive end date in YYYY-MM-DD format. |
| `from_date` | string | No | Optional inclusive start date in YYYY-MM-DD format. |
| `project_id` | string | Yes | GEO project ID from NOTRA_LIST_GEO_PROJECTS. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Visibility Overview

**Slug:** `NOTRA_GET_GEO_VISIBILITY_OVERVIEW`

Get mention rates, checks, citations, visibility, and average positions by answer engine for a GEO project and date window.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `days` | integer | No | Rolling window size in days (1-365); Notra ignores it when explicit dates are supplied. |
| `to_date` | string | No | Optional inclusive end date in YYYY-MM-DD format. |
| `from_date` | string | No | Optional inclusive start date in YYYY-MM-DD format. |
| `project_id` | string | Yes | GEO project ID returned by the project-listing action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GEO Visibility Timeseries

**Slug:** `NOTRA_GET_GEO_VISIBILITY_TIMESERIES`

Read paid-plan daily GEO visibility metrics. This does not start a scan or bill an analysis job.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `days` | integer | No | Rolling window in days; ignored when from/to are set. |
| `to_date` | string | No | Inclusive end date. |
| `from_date` | string | No | Inclusive start date. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Post

**Slug:** `NOTRA_GET_POST`

Get one Notra post by ID, including its rendered content, markdown source, metadata, and publication status. A missing post is returned as post=null.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_id` | string | Yes | ID of the post to retrieve, from NOTRA_LIST_POSTS or NOTRA_CREATE_POST. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Post Generation

**Slug:** `NOTRA_GET_POST_GENERATION`

Get a post generation job and event log. Poll until status is completed, failed, or skipped; when completed, fetch job.post_id with NOTRA_GET_POST.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `job_id` | string | Yes | Job ID returned by NOTRA_GENERATE_POST. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Post Schedule

**Slug:** `NOTRA_GET_POST_SCHEDULE`

Get a post's current publishing schedule and the state of every destination, or null when no schedule exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_id` | string | Yes | Post ID whose publishing schedule to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Public API Status

**Slug:** `NOTRA_GET_PUBLIC_API_STATUS`

Check whether Notra's public API is reachable and discover its authentication metadata without a connected credential.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Skill

**Slug:** `NOTRA_GET_SKILL`

Returns a skill by name, including its full instructions and whether it is built into Notra.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Skill name. Lowercase letters, digits, and hyphens only. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Webhook Delivery

**Slug:** `NOTRA_GET_WEBHOOK_DELIVERY`

Get one Notra webhook delivery, including its serialized payload and complete attempt history.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `delivery_id` | string | Yes | Webhook delivery ID to inspect. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Workspace Context

**Slug:** `NOTRA_GET_WORKSPACE_CONTEXT`

Return the workspace and authentication context bound to the connected Notra credential, optionally including pending workspace invitations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include_pending` | string | No | Set to 'true' to include pending workspace invitations when the credential supports account-wide discovery. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Import GEO Competitors

**Slug:** `NOTRA_IMPORT_GEO_COMPETITORS`

Bulk create or update a project's persistent competitor list from up to 2,000 rows or CSV. Existing names are updated rather than duplicated; send the whole list in one request. Paid GEO operation limited to 10 requests per 10 minutes per organization.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `csv` | string | No | Raw CSV with name and optional domain, kind, and synonyms columns, used when rows is omitted. |
| `rows` | array | No | Structured competitors to import in one request. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Import GEO Prompts

**Slug:** `NOTRA_IMPORT_GEO_PROMPTS`

Bulk-persist up to 500 tracked prompts from rows or CSV. Existing prompts are skipped rather than duplicated. Requires paid GEO access and is limited to 10 requests per 10 minutes per organization.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `csv` | string | No | Raw CSV with a prompt column and optional enabled column, used when rows is omitted. |
| `rows` | array | No | Structured prompts to import. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Issue Geo Ingest Token

**Slug:** `NOTRA_ISSUE_GEO_INGEST_TOKEN`

Returns the current tracking token together with the install snippets. Pass `projectId` for a project-specific token; without it, the legacy token only accepts the organization's oldest project's hosts. Issuing does not invalidate previously issued tokens; use rotation for that. Issue a sensitive GEO ingest bearer token. Store the returned token securely and never log or expose it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | No | Bind the token to one project. Omit to track the whole organization. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Agent Sessions

**Slug:** `NOTRA_LIST_AGENT_SESSIONS`

Returns recent agent sessions and their linked chat IDs, origin surfaces, statuses, and timestamps. Results can contain sensitive conversation metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of sessions to return (1-50). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Brand Identities

**Slug:** `NOTRA_LIST_BRAND_IDENTITIES`

List the workspace's brand identities, with the default first, for selecting brand context in content and GEO workflows.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Chats

**Slug:** `NOTRA_LIST_CHATS`

List the workspace's Notra chat sessions without loading message histories.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Event Triggers

**Slug:** `NOTRA_LIST_EVENT_TRIGGERS`

Returns the organization's GitHub event triggers, optionally filtered to triggers monitoring any of the supplied repository IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `repository_ids` | string | No | Filter by repository IDs using a comma-separated list |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Feedback

**Slug:** `NOTRA_LIST_FEEDBACK`

List workspace feedback with optional triage-status, kind, and project filters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `kind` | string ("bug" | "feature" | "praise" | "question" | "other") | No | Feedback kind to include. |
| `limit` | integer | No | Maximum feedback entries to return in this page (1-100). |
| `status` | string ("new" | "triaged" | "resolved" | "archived") | No | Triage status to include. |
| `project_id` | string | No | Only return feedback associated with this project ID. |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GEO Changes

**Slug:** `NOTRA_LIST_GEO_CHANGES`

Compare the two latest stored paid-plan GEO scans without starting a new scan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GEO Competitors

**Slug:** `NOTRA_LIST_GEO_COMPETITORS`

List competitors tracked for a GEO project. Requires an active GEO plan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GEO Content Briefs

**Slug:** `NOTRA_LIST_GEO_CONTENT_BRIEFS`

List stored paid-plan GEO briefs. This read does not plan, approve, or bill work.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GEO Content Gaps

**Slug:** `NOTRA_LIST_GEO_CONTENT_GAPS`

Read paid-plan content opportunities and linked briefs. This does not plan, approve, or bill content work.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GEO Projects

**Slug:** `NOTRA_LIST_GEO_PROJECTS`

List the connected workspace's paid GEO projects and their brand associations.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GEO Prompt Result Summaries

**Slug:** `NOTRA_LIST_GEO_PROMPT_RESULT_SUMMARIES`

Return one bounded page of stored paid-plan prompt result summaries; no scan is started.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `days` | integer | No | Rolling window in days. |
| `limit` | integer | No | Summaries on this page. |
| `query` | string | No | Search prompt text. |
| `cursor` | string | No | Continuation cursor from a previous response. |
| `engine` | string | No | Filter by engine. |
| `to_date` | string | No | Inclusive end date. |
| `from_date` | string | No | Inclusive start date. |
| `mentioned` | string ("true" | "false") | No | Filter by mention state. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GEO Prompts

**Slug:** `NOTRA_LIST_GEO_PROMPTS`

List custom and automatically derived prompts tracked for a GEO project. Requires an active GEO plan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GEO Scans

**Slug:** `NOTRA_LIST_GEO_SCANS`

List paginated GEO scans with planned, completed, mentioned, and failed check totals by engine plus safe failure metadata. Requires an active GEO plan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number. |
| `limit` | integer | No | Scans per page. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GEO Sentiment Evidence

**Slug:** `NOTRA_LIST_GEO_SENTIMENT_EVIDENCE`

Return one bounded page of stored paid-plan sentiment evidence without starting analysis.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `days` | integer | No | Rolling window in days. |
| `cursor` | string | No | Continuation cursor from a previous response. |
| `to_date` | string | No | Inclusive end date. |
| `from_date` | string | No | Inclusive start date. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GEO Sequences

**Slug:** `NOTRA_LIST_GEO_SEQUENCES`

List tracked multi-turn GEO prompt sequences. Requires an active GEO plan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GEO Shelf Sources

**Slug:** `NOTRA_LIST_GEO_SHELF_SOURCES`

Return one bounded page of paid-plan cited and tracked GEO sources without starting a scan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Sources on this page. |
| `project_id` | string | Yes | GEO project ID. |
| `next_cursor` | string | No | Continuation cursor from a previous response. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GEO Traffic Journeys

**Slug:** `NOTRA_LIST_GEO_TRAFFIC_JOURNEYS`

List a bounded set of paid-plan AI traffic journeys without changing tracking setup.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `days` | integer | No | Rolling window in days. |
| `limit` | integer | No | Maximum journeys to return. |
| `to_date` | string | No | Inclusive end date. |
| `from_date` | string | No | Inclusive start date. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GEO Traffic Pages

**Slug:** `NOTRA_LIST_GEO_TRAFFIC_PAGES`

List a bounded paid-plan ranking of pages visited by AI traffic without changing tracking setup.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `days` | integer | No | Rolling window in days. |
| `host` | string | No | Hostname filter including its subdomains. |
| `limit` | integer | No | Maximum ranked pages to return. |
| `to_date` | string | No | Inclusive end date. |
| `from_date` | string | No | Inclusive start date. |
| `project_id` | string | Yes | GEO project ID. |
| `visitor_type` | string ("crawler" | "ai_referral") | No | Visitor type filter. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Integrations

**Slug:** `NOTRA_LIST_INTEGRATIONS`

List enabled GitHub and Linear integrations and their IDs for use as Notra content-generation sources. The Slack list is always empty.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Post Authors

**Slug:** `NOTRA_LIST_POST_AUTHORS`

List Notra post authors and their IDs for assigning authors to blog posts and changelogs.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Posts

**Slug:** `NOTRA_LIST_POSTS`

List the connected workspace's posts, with filters for publication status, content type, and brand identity. Notra returns published posts only unless statuses includes both draft and published.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string ("asc" | "desc") | No | Sort posts by creation date, oldest or newest first. |
| `limit` | integer | No | Maximum posts to return in this page (1-100). |
| `statuses` | array | No | Publication statuses to include. Omit to return published posts only; pass both draft and published to include all posts. Sent as Notra's comma-separated status filter. |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call; omit for the first page. |
| `content_types` | array | No | Content types to include; sent as Notra's comma-separated contentType filter. |
| `brand_identity_ids` | array | No | Brand identity IDs to include; obtain IDs from NOTRA_LIST_BRAND_IDENTITIES. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Schedules

**Slug:** `NOTRA_LIST_SCHEDULES`

Returns the organization's cron schedules, newest first. repositoryMap maps each targeted GitHub integration ID to an owner/repo label.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `repository_ids` | string | No | Filter by GitHub integration IDs using a comma-separated list. Only schedules targeting at least one of them are returned. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Skills

**Slug:** `NOTRA_LIST_SKILLS`

Returns the organization's skills sorted by name, including built-in system skills (isSystem: true). Skill content is omitted; use GET /v1/skills/{name} to read it.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Webhook Deliveries

**Slug:** `NOTRA_LIST_WEBHOOK_DELIVERIES`

List Notra webhook delivery history at a specific offset, optionally filtered by delivery status. Increase offset to continue when has_more is true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `offset` | integer | No | Zero-based delivery offset. |
| `status` | string ("all" | "pending" | "sending" | "retrying" | "succeeded" | "failed" | "cancelled") | No | Delivery status filter. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Webhooks

**Slug:** `NOTRA_LIST_WEBHOOKS`

List Notra outbound webhook subscriptions without exposing their signing secrets.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Plan GEO Content Brief

**Slug:** `NOTRA_PLAN_GEO_CONTENT_BRIEF`

Plan and save a GEO content brief. This paid operation books AI credits; autoApprove also starts the billed writer. A 409 after four minutes may still finish, so do not retry; list briefs instead.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `topic` | string | Yes | Article topic; source content replaces it for source-backed briefs. |
| `source_id` | string | No | Gap, prompt, or suggestion ID; an existing open brief may be reused. |
| `project_id` | string | Yes | GEO project ID. |
| `sitemap_id` | string | No | Sitemap ID to use. |
| `source_kind` | string ("manual" | "gap" | "prompt" | "search_console" | "ai_search") | No | Source kind for the brief. |
| `auto_approve` | boolean | No | Start the billed writer immediately after planning. |
| `competitor_ids` | array | No | Competitor IDs to consider. |
| `brand_voice_ids` | array | No | Brand voice IDs; only the first overrides the project brand. |
| `content_subtype` | string ("guide" | "comparison" | "listicle" | "how-to" | "faq" | "alternatives") | No | Requested content subtype. |
| `existing_page_url` | string | No | Existing page URL to refresh. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Post Chat Message

**Slug:** `NOTRA_POST_CHAT_MESSAGE`

Persist a message or tool-approval decisions in an existing paid Notra chat and wait for the full assistant stream. Earlier history is included automatically. The response is newline-delimited stream text and may run for an unbounded model/tool duration. Tool approvals can trigger external mutations; retrying can duplicate them. Limited with chat creation to 30 requests per minute per organization.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `model` | string ("auto" | "anthropic/claude-opus-5.5" | "anthropic/claude-opus-5" | "anthropic/claude-opus-4.8" | "anthropic/claude-sonnet-5" | "anthropic/claude-sonnet-4.6" | "anthropic/claude-haiku-4.5" | "openai/gpt-6-sol" | "openai/gpt-6-luna" | "openai/gpt-5.6-sol" | "openai/gpt-5.5" | "openai/gpt-5.4") | No | Model to respond with; omit or use auto to let Notra choose. |
| `chat_id` | string | Yes | Existing Notra chat ID. |
| `context` | array | No | Connected GitHub, Linear, or MCP integrations the assistant may use. |
| `message` | string | No | User message to send. Omit when responding to pending approvals. |
| `timezone` | string | No | IANA time zone used to interpret dates. |
| `approvals` | array | No | Decision for every pending tool approval in the latest assistant message. Omit message when using this field. |
| `thinking_level` | string ("off" | "low" | "medium" | "high") | No | Reasoning effort when thinking is enabled. |
| `enable_thinking` | boolean | No | Allow the model to reason before answering. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retry Webhook Delivery

**Slug:** `NOTRA_RETRY_WEBHOOK_DELIVERY`

Queue a paid redelivery of a failed webhook while retaining its prior attempt history. This sends the payload to the external endpoint again and can duplicate downstream effects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `delivery_id` | string | Yes | Failed webhook delivery ID to queue again. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Rotate Geo Ingest Token

**Slug:** `NOTRA_ROTATE_GEO_INGEST_TOKEN`

Invalidates every tracking token previously issued for this organization and returns a fresh one. Deployments still sending the old token stop being accepted immediately. Irreversibly rotate the sensitive GEO ingest bearer token, immediately invalidating the previous token. Store the replacement securely and never log or expose it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | No | Bind the token to one project. Omit to track the whole organization. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Run GEO Sequence

**Slug:** `NOTRA_RUN_GEO_SEQUENCE`

Irreversibly execute every turn of a tracked sequence against every available answer engine and record checks, consuming paid Notra model capacity. The synchronous call may take minutes and is limited to 10 runs per 10 minutes per organization. A 409 after four minutes means work continues; do not retry and instead read project GEO checks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | GEO project ID. |
| `sequence_id` | string | Yes | Sequence ID to execute. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Schedule Post

**Slug:** `NOTRA_SCHEDULE_POST`

Schedule a paid future publication that marks the saved post published in Notra and can create and merge a GitHub pull request or post to X or LinkedIn. Replaces any schedule that has not started; later post edits are included. Publishing occurs within about one minute and transient failures retry automatically.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_id` | string | Yes | Post ID to schedule. |
| `time_zone` | string | No | IANA time zone used for display and emails. |
| `destinations` | array | No | Optional external destinations. The post is always published in Notra. |
| `scheduled_at` | string | Yes | ISO 8601 publication time, no more than one year ahead; up to five minutes in the past publishes immediately. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Send Agent Session Message

**Slug:** `NOTRA_SEND_AGENT_SESSION_MESSAGE`

Sends the next turn of an agent session. The server binds the session's stored continuation token, so the client-provided one is ignored. Answer input.requested events (tool approvals, questions) from the event stream via inputResponses. Send a paid message to an AI agent session. This can consume credits and produce unbounded streamed model output; do not retry blindly after an ambiguous failure.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message` | string | No | The next user message. Omit when only answering a pending input request. |
| `session_id` | string | Yes | Agent session to continue. |
| `input_responses` | array | No | Answers to pending input.requested events (tool approvals, questions) from the event stream. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Start GEO Agent Readiness Scan

**Slug:** `NOTRA_START_GEO_AGENT_READINESS_SCAN`

Queue a paid readiness scan of the project's linked website. This starts external scanning work; an identical in-flight scan may be reused.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | GEO project whose linked website will be scanned. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Stream Agent Session Events

**Slug:** `NOTRA_STREAM_AGENT_SESSION_EVENTS`

Fetch and parse the durable NDJSON event response for an agent session after Notra closes the response, including input.requested events for tool approvals. This call does not deliver events incrementally and returned events can contain sensitive conversation content.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `session_id` | string | Yes | Agent session whose current event stream to read. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Submit Feedback

**Slug:** `NOTRA_SUBMIT_FEEDBACK`

Record feedback for the organization that owns the credential. Requires an API key with the feedback.write scope. Agents and MCP servers should post to the organization's feedback URL instead. Submit persistent workspace feedback. This paid write has no delete endpoint.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `kind` | string ("bug" | "feature" | "praise" | "question" | "other") | No | What kind of feedback this is. When omitted, Notra classifies it. |
| `title` | string | No | Short summary. When omitted, Notra writes one. |
| `source` | string ("mcp" | "api" | "sdk") | No | Channel the feedback arrived through. |
| `message` | string | Yes | The feedback itself. |
| `metadata` | object | No | Arbitrary JSON attached to the feedback, up to 8 KB. |
| `sentiment` | string ("negative" | "neutral" | "positive") | No | Overall sentiment. When omitted, Notra classifies it from the message. |
| `project_id` | string | No | Project to file the feedback under. |
| `user_agent` | string | No | User-agent string of the submitting client. |
| `agent_model` | string | No | Model used by the submitting agent. |
| `context_url` | string | No | Page or resource the feedback is about. |
| `external_id` | string | No | Your own identifier for the user or session. |
| `agent_client` | string | No | The agent or client that submitted the feedback. |
| `tool_version` | string | No | Version of the submitting tool or integration. |
| `idempotency_key` | string | No | Submitting the same key twice returns the original feedback instead of creating a duplicate. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Submit Organization Feedback

**Slug:** `NOTRA_SUBMIT_ORGANIZATION_FEEDBACK`

Record feedback from an AI agent or integration by posting to the organization's feedback URL, as shown on the Feedback page in the dashboard. No credentials are required. Limited per source IP and per organization. Submit persistent feedback without authentication. This paid write has no delete endpoint and is rate-limited by source IP and organization.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `kind` | string ("bug" | "feature" | "praise" | "question" | "other") | No | What kind of feedback this is. When omitted, Notra classifies it. |
| `title` | string | No | Short summary. When omitted, Notra writes one. |
| `source` | string ("mcp" | "api" | "sdk") | No | Channel the feedback arrived through. |
| `message` | string | Yes | The feedback itself. |
| `metadata` | object | No | Arbitrary JSON attached to the feedback, up to 8 KB. |
| `sentiment` | string ("negative" | "neutral" | "positive") | No | Overall sentiment. When omitted, Notra classifies it from the message. |
| `project_id` | string | No | Project to file the feedback under. |
| `user_agent` | string | No | User-agent string of the submitting client. |
| `agent_model` | string | No | Model used by the submitting agent. |
| `context_url` | string | No | Page or resource the feedback is about. |
| `external_id` | string | No | Your own identifier for the user or session. |
| `agent_client` | string | No | The agent or client that submitted the feedback. |
| `tool_version` | string | No | Version of the submitting tool or integration. |
| `idempotency_key` | string | No | Submitting the same key twice returns the original feedback instead of creating a duplicate. |
| `organization_slug` | string | Yes | Your organization slug, as shown in your feedback URL on the Feedback page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Suggest GEO Competitors

**Slug:** `NOTRA_SUGGEST_GEO_COMPETITORS`

Use Notra's paid discovery operation to suggest competitors for a domain. Results are cached per organization and domain; requests are limited to 10 per 10 minutes per organization.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `domain` | string | Yes | Website domain to analyze, such as example.com. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Brand Identity

**Slug:** `NOTRA_UPDATE_BRAND_IDENTITY`

Update selected fields of a Notra brand identity. This paid mutation can also change the organization's default identity by setting is_default to true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New display name. |
| `audience` | string | No | Target audience; null clears it. |
| `language` | string ("English" | "Spanish" | "French" | "German" | "Portuguese" | "Dutch" | "Italian" | "Japanese" | "Korean" | "Chinese" | "Arabic" | "Hindi" | "Russian" | "Turkish" | "Polish" | "Swedish" | "Danish" | "Norwegian" | "Finnish" | "Czech" | "Romanian" | "Hungarian" | "Greek" | "Thai" | "Vietnamese" | "Indonesian" | "Ukrainian" | "Hebrew") | No | Writing language; null clears it. |
| `is_default` | boolean | No | Set true to make this the default identity; false is not accepted. |
| `custom_tone` | string | No | Custom tone override; empty string or null clears it. |
| `website_url` | string | No | New website URL. |
| `company_name` | string | No | Company name; null clears it. |
| `tone_profile` | string ("Conversational" | "Professional" | "Casual" | "Formal") | No | Preset tone profile; without custom_tone it clears a saved custom tone. |
| `brand_identity_id` | string | Yes | Brand identity ID to update. |
| `company_description` | string | No | Company description; null clears it. |
| `custom_instructions` | string | No | Additional writing instructions; null clears them. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Event Trigger

**Slug:** `NOTRA_UPDATE_EVENT_TRIGGER`

Replaces an existing GitHub event trigger's filters, monitored repositories, generated content type, and publishing settings. This paid operation changes future automation behavior.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `enabled` | boolean | Yes | Whether matching events can start generation. |
| `targets` | object | Yes | Repositories to monitor. |
| `trigger_id` | string | Yes | Event trigger to replace. |
| `output_type` | string ("changelog" | "blog_post" | "linkedin_post" | "twitter_post" | "image") | Yes | Content type generated for matching events. |
| `source_type` | string | Yes | GitHub webhook event source. |
| `auto_publish` | boolean | No | Publish generated posts automatically. |
| `output_config` | object | No | Optional publishing and brand configuration. |
| `source_config` | object | Yes | GitHub event matching configuration. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Feedback

**Slug:** `NOTRA_UPDATE_FEEDBACK`

Changes a feedback entry's triage status and returns the updated entry. This is a paid write operation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string ("new" | "triaged" | "resolved" | "archived") | Yes | Triage status. |
| `feedback_id` | string | Yes | Feedback entry whose triage status will change. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update GEO Project

**Slug:** `NOTRA_UPDATE_GEO_PROJECT`

Rename a GEO project or relink its brand identity. This changes persistent project configuration and requires paid access and a GEO plan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Replacement project name. |
| `project_id` | string | Yes | GEO project ID. |
| `brand_settings_id` | string | No | Replacement linked brand identity ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update GEO Prompt

**Slug:** `NOTRA_UPDATE_GEO_PROMPT`

Enable or disable a tracked prompt, or replace labels on a custom prompt. This changes future scan coverage and requires paid GEO access.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | No | Replacement labels for a custom prompt. |
| `enabled` | boolean | No | Whether this prompt participates in scans. |
| `prompt_id` | string | Yes | Tracked prompt ID. |
| `project_id` | string | Yes | GEO project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update GEO Sequence

**Slug:** `NOTRA_UPDATE_GEO_SEQUENCE`

Change a tracked sequence's name, turns, or enabled state. This affects future paid GEO runs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Replacement name. |
| `steps` | array | No | Replacement ordered conversation turns. |
| `enabled` | boolean | No | Whether the sequence is enabled. |
| `project_id` | string | Yes | GEO project ID. |
| `sequence_id` | string | Yes | Sequence ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Replace GEO Settings

**Slug:** `NOTRA_UPDATE_GEO_SETTINGS`

Replace the project's GEO settings and re-arm its recurring scan. Unknown engines or languages are rejected; hidden engine selections are retained, the prompt language remains tracked, and ZDR is disabled without its add-on. This persistent scheduling change requires paid access and a GEO plan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `aliases` | array | Yes | Complete company alias list. |
| `domains` | array | No | Additional tracked hostnames; omit to keep the stored list. |
| `enabled` | boolean | Yes | Whether GEO tracking is enabled. |
| `engines` | array | Yes | Visible model-catalog engine IDs to track. |
| `languages` | array | Yes | Supported languages to track; the prompt language remains tracked. |
| `project_id` | string | Yes | GEO project ID. |
| `enforce_zdr` | boolean | Yes | Whether to enforce zero data retention; forced off without the ZDR add-on. |
| `company_name` | string | Yes | Tracked company name. |
| `conversion_paths` | array | No | Complete conversion path-prefix list; omit to keep the stored list. |
| `scan_interval_hours` | integer | Yes | Hours between automatic scans, as a whole-day multiple of 24. |
| `track_without_search` | boolean | No | Also scan search-capable models without web search; omit to keep the stored value. |
| `paused_auto_prompt_ids` | array | No | Automatic prompt IDs to skip; omit to keep the stored list. |
| `removed_auto_prompt_ids` | array | No | Automatic prompt IDs removed from tracking; omit to keep the stored list. |
| `non_zdr_approved_engines` | array | Yes | Complete approved non-ZDR engine list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Post

**Slug:** `NOTRA_UPDATE_POST`

Update selected fields of an existing Notra post. Markdown changes re-render content; when title is omitted, Notra derives it from the first markdown heading or keeps the existing title if there is no heading. Status changes can publish or unpublish the post, and content or metadata changes may sync a linked GitHub pull request.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `slug` | string | No | Replacement URL slug for a blog post or changelog. Send null to clear it. This may sync a linked GitHub pull request after the post is saved; check the pull request before retrying a sync error. |
| `title` | string | No | Replacement title. This may sync a linked GitHub pull request after the post is saved; check the pull request before retrying a sync error. |
| `status` | string ("draft" | "published") | No | Replacement publication status. |
| `post_id` | string | Yes | ID of the post to update. |
| `markdown` | string | No | Replacement markdown body, which Notra re-renders as HTML. When title is omitted, Notra derives it from the first heading, or keeps the existing title if the markdown has no heading. This may sync a linked GitHub pull request after the post is saved; check the pull request before retrying a sync error. |
| `metadata` | object | No | Partial site metadata for a blog post or changelog. Send only fields to change; arrays replace stored lists and explicit nulls clear nullable values. This may sync a linked GitHub pull request after the post is saved; check the pull request before retrying a sync error. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Schedule

**Slug:** `NOTRA_UPDATE_SCHEDULE`

Replaces the schedule. Send the full schedule body; fields that are omitted are not preserved from the existing schedule. This paid operation replaces the schedule configuration and can change future generation or automatic publishing behavior.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Display name shown in the dashboard. |
| `enabled` | boolean | Yes | Whether the schedule runs. Disabled schedules are stored but never fire. |
| `targets` | object | Yes | Repositories used as sources. |
| `output_type` | string ("changelog" | "blog_post" | "linkedin_post" | "twitter_post" | "image") | Yes | Type of content each run generates. |
| `schedule_id` | string | Yes | Schedule to replace. |
| `source_type` | string | Yes | Always cron for schedules. |
| `auto_publish` | boolean | No | Publish generated posts automatically instead of saving them as drafts. |
| `output_config` | object | No | Optional publishing and brand configuration. |
| `source_config` | object | Yes | UTC recurrence configuration. |
| `lookback_window` | string ("current_day" | "yesterday" | "last_7_days" | "last_14_days" | "last_30_days") | No | How far back each run collects source activity. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Skill

**Slug:** `NOTRA_UPDATE_SKILL`

Updates the name, description, or content of a skill. System skills can be edited but not renamed. This paid operation changes an existing agent skill.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Skill name. Lowercase letters, digits, and hyphens only. |
| `content` | string | No | Full skill instructions, typically Markdown. |
| `description` | string | No | Short description of when the skill should be used. |
| `current_name` | string | Yes | Skill name. Lowercase letters, digits, and hyphens only. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert GEO Competitor

**Slug:** `NOTRA_UPSERT_GEO_COMPETITOR`

Create, update, or rename a persistent tracked competitor, matching names case-insensitively, and return the full list. Requires paid GEO access.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `kind` | string ("direct" | "indirect") | No | Competitor relationship. |
| `name` | string | Yes | Competitor name, matched case-insensitively. |
| `color` | string | No | Display color, or null. |
| `domain` | string | Yes | Competitor domain, or null. |
| `synonyms` | array | No | Alternative competitor names. |
| `project_id` | string | Yes | GEO project ID. |
| `previous_name` | string | No | Current name when renaming an existing competitor. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
