← 返回 Skills 市场
sstrohl223

Dashtask.ai - Task/Project manager and CRM built for AI Agents and Humans to work together.

作者 sstrohl223 · GitHub ↗ · v1.9.1
cross-platform ✓ 安全检测通过
304
总下载
0
收藏
1
当前安装
2
版本数
在 OpenClaw 中安装
/install dashtask-taskmanager-crm-dashboards-bots-humans
功能描述
Manage tasks, CRM leads, contacts, and settings via the DashTask REST API
使用说明 (SKILL.md)

Note: This file is for API Key (OpenClaw / custom bot) setups only. For the ChatGPT OAuth GPT Builder setup, see /dashtask-gpt-oauth/.

DashTask Agent API — Skills File (API Key Setup)

Overview

DashTask is a collaborative task management and CRM platform. Each organization has its own tasks, projects, CRM leads, contacts, companies, activities, quotes, and configurable dimensions. AI agents interact with DashTask via a single REST endpoint.

Quick Start

1. Get Organization Context (call ONCE per conversation — never repeat in the same session)

curl -s -X POST "$DASHTASK_ENDPOINT" \
  -H "X-API-Key: $DASHTASK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action": "get_org_context"}'

2. List Tasks

curl -s -X POST "$DASHTASK_ENDPOINT" \
  -H "X-API-Key: $DASHTASK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action": "list_tasks", "filters": {"status": "open", "limit": 20}}'

3. Create a Task

curl -s -X POST "$DASHTASK_ENDPOINT" \
  -H "X-API-Key: $DASHTASK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action": "create_task", "title": "Follow up with client", "urgency": 7}'

4. Create a CRM Lead

curl -s -X POST "$DASHTASK_ENDPOINT" \
  -H "X-API-Key: $DASHTASK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action": "create_lead", "lead_name": "Acme Corp", "lead_status": "new_lead", "priority": 5}'

See the full Actions Reference below for all 60+ available actions.

Authentication

This integration uses an API Key passed in the X-API-Key header. Set it once in your environment:

export DASHTASK_API_KEY="your_key_here"
export DASHTASK_ENDPOINT="https://fgkytboizxksqustdfuc.supabase.co/functions/v1/agent-api"

All requests must include:

POST $DASHTASK_ENDPOINT
Content-Type: application/json
X-API-Key: $DASHTASK_API_KEY

Generate your key in DashTask → Settings → Team → Invite AI Agent. The key is scoped to specific permissions at the time of creation.

Scopes

  • tasks — Tasks, projects, assignees, tags, discussions, notifications, team members
  • crm — Leads, contacts, companies, activities, quotes, lead discussions
  • settings — Dimension management (categories, entities, departments, types, tags, CRM dimensions)

Request Format

All requests are POST with a JSON body. All fields are top-level (no nesting under params):

{
  "action": "\x3Caction_name>",
  "title": "My task title",
  "id": "\x3Cuuid>",
  "filters": { ... }
}
  • action (required): The operation to perform
  • All create/update fields go at the top level alongside action
  • id: UUID of the record for update/delete operations
  • filters: Optional filters for list operations

Response Format

{
  "success": true,
  "data": { ... }
}

On error:

{
  "success": false,
  "error": "Description of what went wrong"
}

IMPORTANT: Discovery-First Pattern

Dimensions are dynamic. Organizations can add, rename, and remove dimension options at any time. Before creating or updating tasks/leads, you must discover what values are valid for this organization.

Recommended: get_org_context (call ONCE per conversation session, never again)

Call get_org_context only on your very first message in a conversation. Store the result in your memory for the entire session.

RULE: If you have already called get_org_context at any point in this conversation, DO NOT call it again. Use the cached response you already have. This applies to every subsequent message in the same session.

Decision logic (follow strictly):

  1. Has get_org_context been called earlier in this conversation? → Use cached data. Skip the call entirely.
  2. Is this the very first message in the conversation? → Call get_org_context once, then cache.
  3. Did the API return an "Invalid dimension" error? → Call get_org_context once to refresh, then stop.

NEVER call get_org_context:

  • Before every action or tool call
  • When the user asks a follow-up question
  • When checking task status or listing tasks
  • In the same conversation where it was already called

Only call get_org_context again if:

  • You receive an "Invalid dimension" or "Invalid entity" error from the API
  • It has been more than 24 hours since the last call in a long-running session

The response includes:

  • projects — all active projects with IDs
  • task_dimensions — entity, category, department, type options
  • custom_task_dimensions — custom dimension types and their items
  • crm_dimensions — lead_source, industry, lead_quality, lead_action_status options
  • lead_stages — pipeline stages
  • team_members — IDs, names, emails
  • tags — tag IDs and names
  • dimension_visibility — which dimensions are visible/hidden
  • fetched_at — ISO timestamp for cache expiry tracking

Alternative: Individual Discovery Calls

You can still call individual discovery actions if you only need a specific subset:

If you provide an invalid dimension value, the API returns an error with the list of valid options so you can self-correct.


Actions Reference

Discovery Actions

get_org_context

Scope: any (tasks, crm, or settings) — returns data scoped to your permissions Returns all organization context in a single call. Recommended for first call — cache the result.

list_task_dimensions

Scope: tasks Lists the 4 fixed task dimensions (entity, category, department, type) with their current options.

list_custom_task_dimensions

Scope: tasks Lists custom dimension types (max 4 per org) and their items.

list_crm_dimensions

Scope: crm Lists CRM dimension types (lead_source, industry, lead_quality, lead_action_status) with options.

list_lead_stages

Scope: crm Lists custom lead pipeline stages for the organization.

list_dimension_visibility

Scope: settings Returns which dimensions are visible/hidden for the organization.


Task Actions

list_tasks

Scope: tasks | Filters: status, project_id, limit

create_task

Scope: tasks

{
  "action": "create_task",
  "title": "Follow up with client",
  "description": "Send proposal draft",
  "status": "open",
  "urgency": 7,
  "entity": "acme_corp",
  "category": "marketing",
  "department": "sales",
  "task_type": "task",
  "project_id": "uuid-or-null",
  "parent_task_id": "uuid-or-null",
  "due_date": "2026-03-01",
  "start_date": "2026-02-15",
  "estimated_cost": 500,
  "sales": 1000,
  "hours": 4,
  "budget_hours": 8
}

Fields:

Field Type Required Description
title string Yes Task title
description string No Task description
status string No open, in-progress, approval, or done (default: open)
urgency integer No 1-10 scale, 10 = most urgent (default: 5)
entity string No Must be valid entity name (discover via list_task_dimensions)
category string No Must be valid category name
department string No Must be valid department name
type string No Must be valid type name
project_id uuid No Associate with a project
parent_task_id uuid No Parent task UUID — creates this as a subtask
due_date string No ISO date
start_date string No ISO date
estimated_cost number No Estimated cost
sales number No Sales value
hours number No Hours spent
budget_hours number No Budgeted hours

update_task

Scope: tasks | Requires: id Same fields as create_task (including parent_task_id). Only include fields you want to change.

delete_task

Scope: tasks | Requires: id

list_subtasks

Scope: tasks | Requires: parent_task_id or id (parent task UUID) Returns all subtasks of a given parent task.

{ "action": "list_subtasks", "parent_task_id": "uuid" }

assign_task

Scope: tasks

{ "action": "assign_task", "task_id": "uuid", "team_member_id": "uuid" }

unassign_task

Scope: tasks

{ "action": "unassign_task", "task_id": "uuid", "team_member_id": "uuid" }

list_task_assignees

Scope: tasks | Requires: id (task id)

add_task_tag

Scope: tasks

{ "action": "add_task_tag", "task_id": "uuid", "tag_id": "uuid" }

remove_task_tag

Scope: tasks

add_task_discussion

Scope: tasks

{ "action": "add_task_discussion", "task_id": "uuid", "message": "Progress update: completed phase 1" }

Project Actions

list_projects

Scope: tasks

create_project

Scope: tasks

{ "action": "create_project", "name": "Q1 Campaign", "description": "Marketing campaign" }

update_project

Scope: tasks | Requires: id

archive_project

Scope: tasks | Requires: id


CRM Lead Actions

list_leads

Scope: crm | Filters: lead_status, deal_status, lead_stage, limit

create_lead

Scope: crm

{
  "action": "create_lead",
  "lead_name": "Acme Corp Deal",
  "lead_status": "new_lead",
  "lead_stage": "new_existing",
  "deal_status": "active",
  "priority": 5,
  "email": "[email protected]",
  "phone": "+1234567890",
  "lead_source": "website",
  "probability": 50,
  "annual_deal_value": 50000
}

Fixed enum fields:

Field Values
lead_status existing_customer, new_lead, attempted_contact, contacted, unqualified, qualified
lead_stage new_existing, demo_discovery, proposal_quote, negotiation_asks, closed_lost, closed_won
deal_status active, won, lost, stale

Dynamic fields (discover via list_crm_dimensions):

  • lead_source — e.g., "website", "referral" (org-specific)
  • lead_action_status — org-specific action statuses
Field Type Description
lead_name string Required. Lead/deal name
priority integer 1-5 scale
probability integer 0-100 win probability
monthly_deal_value number Monthly recurring value
annual_deal_value number Annual deal value
one_time_deal_value number One-time payment value
lifetime_deal_value number Total lifetime value
next_steps string Next action description
next_step_date string ISO date for next action
company_id uuid Link to company
primary_contact_id uuid Link to primary contact
assignee_id uuid Team member UUID
timezone string IANA timezone

update_lead

Scope: crm | Requires: id

delete_lead

Scope: crm | Requires: id

assign_lead / unassign_lead

Scope: crm

{ "action": "assign_lead", "lead_id": "uuid", "team_member_id": "uuid" }

add_lead_party / remove_lead_party

Scope: crm

add_lead_discussion

Scope: crm

{ "action": "add_lead_discussion", "lead_id": "uuid", "message": "Client requested revised timeline" }

CRM Company Actions

list_companies / create_company / update_company / delete_company

Scope: crm

{
  "action": "create_company",
  "company_name": "Acme Corp",
  "website": "https://acme.com",
  "industry": "Technology",
  "employee_count": 500,
  "headquarters": "New York, NY"
}

CRM Contact Actions

list_contacts / create_contact / update_contact / delete_contact

Scope: crm

{
  "action": "create_contact",
  "first_name": "Jane",
  "last_name": "Doe",
  "email": "[email protected]",
  "phone": "+1234567890",
  "title": "VP Sales",
  "priority": "high",
  "company_id": "uuid"
}
Field Values
priority low, medium, high

CRM Activity Actions

list_activities

Scope: crm | Filters: lead_id, contact_id, company_id, type, limit

create_activity

Scope: crm

{
  "action": "create_activity",
  "activity_type": "call",
  "direction": "outbound",
  "subject": "Discovery call",
  "content": "Discussed requirements and timeline",
  "lead_id": "uuid",
  "contact_id": "uuid"
}
Field Values
type email, call, text, demo, meeting, note
direction inbound, outbound

CRM Quote Actions

list_quotes / create_quote / update_quote

Scope: crm

{
  "action": "create_quote",
  "lead_id": "uuid",
  "plan": "Enterprise",
  "seats": 50,
  "billing_cycle": "annual",
  "price": 25000,
  "status": "draft"
}
Field Values
status draft, sent, accepted, rejected
billing_cycle monthly, annual, one-time

Communication Actions

send_nudge

Scope: tasks Sends a nudge email to a team member about a specific task.

{
  "action": "send_nudge",
  "task_id": "uuid",
  "recipient_email": "[email protected]",
  "recipient_name": "John Doe",
  "sender_name": "Sales Bot",
  "tone": "professional"
}

send_crm_email

Scope: crm Sends an email related to a CRM lead.

{
  "action": "send_crm_email",
  "lead_id": "uuid",
  "recipient_email": "[email protected]",
  "subject": "Follow-up on our discussion",
  "body": "Hi, just following up..."
}

Settings & Dimension Management Actions

list_tags / create_tag

Scope: settings

create_task_dimension_option

Scope: settings Add a new option to entity, category, department, or type.

{
  "action": "create_task_dimension_option",
  "dimension": "entity",
  "name": "new_client",
  "label": "New Client"
}

delete_task_dimension_option

Scope: settings | Requires: id, dimension

create_custom_task_dimension

Scope: settings (max 4 per org)

{
  "action": "create_custom_task_dimension",
  "name": "region",
  "label": "Region"
}

delete_custom_task_dimension

Scope: settings | Requires: id

create_custom_task_dimension_item / delete_custom_task_dimension_item

Scope: settings

create_crm_dimension_option

Scope: settings

{
  "action": "create_crm_dimension_option",
  "dimension_type": "lead_source",
  "name": "linkedin",
  "label": "LinkedIn"
}

update_crm_dimension_option / delete_crm_dimension_option

Scope: settings (locked options cannot be deleted)


Team & Notification Actions

list_team_members

Scope: tasks (read-only)

create_notification

Scope: tasks

{
  "action": "create_notification",
  "user_id": "uuid",
  "title": "New task assigned",
  "message": "You've been assigned to 'Follow up with client'",
  "type": "info"
}

Restricted Actions (Bot Cannot)

  • Transfer admin privileges
  • Change member roles
  • Manage billing or subscriptions
  • Access platform admin operations
  • Delete the organization
  • Access data outside the authorized organization

Error Handling

Invalid dimension value:

{
  "success": false,
  "error": "Invalid entity 'xyz'. Valid values: [\"acme_corp\", \"beta_inc\"]"
}

Missing scope:

{
  "success": false,
  "error": "Missing scope: crm"
}

Missing required field:

{
  "success": false,
  "error": "title is required"
}

Rate Limiting

Be respectful of API usage. Recommended: max 60 requests per minute per key.

Workflow Examples

Full Lead Lifecycle

  1. get_org_contextfirst message only — discover all dimensions, stages, and team members (cache for entire session)
  2. create_company — create the company
  3. create_contact — create the primary contact
  4. create_lead — create the lead linked to company and contact
  5. create_activity — log a discovery call
  6. update_lead — update stage to demo_discovery
  7. create_quote — generate a quote
  8. update_lead — update stage to proposal_quote, set probability
  9. add_lead_discussion — add internal notes
  10. send_crm_email — send follow-up email

Task Management Pipeline

  1. get_org_contextfirst message only — discover all dimensions, projects, and team members (cache for entire session)
  2. create_project — create a project
  3. create_task — create tasks within the project
  4. assign_task — assign team members
  5. send_nudge — nudge assignees about overdue tasks
  6. update_task — mark as done
安全使用建议
This skill appears coherent with its stated purpose, but review these before installing: 1) Create a dedicated DashTask API key with the minimal scopes needed (tasks vs crm vs settings) rather than reuse a broad key. 2) Verify DASHTASK_ENDPOINT points to your organization's official endpoint (do not accept example/supabase endpoints unless you expect them). 3) Understand that the agent will cache get_org_context (team members, emails, tags, dimensions) for the session—ensure your agent’s memory handling meets your privacy requirements. 4) The skill can send emails and modify records; audit and monitor API-key usage and activity logs, and rotate keys regularly. 5) Source/origin is listed as unknown in the package metadata—if you require greater assurance, obtain the skill from a verified DashTask/OpenClaw publisher or inspect a signed release before enabling.
功能分析
Type: OpenClaw Skill Name: dashtask-taskmanager-crm-dashboards-bots-humans Version: 1.9.1 The DashTask skill bundle is a legitimate integration for the DashTask CRM and task management platform. It provides a comprehensive API reference in SKILL.md for managing tasks, leads, and organization settings via a single REST endpoint (defaulting to a Supabase Edge Function). The instructions are well-structured, focusing on efficient API usage and discovery patterns without any evidence of malicious intent, data exfiltration, or prompt injection.
能力评估
Purpose & Capability
Name/description, required environment variables (DASHTASK_API_KEY, DASHTASK_ENDPOINT), and the documented actions (tasks, CRM, settings, emails) align: an API key and endpoint are exactly what's needed for a REST-based DashTask integration.
Instruction Scope
SKILL.md is instruction-only and stays within the API's domain (POST to DASHTASK_ENDPOINT with X-API-Key). It requires caching get_org_context per-session (includes team members, emails, tags, etc.), which is necessary for operation but means the agent will store potentially sensitive org data in memory—confirm how the agent handles session memory and retention. The file also shows actions that can send emails and create/update/delete records, which is expected for CRM but worth confirming scope on the API key.
Install Mechanism
No install spec or code files are included (instruction-only), so nothing is downloaded or written to disk by the skill itself.
Credentials
Only two environment variables are required (API key and endpoint), both directly relevant. The manifest and SKILL.md consistently reference only these variables; the primary credential is the API key as expected.
Persistence & Privilege
Skill is not always-enabled and does not request elevated platform persistence. Autonomous invocation is allowed by default (normal); there is no evidence the skill modifies other skills or system-wide configuration.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install dashtask-taskmanager-crm-dashboards-bots-humans
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /dashtask-taskmanager-crm-dashboards-bots-humans 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.9.1
- Added a new README.md file with documentation and usage instructions. - No functional changes to the skill code; version remains at 1.9.1.
v1.0.0
Initial release of dashtask task manager and CRM skill (API key setup): - Manage tasks, CRM leads, contacts, and organizational settings via a unified REST API. - Supports over 60 actions including creating, listing, and updating tasks and leads. - Includes robust dimension discovery and caching logic for organization context (“get_org_context” pattern). - Provides documentation for authentication, request/response formats, and recommended usage patterns. - Scope-based access for tasks, CRM, and settings is built in. - Full curl examples and field reference for rapid setup and integration.
元数据
Slug dashtask-taskmanager-crm-dashboards-bots-humans
版本 1.9.1
许可证
累计安装 1
当前安装数 1
历史版本数 2
常见问题

Dashtask.ai - Task/Project manager and CRM built for AI Agents and Humans to work together. 是什么?

Manage tasks, CRM leads, contacts, and settings via the DashTask REST API. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 304 次。

如何安装 Dashtask.ai - Task/Project manager and CRM built for AI Agents and Humans to work together.?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install dashtask-taskmanager-crm-dashboards-bots-humans」即可一键安装,无需额外配置。

Dashtask.ai - Task/Project manager and CRM built for AI Agents and Humans to work together. 是免费的吗?

是的,Dashtask.ai - Task/Project manager and CRM built for AI Agents and Humans to work together. 完全免费(开源免费),可自由下载、安装和使用。

Dashtask.ai - Task/Project manager and CRM built for AI Agents and Humans to work together. 支持哪些平台?

Dashtask.ai - Task/Project manager and CRM built for AI Agents and Humans to work together. 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Dashtask.ai - Task/Project manager and CRM built for AI Agents and Humans to work together.?

由 sstrohl223(@sstrohl223)开发并维护,当前版本 v1.9.1。

💬 留言讨论