Documentation

DocsGetting StartedIntroduction

Introduction

OutreachAgent is an API-first platform purpose-built for AI agent email infrastructure. It gives your autonomous agents the ability to send, receive, and reason about email — with deliverability, compliance, and observability handled out of the box.

Architecture Overview

OutreachAgent is composed of four core services that work together to provide a reliable, scalable email platform:

  • Fastify API — The primary REST interface. All client SDKs and integrations communicate through this layer. Handles authentication, validation, rate limiting, and request routing.
  • Next.js Console — A full-featured web dashboard for managing organizations, configuring inboxes, monitoring deliverability metrics, and debugging message flows.
  • Temporal Workers — Durable workflow execution for long-running processes like domain verification, drip campaign enrollments, bounce processing, and webhook delivery with automatic retries.
  • PostgreSQL — The persistent data layer. Stores organizations, inboxes, messages, threads, contacts, templates, and all audit logs. Row-level security isolates tenant data.

Key Concepts

Before diving in, familiarize yourself with the core abstractions that OutreachAgent uses to organize your account:

  • Organizations — The top-level tenant boundary. Every resource belongs to exactly one organization. Billing and plan limits are scoped here.
  • Pods — Regional isolation units within an organization. Pods let you separate sending reputations, comply with data residency requirements, or run staging vs. production environments side by side.
  • Inboxes — Individual email identities assigned to a pod. Each inbox has its own address, display name, and sending configuration. An inbox is what your agent actually sends from and receives into.
  • Domains — Custom sending domains verified with DKIM and SPF records. Associating a domain with your organization unlocks branded sending and improves deliverability.
  • API Keys — Scoped credentials for programmatic access. Each key is prefixed with rm_ and tied to an organization. You can create multiple keys with different permissions.