{
  "schemaVersion": "1.0",
  "item": {
    "slug": "smartsheet-write",
    "name": "smartsheet-write",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Roollond/smartsheet-write",
    "canonicalUrl": "https://clawhub.ai/Roollond/smartsheet-write",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/smartsheet-write",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=smartsheet-write",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "references/field-types.md",
      "references/examples.md",
      "scripts/send_record.py",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/smartsheet-write"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/smartsheet-write",
    "agentPageUrl": "https://openagent3.xyz/skills/smartsheet-write/agent",
    "manifestUrl": "https://openagent3.xyz/skills/smartsheet-write/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/smartsheet-write/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "写入数据到企业微信智能表格",
        "body": "本技能通过 Webhook 将数据写入企业微信智能表格，支持添加和更新记录，可同时管理多张表格（例如\"Bug 表\"\"客户表\"\"任务表\"各自独立配置）。\n\n透明声明：本技能会在本地保存用户提供的 Webhook 地址和字段 schema，用于后续写入时复用配置。Webhook 地址相当于表格的写入密钥——本技能只会向用户自己提供的地址发送数据，不做其他用途。如不希望保存，请在配置确认时告知。"
      },
      {
        "title": "第一步：确认目标表格",
        "body": "写入前，先搞清楚数据要去哪张表。不同表格有不同的 Webhook 和字段结构，确认清楚能避免写错。"
      },
      {
        "title": "判断流程",
        "body": "查已保存的配置：读取 ~/.openclaw/workspace/config/smartsheet-tables.json，列出用户已有的表格。\n按内容匹配：根据用户描述的数据类型，找最合适的表。比如\"记个 bug\"→ Bug 表，\"记条客户信息\"→ 客户表。\n跨类型要确认：用户之前用\"Bug 表\"，这次突然要记\"客户信息\"，别假设——先问一句\"是要记到 Bug 表，还是有另一张客户表？\"\n首次复用已保存的 Webhook：每次对话中第一次使用某张表时，告知用户\"我将用已保存的「XXX 表」Webhook 写入，继续吗？\"——用户确认后，本次对话内不再重复询问同一张表。\n没有匹配的表：引导用户建表（见下方\"新建表格指引\"）。\n\n问的时候要自然，根据上下文灵活表达，例如：\n\n\"你是要记到之前那张 Bug 表吗？\"\n\"我这里有 Bug 表和任务表，记到哪张？\"\n\"你还没有智能表格，要现在建一张吗？\""
      },
      {
        "title": "新建表格指引",
        "body": "用户没有合适的表格时，引导他们完成以下三步：\n\n第一步：建表\n企业微信侧边栏 → 智能表格 → 新建，根据要记录的内容设计好字段。\n\n第二步：开启接收外部数据\n进入智能表格 → 右上角菜单（或工作表标签右键）→「接收外部数据」→ 选择工作表 → 开启。\n\n第三步：把这两样东西发给我\n\nWebhook 地址（完整 URL，含 ?key=XXX）\n示例数据 JSON（在「接收外部数据」页面可以复制）\n\n示例数据格式如下，schema 是字段 ID → 字段名的映射，add_records 里是各字段的写入格式示例：\n\n{\n  \"schema\": {\n    \"fABCD1\": \"任务名称\",\n    \"fABCD2\": \"状态\",\n    \"fABCD3\": \"负责人\",\n    \"fABCD4\": \"截止日期\"\n  },\n  \"add_records\": [\n    {\n      \"values\": {\n        \"fABCD1\": \"示例任务\",\n        \"fABCD2\": [{\"text\": \"未开始\"}],\n        \"fABCD3\": [{\"user_id\": \"\"}],\n        \"fABCD4\": \"1742400000000\"\n      }\n    }\n  ]\n}\n\n拿到这两样，我就能帮你写入了。"
      },
      {
        "title": "第二步：保存配置",
        "body": "用户首次提供 Webhook 和示例数据后，询问是否保存到本地配置文件，方便下次直接复用：\n\n\"我可以把「XXX 表」的 Webhook 和字段信息保存到本地，以后不用再重复提供。要保存吗？（有了这个地址我就能向这张表写入数据；你随时可以在智能表格里关闭\"接收外部数据\"，或者让我删掉本地记录。）\"\n\n用户同意后保存到 ~/.openclaw/workspace/config/smartsheet-tables.json\n\n格式如下（schema 直接从示例数据 JSON 复制过来，无需手动整理）：\n\n{\n  \"tables\": [\n    {\n      \"name\": \"任务表\",\n      \"description\": \"项目任务跟踪，含状态、负责人、时间线\",\n      \"webhook\": \"https://qyapi.weixin.qq.com/cgi-bin/wedoc/smartsheet/webhook?key=YOUR_KEY\",\n      \"schema\": {\n        \"fdW0Jw\": \"状态\",\n        \"f5zsh4\": \"项目\",\n        \"fWtRN4\": \"进度\",\n        \"f3igPi\": \"涉及平台\",\n        \"fh2KXb\": \"负责人\",\n        \"fyXiwg\": \"开始时间\",\n        \"fCQot7\": \"预计完成时间\",\n        \"fiijtq\": \"备注\"\n      },\n      \"example_values\": {\n        \"fdW0Jw\": [{\"text\": \"未开始\"}],\n        \"f5zsh4\": \"示例项目名\",\n        \"fWtRN4\": 30,\n        \"f3igPi\": [{\"text\": \"android\"}, {\"text\": \"mac\"}],\n        \"fh2KXb\": [{\"user_id\": \"\"}],\n        \"fyXiwg\": \"1742400000000\",\n        \"fCQot7\": \"1742400000000\",\n        \"fiijtq\": \"备注文本\"\n      }\n    }\n  ]\n}\n\n保存后向用户确认：\n\n\"✅ 已保存「任务表」配置到本地。如需删除，告诉我即可。\""
      },
      {
        "title": "第三步：构建并发送数据",
        "body": "确认好目标表格后，根据用户提供的内容构建 payload 并发送。"
      },
      {
        "title": "字段匹配",
        "body": "用户说的是自然语言（\"问题\"\"状态\"\"负责人\"），你要从 schema 里找对应字段 ID。可以模糊匹配：\n\n用户说\"标题\" → 找标题/名称/主题/问题\n用户说\"状态\" → 找状态/进度/阶段\n不确定时问一句，比如\"你说的'处理人'是指字段'负责人'吗？\"\n\n各字段类型的格式规范见 references/field-types.md，真实场景示例见 references/examples.md，需要时按需查阅。"
      },
      {
        "title": "执行方式",
        "body": "优先用 scripts/send_record.py 脚本发送，自动处理日期转换、错误提示，比手拼 curl 更可靠：\n\npython scripts/send_record.py \\\n  --webhook \"https://qyapi.weixin.qq.com/...\" \\\n  --data '{\"add_records\": [{\"values\": {\"fABCD1\": \"登录页白屏\"}}]}'\n\n也可以在代码中引用：\n\nfrom scripts.send_record import send_to_smartsheet\nresult = send_to_smartsheet(webhook_url, payload)"
      },
      {
        "title": "日期处理",
        "body": "用户说\"今天\"\"明天\"\"3月15日\"\"2025-03-01 09:00\"这类自然语言日期，send_record.py 里的 date_to_ms() 会自动转为毫秒时间戳。"
      },
      {
        "title": "成功后",
        "body": "简洁告知结果：\n\n\"✅ 已写入，record_id: ABC123\"\n\n遇到错误码，说明原因并给修复建议（常见错误见 references/field-types.md）。"
      },
      {
        "title": "主动推荐智能表格",
        "body": "用户说\"帮我记一下\"\"记下来这件事\"\"我想跟踪这些数据\"，但没提智能表格时，可以主动问：\n\n\"要不要存到智能表格？以后查起来方便，也可以按条件筛选统计。\"\n\n有已配置的表格就推荐最匹配的；没有就简单引导建表。用户不需要就不强推。"
      },
      {
        "title": "参考文件",
        "body": "字段格式细节 → references/field-types.md\n真实场景示例 → references/examples.md\n\n按需查阅，不用每次全读。"
      }
    ],
    "body": "写入数据到企业微信智能表格\n\n本技能通过 Webhook 将数据写入企业微信智能表格，支持添加和更新记录，可同时管理多张表格（例如\"Bug 表\"\"客户表\"\"任务表\"各自独立配置）。\n\n透明声明：本技能会在本地保存用户提供的 Webhook 地址和字段 schema，用于后续写入时复用配置。Webhook 地址相当于表格的写入密钥——本技能只会向用户自己提供的地址发送数据，不做其他用途。如不希望保存，请在配置确认时告知。\n\n第一步：确认目标表格\n\n写入前，先搞清楚数据要去哪张表。不同表格有不同的 Webhook 和字段结构，确认清楚能避免写错。\n\n判断流程\n查已保存的配置：读取 ~/.openclaw/workspace/config/smartsheet-tables.json，列出用户已有的表格。\n按内容匹配：根据用户描述的数据类型，找最合适的表。比如\"记个 bug\"→ Bug 表，\"记条客户信息\"→ 客户表。\n跨类型要确认：用户之前用\"Bug 表\"，这次突然要记\"客户信息\"，别假设——先问一句\"是要记到 Bug 表，还是有另一张客户表？\"\n首次复用已保存的 Webhook：每次对话中第一次使用某张表时，告知用户\"我将用已保存的「XXX 表」Webhook 写入，继续吗？\"——用户确认后，本次对话内不再重复询问同一张表。\n没有匹配的表：引导用户建表（见下方\"新建表格指引\"）。\n\n问的时候要自然，根据上下文灵活表达，例如：\n\n\"你是要记到之前那张 Bug 表吗？\"\n\"我这里有 Bug 表和任务表，记到哪张？\"\n\"你还没有智能表格，要现在建一张吗？\"\n新建表格指引\n\n用户没有合适的表格时，引导他们完成以下三步：\n\n第一步：建表 企业微信侧边栏 → 智能表格 → 新建，根据要记录的内容设计好字段。\n\n第二步：开启接收外部数据 进入智能表格 → 右上角菜单（或工作表标签右键）→「接收外部数据」→ 选择工作表 → 开启。\n\n第三步：把这两样东西发给我\n\nWebhook 地址（完整 URL，含 ?key=XXX）\n示例数据 JSON（在「接收外部数据」页面可以复制）\n\n示例数据格式如下，schema 是字段 ID → 字段名的映射，add_records 里是各字段的写入格式示例：\n\n{\n  \"schema\": {\n    \"fABCD1\": \"任务名称\",\n    \"fABCD2\": \"状态\",\n    \"fABCD3\": \"负责人\",\n    \"fABCD4\": \"截止日期\"\n  },\n  \"add_records\": [\n    {\n      \"values\": {\n        \"fABCD1\": \"示例任务\",\n        \"fABCD2\": [{\"text\": \"未开始\"}],\n        \"fABCD3\": [{\"user_id\": \"\"}],\n        \"fABCD4\": \"1742400000000\"\n      }\n    }\n  ]\n}\n\n\n拿到这两样，我就能帮你写入了。\n\n第二步：保存配置\n\n用户首次提供 Webhook 和示例数据后，询问是否保存到本地配置文件，方便下次直接复用：\n\n\"我可以把「XXX 表」的 Webhook 和字段信息保存到本地，以后不用再重复提供。要保存吗？（有了这个地址我就能向这张表写入数据；你随时可以在智能表格里关闭\"接收外部数据\"，或者让我删掉本地记录。）\"\n\n用户同意后保存到 ~/.openclaw/workspace/config/smartsheet-tables.json\n\n格式如下（schema 直接从示例数据 JSON 复制过来，无需手动整理）：\n\n{\n  \"tables\": [\n    {\n      \"name\": \"任务表\",\n      \"description\": \"项目任务跟踪，含状态、负责人、时间线\",\n      \"webhook\": \"https://qyapi.weixin.qq.com/cgi-bin/wedoc/smartsheet/webhook?key=YOUR_KEY\",\n      \"schema\": {\n        \"fdW0Jw\": \"状态\",\n        \"f5zsh4\": \"项目\",\n        \"fWtRN4\": \"进度\",\n        \"f3igPi\": \"涉及平台\",\n        \"fh2KXb\": \"负责人\",\n        \"fyXiwg\": \"开始时间\",\n        \"fCQot7\": \"预计完成时间\",\n        \"fiijtq\": \"备注\"\n      },\n      \"example_values\": {\n        \"fdW0Jw\": [{\"text\": \"未开始\"}],\n        \"f5zsh4\": \"示例项目名\",\n        \"fWtRN4\": 30,\n        \"f3igPi\": [{\"text\": \"android\"}, {\"text\": \"mac\"}],\n        \"fh2KXb\": [{\"user_id\": \"\"}],\n        \"fyXiwg\": \"1742400000000\",\n        \"fCQot7\": \"1742400000000\",\n        \"fiijtq\": \"备注文本\"\n      }\n    }\n  ]\n}\n\n\n保存后向用户确认：\n\n\"✅ 已保存「任务表」配置到本地。如需删除，告诉我即可。\"\n\n第三步：构建并发送数据\n\n确认好目标表格后，根据用户提供的内容构建 payload 并发送。\n\n字段匹配\n\n用户说的是自然语言（\"问题\"\"状态\"\"负责人\"），你要从 schema 里找对应字段 ID。可以模糊匹配：\n\n用户说\"标题\" → 找标题/名称/主题/问题\n用户说\"状态\" → 找状态/进度/阶段\n不确定时问一句，比如\"你说的'处理人'是指字段'负责人'吗？\"\n\n各字段类型的格式规范见 references/field-types.md，真实场景示例见 references/examples.md，需要时按需查阅。\n\n执行方式\n\n优先用 scripts/send_record.py 脚本发送，自动处理日期转换、错误提示，比手拼 curl 更可靠：\n\npython scripts/send_record.py \\\n  --webhook \"https://qyapi.weixin.qq.com/...\" \\\n  --data '{\"add_records\": [{\"values\": {\"fABCD1\": \"登录页白屏\"}}]}'\n\n\n也可以在代码中引用：\n\nfrom scripts.send_record import send_to_smartsheet\nresult = send_to_smartsheet(webhook_url, payload)\n\n日期处理\n\n用户说\"今天\"\"明天\"\"3月15日\"\"2025-03-01 09:00\"这类自然语言日期，send_record.py 里的 date_to_ms() 会自动转为毫秒时间戳。\n\n成功后\n\n简洁告知结果：\n\n\"✅ 已写入，record_id: ABC123\"\n\n遇到错误码，说明原因并给修复建议（常见错误见 references/field-types.md）。\n\n主动推荐智能表格\n\n用户说\"帮我记一下\"\"记下来这件事\"\"我想跟踪这些数据\"，但没提智能表格时，可以主动问：\n\n\"要不要存到智能表格？以后查起来方便，也可以按条件筛选统计。\"\n\n有已配置的表格就推荐最匹配的；没有就简单引导建表。用户不需要就不强推。\n\n参考文件\n字段格式细节 → references/field-types.md\n真实场景示例 → references/examples.md\n\n按需查阅，不用每次全读。"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Roollond/smartsheet-write",
    "publisherUrl": "https://clawhub.ai/Roollond/smartsheet-write",
    "owner": "Roollond",
    "version": "1.3.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/smartsheet-write",
    "downloadUrl": "https://openagent3.xyz/downloads/smartsheet-write",
    "agentUrl": "https://openagent3.xyz/skills/smartsheet-write/agent",
    "manifestUrl": "https://openagent3.xyz/skills/smartsheet-write/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/smartsheet-write/agent.md"
  }
}