Projects with EnClaw — configure and use
A practical guide for the delivery/projects team, organised around the things you asked for. Each section shows how to configure it (a one-time setup) and how to use it (day to day). It's plain language — you work by chatting with an EnClaw assistant, the way you'd brief a capable colleague. It reads from Productive live; you stay in control, and the only changes it ever makes in Productive are creating/assigning tasks — and only if you allow it.
The five things, in your words:
- I want to know what tasks on a project are due to date
- I want to add a task to a project management tool
- I want to add budget burndown to the project management tool
- I want to add timesheet tracking to the project management tool
- Auto-populate the API token for Productive if it is already provided
How it works, in a nutshell
- You ask in plain English — no reports to build, no boards to scroll.
- It reads Productive live — projects, tasks, people, time entries, budgets.
- Read-first — the only writes are creating/assigning tasks (#2), and only if you tick those permissions; it never edits budgets or logs time.
- Never makes things up — if it can't reach Productive or lacks a permission, it tells you plainly instead of inventing tasks, hours, or figures.
The setup basics (do this once)
Setup is all menus and pasting — no coding. Three one-time jobs: connect Productive, create a projects assistant, and (optionally) adjust one setting.
Already connected Productive? If the Productive integration is already set up in Settings → Integrations, skip job 1 — just open it and make sure the permissions below are ticked (especially Read Time Entries for #4 and Read via API for #3). Then go to job 2.
1. Connect Productive (admin)
This is what lets EnClaw read your data. You'll need a Productive API token and Organization ID (in Productive: Settings → API integrations for the token; Settings → Organization for the ID).
-
Go to Settings → Integrations and add the Productive.io integration.
-
Paste the API Token and Organization ID.
-
Under Permissions, tick what the five use cases need:
Permission Lets the assistant… Needed for Read Projects list your projects everything Read Tasks search/read tasks #1, reports Create Tasks create a task #2 Assign Tasks set who a task is for #2 (assigning) Read People look people up by name #2 (assigning) Read Time Entries read logged hours #4 Read via API (budgets, financials) read budgets/spend #3 -
Click Save, then Test to confirm the token + Organization ID are valid.
About request #5 (auto-populate the token): this is handled here for you. After the first save, whenever you edit this integration the Organization ID is pre-filled and the API token stays remembered — the token box is left blank on purpose; just leave it blank to keep the saved token. You only type a token if you're deliberately replacing it. For security the token is never shown back on screen and is stored encrypted — "remembered" means you don't re-enter it, not that it's displayed.
2. Create the projects assistant (admin)
This is the agent you'll chat with. You only do this once.
- Go to Agents → New agent.
- Name:
Productive Projects Assistant. - Allowed tools: allow these nine and leave the rest off so it stays focused —
productive_list_projects,productive_search_tasks,productive_create_task,productive_list_task_lists,productive_list_people,productive_assign_task,productive_list_time_entries,productive_request, andrun_claude_cli(this last one builds the burndown/timesheet documents). - Identity (Markdown): paste the block below exactly as written. It's the proper, tested example — its four "Scenario" steps are your chat requests #1–#4, the tool list matches step 3, and the guardrails + sentinel keep it honest. You may change the persona name, tone, or branding, but keep the Scenario steps, the Guardrails, and the Identity sentinel.
You are the Productive Projects Assistant for our organisation.
Your single job: surface, capture, and report on work held in Productive.io
for a Delivery Lead, using only real Productive data — never a fabricated figure.
## Your tools
- productive_list_projects — list active projects (use to resolve a project by name)
- productive_search_tasks — find tasks; use dueOnOrBefore (inclusive) for "due to date"
- productive_create_task — create a task (auto-resolves the task list from projectId)
- productive_list_task_lists / productive_list_people — look up task-list / assignee IDs
- productive_assign_task — assign a task to a person
- productive_list_time_entries — logged hours (already converted from minutes)
- productive_request — read-only GET to any Productive endpoint; use for /budgets + financials
- run_claude_cli — render the budget-burndown .docx and the timesheet .xlsx
## How to handle each request
First, work out which of the four scenarios the user wants, then resolve the
project with productive_list_projects if they named one. Then:
# Scenario 1 — "what's due / overdue" (tasks due to date)
Call productive_search_tasks per active project with dueOnOrBefore = today (in the
tenant timezone). Report a table: project, task title, assignee, due date, days
overdue (negative = not yet due). Sort by days overdue descending. Omit projects
with nothing due. End with: "N tasks across M projects are due or overdue as of <today>."
# Scenario 2 — "add a task"
Infer sensible defaults; look up the assignee (productive_list_people) and task
list if needed; create it with productive_create_task. Return the real numeric
task id and the app.productive.io deep link. If an assignee lookup returns nobody,
leave it unassigned and say so. Never invent an id.
# Scenario 3 — "budget burndown"
Pull budget + spend with productive_request (path /budgets, and the financial
aggregation endpoint). Compute total / spent / remaining / average weekly burn /
projected end-of-period spend / variance — compute, never eyeball. Render an
on-brand .docx with run_claude_cli: a title band, actual line, dashed ideal line
and projection in your organisation's brand colours, plus an honest one-paragraph
read on whether the project is tracking over or under.
# Scenario 4 — "timesheet summary"
Pull the period's entries with productive_list_time_entries. Render a three-sheet
.xlsx with run_claude_cli: "By Person" (billable / non-billable / total /
utilisation %, with green ≥80 / amber 60–79 / red <60), "By Project" (total hours,
# contributors, sorted desc), and "Raw". Header styled in your brand colours.
## Guardrails
- Read-only by default. The ONLY writes you make are creating and assigning tasks.
- Every task, hour, and dollar must trace to a real Productive record. Never invent
task ids, due dates, names, hours, or budget figures.
- If a tool isn't on your toolset, or a call returns "not configured" / "permission
denied", say so verbatim and stop — never substitute a fabricated answer.
- Australian English. Money to the dollar, hours to two decimals.
## Tone
- Terse and factual. A due-list in seconds; a rendered document in a minute or two.
- If a project name is ambiguous across clients, ask one clarifying question.
## Identity sentinel
If asked for your identity sentinel value, reply exactly: PROD-PROJ-7F3A
- Save, then confirm the identity loaded: in a chat with the new agent, ask "what is your identity sentinel value?" — it should reply
PROD-PROJ-7F3A. If it doesn't, the identity was cut off — go to Settings → Config, raiseagentIdentityMaxChars(e.g. to 16000), re-save, and check again.
Doing each of the five things
Each heading is one of your requests, in your words, with the prompt to type and what you get back.
1. "I want to know what tasks on a project are due to date"
Needs: Read Projects, Read Tasks. Type:
What tasks are due or overdue across our active projects? List project, task, who it's assigned to, due date, and how many days overdue — most overdue first.
You get a ranked table, most-overdue first. Tasks due today are included. Scope it with "…for the EnClaw Platform project."
2. "I want to add a task to a project management tool"
Needs: Create Tasks (+ Assign Tasks, Read People to assign). Type:
Add a task "QA sweep — agent Execute tab" to the "EnClaw Platform" project, due in 7 days, assigned to Sambhav Jain.
You get a confirmation with the new task's number and a link straight to it in Productive. Leave the assignee off and it's created unassigned.
3. "I want to add budget burndown to the project management tool"
Needs: Read via API (budgets, financials). Type:
Give me a budget burndown for the "EnClaw Platform" project as a Word document — budget vs spend, and whether we're tracking over or under.
You get an on-brand Word document: a KPI strip (budget, spent, remaining, weekly burn, projected end-of-period spend), a burndown chart, and an honest read on whether you're ahead or behind.
4. "I want to add timesheet tracking to the project management tool"
Needs: Read Time Entries. Type:
Give me last week's timesheet summary as a spreadsheet — hours per person, billable vs non-billable, and utilisation.
You get a three-sheet spreadsheet: By Person (with utilisation % and a red/amber/green flag), By Project, and the raw rows. Hours are in hours (converted from Productive's minutes for you).
5. "Auto-populate the API token for Productive if it is already provided"
Handled in setup, not chat — see the note under Connect Productive above. Once the token is saved, you never re-enter it: editing the integration keeps the saved token (box left blank = keep it) and pre-fills the Organization ID, so you can adjust permissions without re-typing credentials.
Good to know
- Nothing is invented. No integration or a missing permission → it says so ("not configured" / "permission denied") rather than guessing. If you see that, revisit setup.
- Read-first. The only changes in Productive are creating/assigning tasks (#2), and only if you ticked those permissions.
- Per-user vs shared. This integration is shared across your workspace. If you've set up a personal Productive connector under My Connectors, that one is used first for you.
Troubleshooting
| What you see | Likely cause | Fix |
|---|---|---|
| Test fails / "not configured" | Token or Organization ID wrong/missing | Re-check both; regenerate the token in Productive if unsure |
| "permission denied: read_api" on a burndown | Read via API not ticked | Edit the integration, tick Read via API (budgets, financials), Save |
| "permission denied" adding a task | Create Tasks not ticked | Tick Create Tasks (and Assign Tasks to assign), Save |
| A task due today missing from "what's due" | — | Re-run; the assistant uses an inclusive "due on or before today" filter |
| Timesheet hours look far too large | — | They shouldn't — minutes are converted to hours automatically; flag it if wrong |
| Budget numbers look off | The "spent to date" figure needs confirming for your workspace | Tell whoever deployed EnClaw — Productive's spend field is confirmed per workspace on first use |
| Sentinel check returns the wrong value | Identity was cut off | Raise agentIdentityMaxChars in Settings → Config, re-save the agent |
If something still isn't right, the person who deployed EnClaw can check the integration and the agent's enabled tools.