Skip to main content
Back to Settings

AI Integrations

Connect OpenClaw to Focivo

This page is written for non-technical users. You'll need your API key from Settings to complete setup — one step that takes 30 seconds. No terminal needed.

Updated March 29, 20266 min read

Before you start

  • Go to Settings and open AI Integrations.
  • Click Get API key (or Rotate key).
  • Keep this key private. Treat it like a password.
Shortcut: After generating your key in Settings, a green “Copy setup prompt” button appears with your API key already filled in. Paste that directly into OpenClaw and you're done — no manual editing needed.
Using the blocks below instead? Replace YOUR-API-KEY-HERE with your actual key before pasting. Don't include any extra characters around it.

Step 1: Add your Focivo connection in OpenClaw

Paste these values into OpenClaw wherever it asks for endpoint details (URL, method, and authorization header).

Default read limits are 120 reads/hour and 20 reads/minute per key.

Endpoint URL

https://www.focivo.com/api/ai/context

HTTP method

GET

Authorization header

Authorization: Bearer YOUR-API-KEY-HERE

Step 2: Add write tools (optional but recommended)

If you want OpenClaw to create tasks and mark items complete, add these endpoints too.

Default write limits are 60 writes/hour and 10 writes/minute per key.

Create task tool

POST /api/ai/tasks

Create task body

{
  "title": "string",
  "category": "string (optional)",
  "due_date": "YYYY-MM-DD (optional)",
  "pinned": true
}

Create habit tool

POST /api/ai/habits

Create habit body

{
  "title": "string",
  "cue": "string (optional)",
  "mva": "string (optional)",
  "is_active": true
}

Create care routine tool

POST /api/ai/care-routines

Create care routine body

{
  "category": "plants | car | health | pets | house | finance | personal | seasonal",
  "entity_name": "string",
  "action": "string",
  "interval_days": 7,
  "notes": "string (optional)",
  "next_due_date": "YYYY-MM-DD (optional)"
}

Complete task tool

POST /api/ai/tasks/YOUR-TASK-ID-HERE/complete

Complete habit tool

POST /api/ai/habits/YOUR-HABIT-ID-HERE/complete

Complete care routine tool

POST /api/ai/care-routines/YOUR-CARE-ROUTINE-ID-HERE/complete

Complete care routine body

{
  "notes": "string (optional)"
}

Log a win tool

POST /api/ai/wins

Log a win body

{
  "title": "string",
  "category": "productivity | health | learning | creative | other (optional, default: productivity)",
  "note": "string (optional)",
  "date": "YYYY-MM-DD (optional, default: today)",
  "task_id": "UUID (optional — link to a task)"
}

Read wins tool

GET /api/ai/wins?date=YYYY-MM-DD

Read wins (date range)

GET /api/ai/wins?from=YYYY-MM-DD&to=YYYY-MM-DD

Step 3: Give OpenClaw clear instructions

Paste this into OpenClaw so it knows how to fetch today, tomorrow, and two days out.

Tip: You can also share this guide link with your agent so it can follow the setup steps on its own.

Guide link

https://www.focivo.com/docs/ai/openclaw-integration

OpenClaw setup instructions

Use my Focivo context API before you help me plan.

About Focivo:
Focivo is a daily planner built for people with ADHD and anyone who finds most planners overwhelming. The design goal is reducing cognitive load — help me focus on one thing at a time, not manage everything at once.

Key concepts:
- Pinned tasks = today's active focus queue. Keep suggestions to ≤5. These are what I'm committing to today.
- Someday tasks = backlog. Not scheduled, not urgent.
- Recurring tasks = tasks that repeat on a schedule.
- Habits: "cue" = the trigger that prompts the habit; "mva" = Minimum Viable Action (the smallest version that still counts).
- Focus sessions = timed work blocks tied to a specific task. Daily target is typically 30 minutes.

Tone guidance:
- Be calm, supportive, and non-judgmental. No guilt language ("you still haven't", "you should have").
- When overdue items pile up, rescue gently — suggest tackling 1-2 max, defer the rest.
- Help me pick one thing to start, not a full list of everything to do.
- Celebrate small wins.

Connection details:
- Base URL: https://www.focivo.com
- Header: Authorization: Bearer YOUR-API-KEY-HERE

Read endpoint:
- GET /api/ai/context

Task creation guidance:
- Today's focus queue: set pinned: true
- Scheduled for a specific day: set due_date (YYYY-MM-DD), omit pinned
- Backlog with no schedule: omit both pinned and due_date
- Categories are free-form strings. Read existing tasks in context to match my own categories.
- Some tasks in context may have taskType "focus-session" — these are a special recurring type. Do not create or complete them like regular tasks.

Write endpoints:
- POST /api/ai/tasks
  body: { "title": string, "category"?: string, "due_date"?: YYYY-MM-DD, "pinned"?: boolean }
- POST /api/ai/habits
  body: { "title": string, "cue"?: string, "mva"?: string, "is_active"?: boolean }
  constraint: max 2 active habits. If is_active: true and the limit is already reached,
  the API returns 400 with code "active_habit_limit_reached". Tell the user and ask
  if they'd like to deactivate an existing habit first before retrying.
- POST /api/ai/care-routines
  body: { "category": "plants|car|health|pets|house|finance|personal|seasonal", "entity_name": string, "action": string, "interval_days": number, "notes"?: string, "next_due_date"?: YYYY-MM-DD }
- POST /api/ai/tasks/{id}/complete
- POST /api/ai/habits/{id}/complete
- POST /api/ai/care-routines/{id}/complete
  body: { "notes"?: string }
- POST /api/ai/wins
  body: { "title": string, "category"?: "productivity|health|learning|creative|other", "note"?: string, "date"?: YYYY-MM-DD, "task_id"?: UUID }
- GET /api/ai/wins?date=YYYY-MM-DD
- GET /api/ai/wins?from=YYYY-MM-DD&to=YYYY-MM-DD

Checklist endpoints (use after creating or finding a task by id):
- GET    /api/ai/tasks/{id}/checklist
- POST   /api/ai/tasks/{id}/checklist              body: { "text": string }
- PATCH  /api/ai/tasks/{id}/checklist/{itemId}     body: { "text"?: string, "completed"?: boolean }
- DELETE /api/ai/tasks/{id}/checklist/{itemId}

Notes endpoints (freeform text attached to a task):
- GET    /api/ai/tasks/{id}/notes
- PUT    /api/ai/tasks/{id}/notes                  body: { "content": string }
- DELETE /api/ai/tasks/{id}/notes

Date rules:
- Today: /api/ai/context
- Tomorrow: /api/ai/context?daysFromToday=1
- Two days from now: /api/ai/context?daysFromToday=2
- Specific date: /api/ai/context?date=YYYY-MM-DD

When writing:
1) Read context first before deciding writes
2) Confirm each successful write using the returned id

When planning, summarize:
1) Pinned, planned, overdue, and recurring tasks
2) Checklist progress and key notes for important tasks
3) Habits due and care routines due
4) Focus minutes completed vs focus target
5) Wins logged today (if any)

For full documentation and updates: https://www.focivo.com/docs/ai/openclaw-integration

If the request fails, show the status code and response, then tell me to rotate/recreate the key in Focivo Settings > AI Integrations.

Step 4: Ask for tomorrow or two days from now

You can ask OpenClaw normally. Here are example prompts you can copy.

Prompt: Tomorrow plan

Use my Focivo context for tomorrow and give me a calm plan with top 3 anchors, overdue rescue (max 2), and one 5-minute starter action.

Prompt: Two days from now

Use my Focivo context for two days from now and suggest a realistic focus plan with key tasks, habits due, and care routines due.

Prompt: Specific date

Use my Focivo context for date 2026-03-13 and help me prepare the day in advance.

Prompt: Add a task

Create a task titled "Prep tax docs" in category "finance" and pin it.

Prompt: Add a habit

Create a habit titled "Hydrate" with cue "Morning" and activate it.

Prompt: Add a care routine

Create a care routine in category "plants" for "Monstera", action "Water", every 7 days.

Prompt: Mark complete

Mark my habit "Hydrate" complete for today.

Prompt: Log a win

Log a win: "Finished the homepage redesign" in category "creative".

Optional: Let your agent write checklist + notes

If your tool supports authenticated write actions, you can let it update task checklists and task notes directly.

Write endpoints

Checklist:
- GET /api/ai/tasks/:taskId/checklist
- POST /api/ai/tasks/:taskId/checklist   body: {"text":"..."}
- PATCH /api/ai/tasks/:taskId/checklist/:itemId   body: {"text"|"completed"|"sort_order"}
- DELETE /api/ai/tasks/:taskId/checklist/:itemId
- POST /api/ai/tasks/:taskId/checklist/reorder   body: {"itemIds":["..."]}

Notes:
- GET /api/ai/tasks/:taskId/notes
- PUT /api/ai/tasks/:taskId/notes   body: {"content":"..."}
- DELETE /api/ai/tasks/:taskId/notes

Optional: Log wins with your agent

Wins are short notes that capture what you actually accomplished — separate from tasks being marked complete. They show up in your Momentum chart and give you a real record of forward movement.

A great use of your OpenClaw agent: at the end of a working session, ask it to log everything you accomplished as wins. It can pull from completed tasks, habits done, and anything you mention in conversation.

Prompt: Log all wins from this session

At the end of our conversation, look at everything we accomplished — completed tasks, habits done, care routines finished, decisions made, anything that moved forward — and log each one as a Focivo win using POST /api/ai/wins. Use the most fitting category for each. Keep titles short and specific.

Prompt: Log wins from today

Fetch my Focivo context for today. For every completed task, done habit, and finished care routine, log a win using POST /api/ai/wins. Use the task title as the win title where it makes sense. Pick the most fitting category for each.

You can also ask it to read your wins back: “What wins did I log this week?” — it will use GET /api/ai/wins?from=...&to=... to pull them.

Optional: Automation ideas

These are prompts you can use to set up recurring routines in OpenClaw. Adjust the times to match your schedule.

End-of-session win capture (always-on instruction)

At the end of every conversation, check if we accomplished anything — completed tasks, decisions made, work finished, habits done. If yes, log each one as a Focivo win using POST /api/ai/wins. Keep titles short and specific. Pick the most fitting category. Do this quietly at the end without making it the focus of the conversation.

Morning commitment (8:00 AM)

Every morning at 8:00 AM America/New_York, fetch my Focivo context for today and ask me one question: what am I committing to?

Pull my pinned tasks, any overdue items, and habits due today. Suggest the top 3 if I haven't responded yet. Keep it to one screen — no walls of text.

Evening scorecard (8:30 PM)

Every evening at 8:30 PM America/New_York, fetch my Focivo context for today and give me a brief scorecard:
- Tasks completed
- Habits done vs skipped
- Care routines done
- Focus minutes logged vs target
- One honest reflection: what moved forward today?

No guilt. Just a clear picture of the day.

Tomorrow's brief (8:30 PM, alternative)

Every evening at 8:30 PM America/New_York, fetch my Focivo context for tomorrow and help me prepare:
- Top 3 anchors for tomorrow
- Overdue rescue (max 2)
- Focus plan (remaining minutes to target)
- Habits and care routines due
- One kind 5-minute starter action

Keep it short and avoid guilt language.

Weekly review (Sunday 6:00 PM)

Every Sunday at 6:00 PM America/New_York, fetch my Focivo context and run a weekly review:
- What did I complete this week?
- What's still open or overdue?
- Habits: which ones are sticking, which are slipping?
- Care routines: anything overdue?
- One question: what's the single most important thing next week?

Keep it honest and forward-looking. No guilt about what didn't happen.

If something is not working

  • If you see 401 Unauthorized, your key is invalid, expired, or revoked. Create/rotate a new key in Settings.
  • If you see 400 invalid_date_query, use either ?daysFromToday=1 style or ?date=YYYY-MM-DD.
  • If a write fails with 400, verify required fields and UUID format.
  • If a write fails with 404, the item does not exist or is not available to your key.
  • If you see 429, wait and retry after the Retry-After value. Default limits are 60 writes/hour and 10 writes/minute per key.
  • If you see a full HTML page instead of JSON, verify you are using the correct app URL and port.

Still stuck? Send us a message and we'll take a look.