Home/Docs/Notifications

Notifications

Documentation and guides for OutcomeDev.

OutcomeDev keeps you informed about your tasks with a real-time notification system. Never miss a completed task, a created pull request, or an error that needs your attention.

Notification Bell

The bell icon in the top-right corner of the app shows your notifications at a glance:

  • A red badge appears when you have unread notifications, showing the count
  • Click the bell to open the notification panel, a dropdown showing your recent activity
  • Each notification shows the event type, a brief description, and when it happened

Notification Types

TypeIconWhen It Triggers
Task Completed✓ (green)Your agent successfully finished a task
Pull Request CreatedPR (blue)A pull request was opened for your task
Task Error✕ (red)Something went wrong during task execution

Managing Notifications

Reading Notifications

  • Click any notification to mark it as read and jump directly to the relevant task
  • Use the "Mark all read" button at the top of the panel to clear all unread notifications at once

Real-Time Updates

Notifications appear automatically as the system checks for new updates every 30 seconds. When you're viewing an active task, Server-Sent Events (SSE) deliver status changes instantly, so you see completion and errors the moment they happen.

How It Works

When a task finishes (successfully or with an error), or when a pull request is created, OutcomeDev automatically creates a notification for you. These notifications persist in the database, so you won't lose them if you close the browser or switch devices.

The notification includes:

  • The type of event (completion, PR, or error)
  • A brief excerpt of the task prompt so you know which task it relates to
  • A link to the task page for full details

Tips

  • Check the bell regularly, it's the fastest way to see what your agents have accomplished while you were away.
  • Click through to tasks, notifications link directly to the task detail page where you can review the work, see the PR, or retry if there was an error.
  • Stay in flow, with real-time SSE updates, you don't need to constantly refresh the page to see if your task is done.

Developer Notifications API

OutcomeDev exposes a high-end API that allows your external tools, CI/CD pipelines, and custom scripts to push actionable alerts directly to your dashboard.

1. Generating API Tokens

To use the Notifications API, you must first issue a developer token:

  • Navigate to Settings > Developer.
  • Click "Create API Key" and give it a name.
  • Copy your key (otk_live_...) and store it securely. For security, we never show the full key again.

2. Pushing Notifications

Send a POST request to https://outcomedev.com/api/v1/notify with the X-Outcome-API-Key header.

Request Body (JSON)

FieldTypeRequiredDescription
titlestringYesThe headline of the notification.
bodystringYesThe detailed message or error log.
typestringNodeveloper_event (default) or app_alert.
metadataobjectNoContext for holistic actions (see below).

Metadata Object Details

The metadata object is optional but enables the Holistic Actions. You can include:

  • repoUrl: The full GitHub URL for the repository to be fixed.
  • taskId: The ID of the task to target for interjections or reactivation.
  • suggestedPrompt: An AI-optimized prompt to pre-fill the Task Form.
  • sandboxRefId: Force the reuse of a specific sandbox environment.

5. Ecosystem Use Cases (Start vs. Inject)

ScenarioTriggerTypeResult
Security GuardianSnyk CVE FoundStart TaskUser clicks notification; Agent fixes CVE in fresh sandbox.
Infra ScalerTraffic SpikeInjectActive SRE agent is interrupted to scale Kubernetes replicas.
Agent SwarmTask Hand-offInjectArchitect agent triggers Tester agent to start unit tests.
Deployment AuditVercel SuccessStart TaskUser clicks notification; Agent audits staging site performance.
Mid-Sprint PivotJira UpdateInjectActive agent stashes work to incorporate new requirements.

7. Form Hydration: Context-Aware UI

"Hydration" is the process of pre-filling the OutcomeDev UI with metadata from a notification. This reduces cognitive load to zero.

Scenario: The "One-Tap" Bug Fix

  1. Event: GitHub Action fails on main.
  2. API Call:
    {
      "title": "CI Failure: main branch",
      "body": "Tests failed in src/auth.ts",
      "metadata": {
        "repoUrl": "https://github.com/org/repo",
        "suggestedPrompt": "Fix the test failures in auth.ts"
      }
    }
    
  3. Result: The user sees the notification. Clicking "Start Task" opens a Task Form where the repo is already selected and the prompt is already written. The user just clicks "Execute."

8. Standard (Static) Notifications

Not every notification needs an agent. Sometimes you just want to inform the human.

Scenario: Deployment Success

  1. Event: Vercel finishes a production deployment.
  2. API Call:
    {
      "title": "Deployment Success",
      "body": "v1.2.4 is now live in production.",
      "type": "app_alert"
    }
    
  3. Result: A simple, persistent alert appears in the notification center. No "Start Task" button is shown because no metadata was provided. It is a Static Informational Alert.

10. Advanced Hydration: Staged Re-entry

You can pre-configure the exact sandbox environment for a user, effectively bypassing the "Task Setup" phase.

Metadata Fields:

  • taskId: Links the new turn to an existing conversation.
  • sandboxRefId: Pre-selects the specific durable workspace to reuse.

Scenario: The "Context-Preserving" Follow-up

  1. Event: An agent finishes a task but a downstream test fails.
  2. API Call:
    {
      "title": "Tests Failed after Commit",
      "body": "Your recent changes broke the /api/auth endpoint.",
      "metadata": {
        "repoUrl": "...",
        "taskId": "original-task-id",
        "sandboxRefId": "original-sandbox-id",
        "suggestedPrompt": "Fix the breaking changes in auth.ts while staying in the current environment."
      }
    }
    
  3. Result: When the user clicks "Start Task", the Task Form is pre-configured to Reuse Sandbox. The user is one click away from being back in the exact terminal session where the error occurred.
{
  "title": "CI Regression: Auth Logic",
  "body": "Commit 4f8e2 failed integration tests. Agent is staged for investigation.",
  "type": "developer_event",
  "metadata": {
    "repoUrl": "https://github.com/org/repo",
    "taskId": "task-abc-123",
    "sandboxRefId": "sandbox-xyz-789",
    "suggestedPrompt": "Investigate the integration test failure in auth_test.go."
  }
}

3. Holistic Actions: Compute Lifecycle Mapping

When a developer notification arrives, you can route it to different compute contexts:

You want to...Metadata NeededUI ActionResult
Start FreshbodyStart TaskOpens Task Form. Fresh sandbox created.
Continue WorkrepoUrl + taskIdStart TaskOpens Task Form. Workspace/Files reused.
Pivot AgenttaskId (active)-(Real-time injection handled via API).
Wake Up AgenttaskId (stopped)-(Reactivation handled via API).

4. Advanced: The "Smart Pivot" (Injection)

The most powerful feature of the Notifications API is Real-Time Injection. If you provide a taskId in the metadata of a notification, the system will inject the body of that notification directly into the active task's chat history.

Scenario:

  1. Agent is working on Task A (Low Priority).
  2. Your monitoring script detects a Critical Bug.
  3. The script calls the API targeting Task A.
  4. The Agent is interrupted, reads the new alert, and pivots its reasoning to address the critical bug within the same sandbox.

This allows for seamless, automated reprioritization of your agent workforce without human intervention.

  • OUTCOME_TASK_ID: Links to the current active mission.
  • OUTCOME_SANDBOX_ID: Links to the durable workspace (the original creator task).

Pro Tip: The API is fully decoupled. While your scripts can use these defaults to report back to their "parent" task, they can target any task by simply passing a different taskId in the metadata.