Web Star Studio's Flow CRM
/install flow-crm
FlowDeck CRM API
Interact with the FlowDeck CRM module via the REST API gateway
(base URL: https://\x3Csupabase_url>/functions/v1/api-gateway).
Usage
Run the script using the absolute path (do NOT cd to the skill directory):
uv run ~/.codex/skills/flow-crm/scripts/flow_api.py \x3Caction> \x3Cresource> [options]
Important: Always run from the user's current working directory so any output files are saved where the user is working.
Actions
| Action | Description | Example |
|---|---|---|
list |
List resources (paginated) | uv run ... list clients --limit 50 |
get |
Get single resource | uv run ... get clients --id \x3Cuuid> |
create |
Create resource | uv run ... create clients --data '{"name":"Acme"}' |
update |
Update resource | uv run ... update clients --id \x3Cuuid> --data '{"name":"Acme Inc"}' |
delete |
Delete resource | uv run ... delete clients --id \x3Cuuid> |
Client Creation Workflow (mandatory)
When creating a client (create clients), the API only requires name. However, you MUST proactively ask the user about every available field BEFORE calling the API. Collect as much data as possible, then build the payload. Even if the user skips many fields, you must have asked.
Ask about these fields (use the Portuguese/Portuñol terms the user will recognize):
- Tipo —
client,supplier, orboth(default:client) - Empresa — Company name
- Email — Main contact email
- Email financeiro — Finance department email (
finance_email) - Telefone — Phone number
- CPF/CNPJ — Document (Brazilian tax ID)
- Website — Company website
- Endereço — Physical address
- País — Country (
country) - Código IBGE da cidade —
city_ibge_code - Status —
active,inactive, orlead(default:active) - Observações — Notes
Present these as a single structured block of questions (not one-by-one), e.g:
Antes de criar o cliente, preciso preencher algumas informações. Me diga o que souber:
- Tipo: [client/supplier/both]
- Empresa:
- Email:
- Email financeiro:
- Telefone:
- CPF/CNPJ:
- Website:
- Endereço:
- País:
- Código IBGE:
- Observações:
(Pule os que não souber.)
If the user responds with partial data, use what they gave and leave the rest blank — but never skip asking first. Then build the --data JSON with all collected fields and create the client.
CRM Resources
| Resource | Endpoint | Notes |
|---|---|---|
clients |
/clients |
Clients & suppliers (finance_parties) |
contacts |
/projects/{id}/contacts |
Project-scoped contacts |
deals |
/deals |
CRM opportunities (crm_deals) |
proposals |
/proposals |
Commercial proposals |
receivables |
/receivables |
Accounts receivable |
expenses |
/expenses |
Expenses |
Filters for list
Common query parameters (supported varies by resource):
--limit N(default 50, max 200)--offset N(default 0)--status— filter by status enum--type— filter by type (clients: client/supplier/both)--stage— filter by deal stage (deals: lead/qualified/proposal/negotiation/won/lost)--party-id— filter by client/supplier (party UUID)--project-id— parent project ID for scoped resources (contacts, cycles, tasks)--priority— filter task priority--cycle-id— filter tasks by cycle--assignee-id— filter tasks by assignee--due-date-from/--due-date-to— date range for receivables--date-from/--date-to— date range for expenses
Status/Stage Enums
Clients (PartyStatus)
active, inactive, lead
Deals (CrmDealStage)
lead -> qualified -> proposal -> negotiation -> won / lost
Proposals (CrmProposalStatus)
draft -> sent -> viewed -> accepted / rejected / expired
Receivables (ReceivableStatus)
pending, paid, partial, overdue, cancelled
Expenses (ExpenseStatus)
pending, paid, partial
API Key
The script checks for API key in this order:
--api-keyargument (use if user provided key in chat)FLOWDECK_API_KEYenvironment variable
If neither is available, the script exits with an error message.
API Key + Base URL Environment Variables
FLOWDECK_API_KEY— Bearer API keyFLOWDECK_BASE_URL— API base URL (default:https://mycivgjuujlnyoycuwrz.supabase.co/functions/v1/api-gateway)
Preflight + Common Failures
- Preflight:
command -v uv(must exist)test -n "$FLOWDECK_API_KEY"(or pass--api-key)
- Common failures:
Error: No API key provided.→ setFLOWDECK_API_KEYor pass--api-keyHTTP 401→ invalid/revoked keyHTTP 404→ resource not found or doesn't belong to workspace"quota/permission/403"→ wrong key, no access, or quota exceeded
Examples
List active clients:
uv run ~/.codex/skills/flow-crm/scripts/flow_api.py list clients --status active --limit 20
Create a deal:
uv run ~/.codex/skills/flow-crm/scripts/flow_api.py create deals \
--data '{"title":"Website Redesign","client_id":"\x3Cuuid>","value":50000,"stage":"lead"}'
Create a proposal:
uv run ~/.codex/skills/flow-crm/scripts/flow_api.py create proposals \
--data '{"title":"Proposta — Website Redesign","client_id":"\x3Cuuid>","deal_id":"\x3Cuuid>","currency":"BRL"}'
Update a deal stage to won:
uv run ~/.codex/skills/flow-crm/scripts/flow_api.py update deals \
--id \x3Cuuid> --data '{"stage":"won"}'
List overdue receivables for a client:
uv run ~/.codex/skills/flow-crm/scripts/flow_api.py list receivables \
--status overdue --party-id \x3Cuuid>
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install flow-crm - 安装完成后,直接呼叫该 Skill 的名称或使用
/flow-crm触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Web Star Studio's Flow CRM 是什么?
Interact with FlowDeck CRM API (clients, deals, proposals, receivables, expenses, contacts). Use for all CRM operations via the FlowDeck REST API through Sup... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 89 次。
如何安装 Web Star Studio's Flow CRM?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install flow-crm」即可一键安装,无需额外配置。
Web Star Studio's Flow CRM 是免费的吗?
是的,Web Star Studio's Flow CRM 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Web Star Studio's Flow CRM 支持哪些平台?
Web Star Studio's Flow CRM 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Web Star Studio's Flow CRM?
由 Douglas Araújo(@araujodgdev)开发并维护,当前版本 v1.0.1。