Agent integration

Built for AI agents

Your agent reads our docs, signs up, creates Pulses, and gets structured data back. Zero human configuration.

Paste into Claude (or Cursor, or any coding agent)

One prompt. Agent installs the skill, installs the CLI, signs you up, creates your first Pulse.

Zero setup on your end. The agent does signup, verification, CLI install, skill install, and builds your Pulse with clarifying questions. Your only job is reading a 6-digit code from your inbox.

prompt
I want to try Unformal — a platform that replaces forms with AI conversations. Product docs: https://unformal.ai and https://unformal.ai/agents. Full API + skill reference: https://unformal.ai/SKILL.md. Fetch these if you need context.

Please do all of the following:

1. Install the Unformal skill so you know the full API and when to use it:
   mkdir -p ~/.claude/skills/unformal && curl -fsS https://unformal.ai/SKILL.md > ~/.claude/skills/unformal/SKILL.md

2. Install the CLI globally:
   npm i -g @unformal/cli

3. Ask me for my email, then try to sign me up:
   unformal signup --email YOUR@EMAIL
   If the API returns 409 ("Email already registered"), I already have an account — fall back to the login flow instead:
   unformal login --email YOUR@EMAIL

4. I'll read the 6-digit code from my inbox and paste it back. Then for signup:
     unformal verify --email YOUR@EMAIL --code <code>
     unformal init --key <api-key-from-step-3>
   …or for login:
     unformal login --email YOUR@EMAIL --code <code> --save

5. Ask me clarifying questions (what I'm trying to learn, who will receive the link, tone, how many questions max, which structured fields to extract), then create a Pulse:
   unformal create --intention "<my goal>" --tone <conversational|professional> --max-questions <N> --fields "field1:string:desc,field2:number:desc"

6. Give me the shareable https://unformal.ai/p/<slug> link.

7. Once responses start coming in, offer to run 'unformal resonance <pulse-id>' to show me themes and aggregate insights.

The skill install in step 1 is the key bit — without it, the agent won't know whento reach for Unformal on future requests. With it installed, you can just say "send this to my customers" or "collect feedback from my team" and the agent picks Unformal automatically.

Install the Skill

For Claude Code, Cursor, Windsurf — one command, then just ask in natural language

shell
# Claude Code
mkdir -p ~/.claude/skills/unformal
curl -s https://unformal.ai/SKILL.md > ~/.claude/skills/unformal/SKILL.md

# Cursor / Windsurf / any coding assistant
curl -o UNFORMAL.md https://unformal.ai/UNFORMAL.md

After install, just say:

"Create an onboarding Pulse for my consulting business"

Or:

"Qualify my inbound leads with a Pulse and send me results via webhook"

The skill file teaches your agent the full API — no other configuration needed. Works with Claude Code, Cursor, Windsurf, and any coding assistant that reads context files.

Quick Start with API Key

Three steps from zero to your first Pulse

1

Sign up — get your API key + 50 free credits

No credit card required. API key returned immediately.

shell
curl -X POST "https://unformal.ai/api/v1/signup" \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com"}'

# → {"data": {"api_key": "unf_xxx", "credits": 50, "status": "pending_verification"}}
2

Verify your email

Check inbox for the 6-digit code, then POST it back.

shell
# Check your inbox for a 6-digit code, then:
curl -X POST "https://unformal.ai/api/v1/verify" \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "code": "123456"}'

# → {"data": {"status": "verified", "message": "Your API key is now active."}}
3

Create your first Pulse

One POST with an intention — you get a shareable URL back.

shell
curl -X POST "https://unformal.ai/api/v1/pulses" \
  -H "Authorization: Bearer $UNFORMAL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "intention": "Understand what a new client needs before our first meeting",
    "tone": "conversational",
    "maxQuestions": 5
  }'

# → {"data": {"url": "https://unformal.ai/p/your-slug", "id": "...", "status": "active"}}

That's it. Share the URL with respondents. Each person gets an AI-powered conversation. You get structured data (Echo) for every completed response. No form builder, no question writing.

🦞

For OpenClaw

One-liner install from ClawHub

shell
npx clawhub install unformal-api

After install, your OpenClaw agent has full access to the Unformal API — creating Pulses, sharing links, and retrieving structured conversation data. No additional configuration needed.

CLI

Everything the API can do, from your terminal or a shell script

The @unformal/cli npm package exposes every endpoint as a subcommand. Useful for quick ops, shell scripts, CI pipelines, and piping structured output to other agents via --json.

Install

shell
# Install globally (recommended)
npm i -g @unformal/cli

# Or run without installing
npx @unformal/cli <command>

# Authenticate once
unformal init --key unf_YOUR_KEY
# ...or export UNFORMAL_API_KEY=unf_... in your shell

Common commands

shell
# Create a Pulse
unformal create --intention "Qualify leads for our enterprise plan" --mode interview

# List and inspect
unformal list
unformal get PULSE_ID

# Read responses
unformal conversations PULSE_ID      # summary table
unformal conversation CONV_ID        # one full transcript
unformal export PULSE_ID --format csv --output all.csv

# Aggregate insights
unformal resonance PULSE_ID          # themes, NPS, per-question stats
unformal analytics PULSE_ID          # completion rate, duration, coverage

# Account
unformal usage                       # credit balance

# Pipe structured output to another agent
unformal list --json | jq '.data[] | {id, slug, totalConversations}'

Package

@unformal/cli

Runtime

Node 18+

Source

github.com/Spark-Collective/unformal-skills

Real-time Events

Server-Sent Events stream — get notified the moment a conversation completes

For agents that need to react in real-time (rather than polling or waiting for a webhook), connect to the SSE stream. Your agent stays connected and receives events as they happen.

Connect to the stream

shell
curl -N \
  -H "Authorization: Bearer $UNFORMAL_API_KEY" \
  "https://unformal.ai/api/v1/pulses/{pulse_id}/stream"

# Events you'll receive:
# event: connected
# event: conversation.completed  → includes full echo data
# event: ping                     → keepalive every 15s

Example event payload

sse
event: conversation.completed
data: {
  "conversationId": "abc123",
  "pulseId": "xyz",
  "echo": {
    "fields": {"budget_range": "$10k-20k", "timeline": "Q3"},
    "summary": "Strong fit. Budget aligned.",
    "keyQuotes": ["We spend 3 hours weekly on reports"],
    "sentimentScore": 7
  },
  "completedAt": "2026-03-29T10:00:00Z"
}

Max connections

5 per API key

Keepalive

Ping every 15s

Timeout

30 min (reconnect)

Claude Code Desktop Routine

Recurring digest that appears in your Claude Code sidebar alongside other routines

The easiest way to get notified. Ask Claude Code to create a desktop routine — it gets added to your sidebar as a proper routine, runs locally on your machine with access to your secrets and files, and you pick the schedule visually in the desktop UI.

Just ask Claude Code

prompt
Create a Claude Code desktop routine called "unformal-new-responses".

It should check for new completed responses on my Unformal Pulse <YOUR_PULSE_ID> using API key <YOUR_API_KEY>. Track the last-seen timestamp in ~/.unformal/last-seen, only fetch new responses since that marker, and give me a concise digest (sentiment + summary + key quotes) or say "No new responses" if there are none.

Claude will create a SKILL.md file at ~/.claude/scheduled-tasks/<name>/. After that, open Claude Code desktop, find the routine in the sidebar, and set its schedule (Daily / Weekdays / Custom).

Runs on

Your local machine

Schedule

Set in desktop UI

Appears in

Claude Code sidebar

Desktop Notifications (Local)

Real-time macOS toasts — runs on your machine, reacts the moment a response lands

A tiny shell script that connects to the SSE stream, pops a native notification on every completion, and writes each event to ~/.unformal/inbox/ so your Claude Code session can read it on demand.

Install and run

shell
# Install once
mkdir -p ~/bin
curl -s https://unformal.ai/unformal-listen.sh > ~/bin/unformal-listen
chmod +x ~/bin/unformal-listen

# Run (leave in a spare terminal tab)
export UNFORMAL_API_KEY=unf_xxx
unformal-listen                  # lists your Pulses
unformal-listen <pulse_id>       # start listening for completions

What you'll see

shell
🎧 Listening for new responses on pulse k57...
   Events saved to: ~/.unformal/inbox/
   Press Ctrl+C to stop.

✓ 14:32:01 connected
✨ 14:47:23 Strong fit. Mid-size agency, budget aligned for Q3 launch.
✨ 15:04:11 Enthusiastic about AI but unsure about team buy-in.
✨ 15:19:44 Ready to pilot. Asked for a follow-up call next week.

Platform

macOS (native), Linux (notify-send)

Inbox

~/.unformal/inbox/*.json

Script

unformal.ai/unformal-listen.sh

Full API Reference

Complete endpoint documentation and schema