Connect your product
Lifecycle journeys email each of your users based on where they are in your product — nudging people who haven't finished getting started, and teaching the ones who have. To do that, your server tells YouGrow about each user, and YouGrow does the rest.
POST /api/v1/events and its HMAC signing). Use API v2 — sending users.YouGrow is open source. To run it on your laptop, host your own copy or build on it with Claude Code or Cursor, see Open source.
How it works
Your product ── each user's state (HTTP Basic, your key) ──▶ PATCH https://yougrow.ai/api/v2/users/{userId}
◀── context request (signed by YouGrow) ────── optional: before an email, about one user
──── live steps, facts, insights ────────────▶
◀── webhooks (signed by YouGrow) ───────────── optional: e.g. "this user unsubscribed"- Your users' state — your server tells us about each user: who they are, when they signed up, which onboarding steps they've done, facts about their account, and whether they've opted out. You send their current state; we keep it, and journeys decide who gets which email, and when. Sending users →
- The context endpoint — how an email tells someone what their own results mean. Just before we email them, we ask your server for true sentences about their numbers, and it can hold or stop the email. Context endpoint →
- Webhooks (optional) — we tell your server about changes it should mirror, like an unsubscribe. Webhooks →
Getting started
- In YouGrow, go to Products → Connect a product. You get a key id (public) and a secret (shown once — store it in your server's secret manager, never in code or the browser).
- Recommended: open Learn from repo on the connection and connect GitHub or GitLab — read-only, about a minute (how connecting works). We read your code and propose your catalog: your onboarding steps and how each is done, and the facts you can report. You review and keep what's right. Your connection's Integration guide then lists exactly what to build, in priority order and pointing at your own files — with a Copy prompt button that hands the whole job to your coding agent (Claude Code, Cursor, …).
- When someone signs up, send their state:
PATCH /api/v2/users/{userId}withsignedUpAt,email,firstName,timezoneandconsent. Addstepsas they get started. Watch the writes arrive in the connection's Events tab. - If your emails should tell people what their results mean, build a context endpoint, add its URL in the connection's Settings, and press Test connection.
- Build a journey, publish it in test mode (only your listed test users get email), then shadow, then live.
The Node SDK
@yougrowai/node sends your users' state, retries what's safe to retry, splits big batches, and verifies our requests for your endpoints. Node 18 or later, no dependencies, from ES modules (import) or CommonJS (require). Version 0.3.0 is the first for API v2 — earlier versions sent v1 events. Every part of the API is documented here too, so any language works.
npm install @yougrowai/node
import { YouGrow } from "@yougrowai/node"; // or: const { YouGrow } = require("@yougrowai/node");
import { createVerifier, contextResponse } from "@yougrowai/node/server";
const yg = new YouGrow({ keyId: process.env.YOUGROW_KEY_ID!, secret: process.env.YOUGROW_SECRET! });
await yg.users.update("user_123", { signedUpAt: new Date().toISOString(), email: "alex@example.com" });
await yg.users.batch([{ userId: "user_123", steps: { create_project: new Date().toISOString() } }]); // any number
const alex = await yg.users.get("user_123"); // null if YouGrow doesn't hold them
await yg.users.delete("user_123");
await yg.events.track("user_123", "report.exported");
// For your context endpoint and webhooks:
const verifier = createVerifier({ keyId: process.env.YOUGROW_KEY_ID! });Every call is awaited and sent straight away — there's no queue, so nothing is lost when a serverless function returns. The SDK needs a Node runtime. On an edge runtime (Vercel Edge Functions, Next.js middleware, Cloudflare Workers), call the API with fetch — it's plain HTTPS with Basic auth.
For coding agents
Handing the integration to Claude Code, Cursor or another coding agent? Everything here is also plain Markdown, and the API is machine-readable:
- llms.txt is the index, and llms-full.txt has every page in one file. Each page also has a
.mdtwin, e.g. /developers/users.md. - The OpenAPI 3.1 spec, /developers/openapi.json: every endpoint, field, response and error, plus what we send you. People can browse it in the API reference.
- JSON Schemas, generated from the validators our API uses: user patch, batch request, event, user, patch response, batch response, context request, context response, webhook.
- Test vectors for verifying our tokens in any language, and our public keys at
https://yougrow.ai/.well-known/jwks.json. - Working on YouGrow itself, or hosting your own copy? Start at Open source: one prompt gets it running on your laptop.
@yougrowai/node package (0.3.0 and later). YouGrow's own source code isn't: its main branch can be ahead of what's deployed.