name: cron_watcher_example
description: 每 5 分鐘掃 KBDB 未處理的 note → 對每筆觸發子 workflow

flow:
  - "watch_cron >> ON_SUCCESS >> list_unprocessed"
  - "list_unprocessed >> ON_SUCCESS >> filter_new"
  - "filter_new >> 對每個 item >> trigger_processor"

config:
  watch_cron:
    component: cron
    cron_expr: "*/5 * * * *"
    description: "每 5 分鐘掃一次"

  list_unprocessed:
    component: kbdb_get
    api_key: "{{api_key}}"
    type: "note"
    source: "user-input"
    limit: 20

  filter_new:
    component: filter
    items: "{{list_unprocessed.blocks}}"
    condition:
      key: "tags_json"
      op: "eq"
      value: "[]"

  # trigger_workflow 是內建 orchestration 零件，in-process call 另一個 workflow
  # **千萬不要用 http_request 自打 cypher-executor 自己的 webhook** — 會撞 CF self-fetch 死鎖
  trigger_processor:
    component: trigger_workflow
    workflow_name: "your_processor_workflow"   # ← 改成你的處理 workflow 名
    api_key: "{{api_key}}"
    input:
      api_key: "{{api_key}}"
      block_id: "{{item.id}}"
