{
  "name": "Slack Stand-up Collector — Purrly",
  "flow": [
    {
      "id": 1,
      "module": "slack:ActionCreateMessage",
      "version": 1,
      "parameters": {},
      "mapper": {
        "channel": "#standup",
        "text": ":alarm_clock: *Stand-up for {{formatDate(now; \"YYYY-MM-DD\")}} — drop your Yesterday / Today / Blockers as a thread reply, or run `/standup` to fill the form.*",
        "as_user": true,
        "pin": true
      },
      "metadata": {
        "designer": { "x": 0, "y": 0 },
        "parameters": [
          { "name": "channel", "type": "channel", "label": "Channel" },
          { "name": "text", "type": "text", "label": "Message text" },
          { "name": "pin", "type": "boolean", "label": "Pin to channel" }
        ],
        "restore": {}
      }
    },
    {
      "id": 2,
      "module": "slack:ActionCreateMessage",
      "version": 1,
      "parameters": {},
      "mapper": {
        "channel": "#standup",
        "text": "Need a quick fill? Run `/standup` and Slack’s Workflow Builder captures your *Yesterday / Today / Blockers* directly into this thread — no separate form, no lost update.",
        "as_user": true
      },
      "metadata": {
        "designer": { "x": 300, "y": 0 },
        "parameters": [
          { "name": "channel", "type": "channel", "label": "Channel" },
          { "name": "text", "type": "text", "label": "Message text" }
        ],
        "restore": {}
      }
    },
    {
      "id": 3,
      "module": "builtin:BasicAggregator",
      "version": 1,
      "parameters": {
        "feeder": 1,
        "rowType": "uploads/files/aggregator-row.yaml"
      },
      "mapper": {
        "author": "{{1.author}}",
        "yesterday": "{{1.yesterday}}",
        "today": "{{1.today}}",
        "blockers": "{{1.blockers}}",
        "submitted_at": "{{formatDate(now; \"YYYY-MM-DD\")}}"
      },
      "metadata": {
        "designer": { "x": 600, "y": 0 },
        "parameters": [{ "name": "feeder", "type": "uploads", "label": "Source module" }],
        "restore": {}
      }
    },
    {
      "id": 4,
      "module": "builtin:BasicFeeder",
      "version": 1,
      "parameters": {
        "delay": 86400
      },
      "mapper": {},
      "metadata": {
        "designer": { "x": 900, "y": 0 },
        "label": "Wait 1 day (Wednesday morning rollup)",
        "parameters": [{ "name": "delay", "type": "number", "label": "Delay (seconds)" }]
      }
    },
    {
      "id": 5,
      "module": "slack:ActionCreateMessage",
      "version": 1,
      "parameters": {},
      "mapper": {
        "channel": "#standup",
        "text": ":hourglass_flowing_sand: *Midweek rollup — {{formatDate(now; \"YYYY-MM-DD\")}}*\n\n{{map(3; \"row\"; \"• *\" + row.author + \"* — yesterday: \" + row.yesterday + \" · today: \" + row.today + (row.blockers == \"\" ? \"\" : \" · :rotating_light: blockers: \" + row.blockers) + \"\\n\")}}",
        "as_user": true
      },
      "metadata": {
        "designer": { "x": 1200, "y": 0 },
        "parameters": [
          { "name": "channel", "type": "channel", "label": "Channel" },
          { "name": "text", "type": "text", "label": "Message text" }
        ],
        "restore": {}
      }
    },
    {
      "id": 6,
      "module": "builtin:BasicFeeder",
      "version": 1,
      "parameters": {
        "delay": 259200
      },
      "mapper": {},
      "metadata": {
        "designer": { "x": 1500, "y": 0 },
        "label": "Wait 3 days (Friday recap)",
        "parameters": [{ "name": "delay", "type": "number", "label": "Delay (seconds)" }]
      }
    },
    {
      "id": 7,
      "module": "builtin:BasicAggregator",
      "version": 1,
      "parameters": {
        "feeder": 5,
        "rowType": "uploads/files/aggregator-row.yaml"
      },
      "mapper": {
        "author": "{{5.author}}",
        "yesterday": "{{5.yesterday}}",
        "today": "{{5.today}}",
        "blockers": "{{5.blockers}}",
        "submitted_at": "{{5.submitted_at}}"
      },
      "metadata": {
        "designer": { "x": 1800, "y": 0 },
        "parameters": [{ "name": "feeder", "type": "uploads", "label": "Source module" }],
        "restore": {}
      }
    },
    {
      "id": 8,
      "module": "slack:ActionSetChannelTopic",
      "version": 1,
      "parameters": {},
      "mapper": {
        "channel": "#standup",
        "topic": "Stand-up of the week {{formatDate(now; \"YYYY-MM-DD\")}} — {{7.length}} authors posted, recap posted to this channel"
      },
      "metadata": {
        "designer": { "x": 2100, "y": 0 },
        "parameters": [
          { "name": "channel", "type": "channel", "label": "Channel" },
          { "name": "topic", "type": "text", "label": "New topic" }
        ],
        "restore": {}
      }
    },
    {
      "id": 9,
      "module": "slack:ActionCreateMessage",
      "version": 1,
      "parameters": {},
      "mapper": {
        "channel": "#standup-recap",
        "text": ":calendar: *Friday stand-up recap — {{formatDate(now; \"YYYY-MM-DD\")}}*\n\n{{map(7; \"row\"; \"• *\" + row.author + \"* — yesterday: \" + row.yesterday + \" · today: \" + row.today + (row.blockers == \"\" ? \"\" : \" · :rotating_light: blockers: \" + row.blockers) + \"\\n\")}}\n\n:sparkles: Anything blocked above should resolve before Monday planning.",
        "as_user": true
      },
      "metadata": {
        "designer": { "x": 2400, "y": 0 },
        "parameters": [
          { "name": "channel", "type": "channel", "label": "Channel" },
          { "name": "text", "type": "text", "label": "Message text" }
        ],
        "restore": {}
      }
    }
  ],
  "metadata": {
    "instant": true,
    "version": 1,
    "scenario": {
      "roundtrips": 1,
      "maxErrors": 3,
      "autoCommit": true,
      "autoCommitTriggerLast": true,
      "sequential": true,
      "confidential": false,
      "dataloss": false,
      "dlq": false,
      "freshVariables": false
    },
    "designer": {
      "orphans": []
    },
    "zone": "eu1.make.com"
  }
}
