OpenNomos文档
工具增长闭环

log_action

记录你(或用户)刚在某个增长条目上做过或观察到的事:发生了什么(一句话就够)、只有确知变了才填的新阶段、何时跟进,以及任何结果。

记录你(或用户)刚在某个增长条目上做过或观察到的事:发生了什么(一句话就够)、只有确知变了才填的新阶段、何时跟进,以及任何结果。传机会 id 或 URL(未知的 URL 会自动登记);两者都没有时,只记录这次行动。服务端从不根据行动推断阶段。不要把私信原文或个人数据写进摘要。用 idempotency_key 让重试安全。

以上是服务端发布的英文描述的译文;英文原文见英文页。工具名、参数名和取值保持原样。

字段值
工具包Core (core)
每次调用的预估成本$0
工具包每月上限无
项目按顺序确定:显式的 project → 请求头 → 凭据默认项目 → 工作区默认项目

参数

参数必填类型说明
project否string项目 slug 或 id。省略则用凭据或工作区的默认项目。
opportunity_id否string这件事涉及的机会(来自 track 或 get_briefing 的 id)。用它或 url,不要两个都用。
url否string (≤ 2000 字符)或者传涉及的帖子/主页 URL;未知的 URL 会自动登记。
title否string (≤ 200 字符)新登记 URL 的标题。
action是object做了什么或观察到什么。
action.kind否string (≤ 50 字符)行动的类型,例如 'comment'、'dm'、'post'、'email'。默认 'action'。
action.summary是string一句话说明发生了什么,例如 'Replied with a comparison table'。不要写私信原文。
action.channel否string (≤ 100 字符)在哪里,例如 'reddit'、'x'、'xiaohongshu'。
action.url否string (≤ 2000 字符)指向你发布内容的链接,例如你的评论 URL。
action.occurred_at否ISO 时间发生的时间(ISO 时间)。默认:现在。
stage否"discovered" | "contacted" | "replied" | "willing_to_talk" | "converted" | "dropped"新阶段,只有确知变了才填:discovered、contacted、replied、willing_to_talk、converted 或 dropped。
next_followup否ISO 时间 | {in_days} | {at} | null何时跟进:{"in_days": 3}、{"at": ISO 时间},或一个 ISO 时间。null 表示清除。默认:按阶段给出的建议。
experiment_id否string把这次行动挂到某个实验上(来自 track 的 id)。
link_code否string (≤ 32 字符)这次行动用到的短链接的 code(来自 track type=link),用于点击归因。
outcome否object这次行动的结果,如果有的话。
outcome.type是string (≤ 60 字符)达成了什么,例如 'signup'、'reply'、'call_booked'。
outcome.value否number数量,例如 1 或 49.9。
outcome.unit否string (≤ 20 字符)数值的单位,例如 'usd'、'count'。
outcome.evidence否string你怎么知道的,例如 'Reply in thread from the author'。
note否string补充说明,一两句话。
idempotency_key否string (≤ 100 字符)任意唯一字符串;用同一个 key 重复调用,不会记录两次。

示例调用

{
  "project": "acme-crm",
  "url": "https://www.reddit.com/r/SaaS/comments/1abc23/looking_for_a_lightweight_crm",
  "action": {
    "kind": "comment",
    "summary": "Replied with a comparison table",
    "channel": "reddit"
  },
  "stage": "contacted",
  "experiment_id": "exp_7Hn2LpWc0",
  "idempotency_key": "2026-10-16-comment-1abc23"
}

REST:POST https://service.opennomos.com/v1/tools/log_action,以上 JSON 作为请求体。MCP:tools/call,name: "log_action",以上 JSON 作为 arguments。

示例结果

示例里的值是示意性的;结构来自服务端代码。

{
  "project": {
    "id": "prj_k3Vd9aQx2",
    "slug": "acme-crm"
  },
  "action_id": "act_Lw03pKd8",
  "opportunity": {
    "id": "opp_Qm4x9TnB1",
    "stage": "contacted",
    "next_followup_at": "2026-10-19T09:30:00.000Z",
    "events": 3
  },
  "experiment_progress": {
    "id": "exp_7Hn2LpWc0",
    "metric": "willing_to_talk",
    "current": 1,
    "target": 3,
    "deadline_at": "2026-10-30T09:00:00.000Z"
  },
  "hints": []
}

说明

  • 闭环里回写的那一半。OpenNomos 从不发帖、回复或给任何人发消息:由你(或用户)在别处做,然后在这里记录。
  • 传 opportunity_id 或 url(未知的 URL 会自动登记)。两者都没有时,只记录这次行动。
  • 默认行为:服务端从不推断阶段。省略 stage,阶段不变。省略 next_followup,跟进时间不变,除非阶段确实变了,这时会按新阶段设置:contacted +3 天,replied +2,willing_to_talk +2,converted 和 dropped 清除。next_followup: null 清除。详见 log_action 的默认行为。
  • outcome 记录一个结果(type,可选 value、unit、evidence)。只有关联到机会或短链接时,才算已归因(direct);否则是 unknown。见归因。
  • idempotency_key 让重试变得安全:用同一个 key 重复调用,会重放第一次的结果(带 duplicate: true),而不是记录两次。当行动挂在某个实验上时,会出现 experiment_progress。
  • hints 里可能有一行警告,例如 outcome.type 是 willing_to_talk 但阶段没有改。
  • 不要把私信原文或个人数据写进 summary 或 note。

错误

被拒绝的调用(输入有误、id 未知、触发限流)返回 message 和 code;走 MCP 时结果带 isError: true。见错误。

本页目录