Most habit systems wait for you to show up. Buffy can be wired to respond to your tools instead.
Webhooks let you trigger Buffy activities — reminders, routines, tasks — from external events: a deployment finishing, a calendar block ending, a form submission, a cron job. You build something; Buffy knows about it.
This guide covers both directions: incoming webhooks (your tools trigger Buffy) and outgoing webhooks (Buffy notifies your tools when something happens).
Incoming webhooks: trigger Buffy from external events
An incoming Buffy webhook is an HTTPS endpoint. When you POST to it, Buffy creates or triggers an activity.
Get your webhook URL
- Open your Buffy account at www.buffyai.org.
- Navigate to Settings → Integrations → Webhooks.
- Click New Incoming Webhook.
- Choose the activity type: create a habit reminder, start a routine, or create a task.
- Configure the payload defaults (activity name, channel, time window).
- Copy the generated webhook URL and secret token.
Trigger it with curl
curl -X POST https://api.buffyai.org/webhooks/in/YOUR_WEBHOOK_ID \
-H "Content-Type: application/json" \
-H "X-Buffy-Secret: YOUR_SECRET_TOKEN" \
-d '{
"activity": "post-deploy review",
"channel": "slack",
"message": "Deploy finished. Run your 5-minute post-deploy checklist."
}'
Buffy will immediately send a reminder to the configured channel (Slack, Telegram, or ChatGPT) with the message above.
Common incoming webhook use cases
Post-deploy routine trigger
Wire your CI/CD pipeline to trigger a "post-deploy review" routine after every production deploy:
# GitHub Actions example
- name: Trigger post-deploy review
run: |
curl -X POST ${{ secrets.BUFFY_WEBHOOK_URL }} \
-H "X-Buffy-Secret: ${{ secrets.BUFFY_WEBHOOK_SECRET }}" \
-H "Content-Type: application/json" \
-d '{"activity": "post-deploy checklist", "channel": "slack"}'
Calendar block end trigger
Use a calendar automation tool (e.g., Zapier, Make) to fire a webhook when a focus block ends:
When "Deep Work" event ends → POST to Buffy → send "Deep work block done — log output and close tabs" to Telegram
Form submission trigger
When a customer submits a feedback form, trigger a "follow up on feedback" task in Buffy:
Typeform submission → Zapier → POST to Buffy → create task "Review feedback from [name]" due today
Daily cron trigger
If you want a habit to fire at a precise time from a server rather than relying on Buffy's scheduler:
# crontab: run at 7:30 AM weekdays
30 7 * * 1-5 curl -X POST $BUFFY_WEBHOOK_URL \
-H "X-Buffy-Secret: $BUFFY_SECRET" \
-d '{"activity": "morning planning", "channel": "telegram"}'
Outgoing webhooks: Buffy notifies your tools
Outgoing webhooks fire when something happens in Buffy — a habit is completed, skipped, or a routine finishes. You configure a URL and Buffy POSTs an event payload to it.
Configure an outgoing webhook
- Navigate to Settings → Integrations → Webhooks → New Outgoing Webhook.
- Choose the trigger event:
habit.completed,habit.skipped,routine.completed,task.completed. - Enter your receiving URL and optional Authorization header.
- Save.
Example outgoing payload
When a habit is completed, Buffy sends:
{
"event": "habit.completed",
"activityId": "act_abc123",
"activityName": "Morning planning",
"userId": "usr_xyz",
"completedAt": "2026-03-26T08:14:00Z",
"channel": "telegram",
"streakCount": 7
}
Common outgoing webhook use cases
Log completions to a database
Write a small HTTP endpoint (Next.js API route, Cloudflare Worker, etc.) that receives the Buffy event and inserts a row into your analytics database.
Update a dashboard
POST completions to a webhook receiver that updates a Notion database, Airtable base, or custom dashboard.
Trigger a next step
When a "post-deploy checklist" routine completes, trigger a Slack notification to the team:
routine.completed→ your webhook handler →POST /slack/messages→ "#engineering: post-deploy checklist done ✓"
Streak-based alerts
Build logic on top of the streakCount field — send a congratulations message when a streak hits 7, 30, or 100 days.
Combining incoming and outgoing webhooks
The full pattern:
- External event (deploy, calendar block, cron) → incoming webhook → Buffy creates/triggers activity
- Buffy sends reminder to Slack or Telegram
- User responds (done/skip/snooze)
- Outgoing webhook → your handler → log to database, update dashboard, trigger next step
This makes Buffy a behavior layer inside a larger automation — not a standalone app, but a component in your system.
Further integration options
Webhooks are the simplest path. For more control:
- Buffy API — create, read, update, and delete activities programmatically
- Buffy CLI — manage activities from the terminal, useful for scripts and local dev workflows
- OpenClaw integration — connect Buffy to the OpenClaw ecosystem for developer-native habit and task management
See also:
- Buffy CLI: Command Line Habit and Task Management
- How to Integrate Your App With the Buffy API
- Building Multi-Channel Bots on One Behavior Core
Where to go next
- Next step: How to Integrate Your App With the Buffy API