I'mBoardDocs
Recipes

Monthly Investor Update

Recipe for a founder's AI agent to draft and send a structured monthly investor update via the I'mBoard API — no manual drafting in the UI.

This recipe lets a founder's AI agent automate the monthly investor update: collect the period's KPI changes, highlights, lowlights, and asks, then draft and send a structured update through I'mBoard — without anyone drafting in the UI.

It mirrors the Board Financial Update pattern and is designed to run on a monthly cadence (cron on the 1st, or on demand before a board cycle).

Machine-readable source

The agent-consumable JSON is served at /api/recipe/investor-update/ and listed in /api/recipe-index/index.json. The YAML below is the source of truth.

Who it's for

  • A founder's AI agent (Claude, ChatGPT, Cursor) running on the founder's machine, triggered monthly.
  • Developers wiring a "every month 1st, pull metrics, draft, send" automation pipeline.
  • Power users who would rather run the flow from a terminal than the UI.

If you prefer to draft and send updates by hand, use the in-product Investor Update flow at app.imboard.ai instead — this recipe is for automation, not a replacement for the UI.

Status

Create/send endpoints pending #1360

Steps 1–4 below call real, shipping I'mBoard endpoints. The final create + send step depends on the Investor Update API (app issue #1360), which is not yet live. Until it ships, the recipe instructs the agent to prepare the structured payload and hand it to a human to review and send via the UI — it must not call a fabricated endpoint.

The recipe

name: investor-update
title: Monthly Investor Update
version: "1.0"
description: >
  Collect recent KPI changes, headline events, and asks; draft and send a
  structured monthly investor update via imboard. Designed for a founder's AI
  agent that runs on a monthly cadence — no manual drafting in the UI.

trigger:
  schedule: "monthly"
  description: "Run on the 1st of each month, or on-demand before a board cycle"

inputs:
  - name: period
    type: string
    description: "Reporting period in YYYY-MM format"
    required: true
  - name: arr_current
    type: number
    description: "Annual recurring revenue for the current period (USD)"
    required: true
  - name: arr_previous
    type: number
    description: "ARR for the prior period (USD) — used to compute the delta"
    required: true
  - name: cash_balance
    type: number
    description: "Current cash balance (USD)"
    required: true
  - name: runway_months
    type: number
    description: "Estimated runway in months"
    required: true
  - name: highlights
    type: string[]
    description: "3-5 bullet points of what's working this period"
    required: true
  - name: lowlights
    type: string[]
    description: "Challenges and misses this period"
    required: true
  - name: asks
    type: string[]
    description: "Specific asks for investors (intros, hiring, advice)"
    required: false
  - name: board_id
    type: string
    description: "Target imboard board ID — falls back to the user's primary board if omitted"
    required: false
  - name: recipients
    type: object[]
    description: "[{ name, email }] of investors — fetched from imboard if omitted"
    required: false

steps:
  - step: 1
    action: "Collect KPI changes, highlights, and asks"
  - step: 2
    action: "Authenticate with imboard API"
    api_call: "GET /api/v1/me"
  - step: 3
    action: "Resolve the target board"
    api_call: "GET /api/v1/boards"
  - step: 4
    action: "Pull last period's metrics for delta context"
    api_call: "GET /api/v1/boards/{board_id}/reports/{report_id}/dashboards?dashboardType=financial"
  - step: 5
    action: "Draft and send the investor update"
    note: >
      Blocked by #1360 — the investor-updates create/send endpoints do not exist
      yet. Prepare the payload and notify the human until the API ships.

The full recipe — including sources and the output schema — is available as JSON.

API calls used

StepMethod & pathStatus
AuthenticateGET /api/v1/me✅ Live
Resolve boardGET /api/v1/boards✅ Live
Delta contextGET /api/v1/boards/{board_id}/reports/{report_id}/dashboards✅ Live
Create + send updatePOST /api/v1/boards/{board_id}/investor-updates (+ /send)⏳ Pending [#1360]

All authenticated calls use a personal access token (imb_pat_...) — never embed real tokens in a recipe; reference an environment variable. See Authentication.

Example agent prompt

You are my investor-update agent. It's the 1st of the month.

1. Read the I'mBoard recipe at https://docs.imboard.ai/api/recipe/investor-update/.
2. Pull this period's metrics from my finance sheet:
   - period: 2026-06
   - arr_current, arr_previous, cash_balance, runway_months
   - 3-5 highlights, the lowlights, and any investor asks
3. Authenticate with $IMBOARD_PAT (GET /api/v1/me), resolve my board
   (GET /api/v1/boards), and pull last month's financial dashboard for context.
4. Compute the ARR delta and draft the update following the recipe's output schema.
5. The create/send endpoints are not live yet (#1360) — so output the finished
   draft and the recipient list for me to review and send from app.imboard.ai.

On this page