Signup Webhooks Skill

Handle signups that require email or phone verification by registering webhook listeners for AgentMail and Quo before completing confirmation steps.

Signup Webhooks (AgentMail + Quo)

Use this skill when signing up for a product that requires email or phone verification. It explains how to register webhook listeners so confirmation codes arrive in the correct OpenClaw session.

Goal

Keep verification codes in the same session that initiated the signup. When you reach a confirmation step (email code or SMS code), register a webhook listener and then continue the signup.

When to Register Listeners

  • Email verification: As soon as the site requests a code after you submit the email.
  • Phone verification: As soon as the site requests a code after you submit the phone number.

Do not wait until after the code is sent; register first so the session is ready.

Required Inputs

  • Session key: The active OpenClaw session you want the code delivered to. Example: agent:max:slack:dm:U12345
  • Provider:
    • agentmail for email verification codes
    • quo for SMS/phone verification codes

CLI Usage (Local Host Only)

The bridge runs a localhost-only admin server on http://127.0.0.1:4011. Use the CLI to register a listener with a TTL (seconds). By default, listeners are one-shot and removed after the first match.

AgentMail (Email)

Register when the signup page prompts for an email confirmation code.

bun run --cwd /Users/workbot/aiden/packages/bridge-cli start agentmail listen \
  --session "agent:max:slack:dm:U12345" \
  --ttl 180 \
  --match to=your-alias@agentmail.com

Quo (Phone/SMS)

Register when the signup page prompts for a phone verification code.

bun run --cwd /Users/workbot/aiden/packages/bridge-cli start quo listen \
  --session "agent:max:slack:dm:U12345" \
  --ttl 180 \
  --match to=+15551234567

Matching Tips

  • Use --match to=... to tie the listener to the exact email address or phone number entered in the signup flow.
  • If you have a specific message or thread id, you can add it too:
    • --match messageId=...
    • --match threadId=...
    • --match conversationId=...

One-Shot vs Persistent

  • Default is one-shot: listener removes itself after the first match.
  • If you need multiple messages in the same session, add --persist.

Workflow Example (Email + Phone)

  1. Start signup in a single session.
  2. Enter email and submit.
  3. When the site asks for a code, register an AgentMail listener.
  4. Wait for the code to arrive in this session and enter it.
  5. If the signup then asks for phone verification, register a Quo listener.
  6. Wait for the SMS code and enter it.

Notes

  • The CLI talks to a localhost-only endpoint; it is not exposed publicly.
  • If the listener TTL expires, re-run the CLI and request a fresh code.

Related documentation