External agents: how they learn DripPulse

This page is for customer-built agents (Claude, OpenClaw, custom LLM stacks, Zapier/Make glue, or plain backends) that call https://drippulse.io/api/v1 with an organization API key. It explains where instructions live, what people mean by sessions, and which API to use when—mirroring what the dashboard can do for enrollments.

1. Where instructions live (nothing is implicit)

Models do not automatically know DripPulse. Your agent runtime should fetch or bundle the canonical artifacts below and inject them into context (system prompt, tool descriptions, or RAG corpus).

ArtifactStable URLUse
Agent skills pack (Markdown) /docs/skills/drippulse-agent-skills-v1.md Single-file contract: auth, golden paths, workflows, CRM, errors. Version is in the filename (v1).
OpenAPI (machine-readable) /docs/skills/drippulse-openapi-v1.json Codegen, validators, and agent tools that prefer schema-first definitions.
Human overview + downloads /docs/agent-skills.html Explains the pattern; links skills + OpenAPI.
API reference (workflows & enrollments) /docs/api-reference.html#workflow-enrollments-visibility Endpoint tables, payloads, and enrollment list/detail fields.
Event bridge /docs/event-bridge-workflows.html No hosted inbound workflow URL: your server receives events, then calls DripPulse.
Recommended bootstrap: On agent startup (or on a schedule), GET the Markdown skills URL with Accept: text/markdown, cache the body, and treat it as the authoritative integration brief. For reproducible builds, pin the URL that includes v1 and upgrade deliberately when v2 ships.

2. “Sessions” — what customers have vs what is internal

2.1 Durable automation state (what you actually integrate)

Start here: these are the tenant API surfaces for long-running work. They are separate from browser login and from the internal LLM gateway.

2.2 Other meanings of “session” (not your /api/v1 contract)

KindWhat it isAs an integrator
Browser / dashboard session Cookie or token after a human logs into the web app. Do not use for automation. Use an organization API key as Authorization: Bearer ….
OpenClaw gateway sessions Internal LLM tool gateway (sessions_spawn, sessions_list, sessions_history) used inside DripPulse when a step or agent needs inference. Not exposed as a customer HTTP API on drippulse.io. DripPulse calls it server-side; you do not obtain gateway tokens to drive it directly.

If your product needs a “conversation id” for your own LLM, keep that in your datastore and map it to enrollment_id or lead_ref when you call DripPulse.

3. What to use when (detailed)

Your goalPreferred surfaceWhy
Run a multi-step sequence per person over time (waits, scheduled email, branches), with per-contact ops visibility. POST /api/v1/workflows/:workflow_id/enrollments/bulk + list/detail GETs Each contact gets an enrollment row; a background job runner advances steps on schedule; you can audit in API or UI.
Validate workflow logic without live email or vendor calls. POST /api/v1/workflows/:id/test Fixtures + shallow merge; [test] stubs for side effects.
One-shot or tool-driven run, with safe retries. Workflow-type agent: POST /api/v1/agents/:id/execute with idempotency_key Same workflow graph can back an agent; execution dedupes on your key.
CRM only — create or update leads, opportunities, activities with no timed sequence. /api/v1/crm/... No enrollment required until you explicitly start a workflow.
Inbound lead from a form, Stripe, or partner webhook. Your HTTPS endpoint → normalize → enrollments/bulk and/or agents/execute See event bridge; dedupe before bulk enroll.
Org-wide report, batch scoring, or cron with no per-row schedule in DripPulse. CRM + reports endpoints, or a template agent — not enrollments by default Enrollments are for per-contact runners, not generic batch jobs.

4. Dashboard (GUI) vs API for enrollments

The product UI is aligned with the same backend you call from code:

5. Enrollment API behavior to code against

See also: Programmatic quickstart · Workflow builder guide