{
  "schemaVersion": 1,
  "key": "slack",
  "name": "Slack",
  "description": "Envie mensagens para canais do Slack a partir dos seus processos.",
  "category": "communication",
  "vendor": "Slack",
  "version": "1.1.0",
  "status": "ACTIVE",
  "credentials": [
    {
      "type": "OAUTH2",
      "permissions": [
        "Enviar mensagens nos seus canais",
        "Ver a lista de canais do workspace"
      ]
    }
  ],
  "actions": [
    {
      "key": "message.post",
      "name": "Enviar mensagem",
      "description": "Publica uma mensagem em um canal, com o texto montado a partir de dados do processo.",
      "inputs": [
        {
          "key": "channel",
          "label": "Canal",
          "type": "RESOURCE_SELECT",
          "required": true
        },
        {
          "key": "text",
          "label": "Mensagem",
          "type": "TEXT",
          "required": true,
          "description": "Aceita expressões do processo, ex.: {{ process.protocol }}."
        }
      ],
      "outputs": [
        {
          "key": "ts",
          "label": "Ts",
          "type": "OUTPUT",
          "required": false
        },
        {
          "key": "channel",
          "label": "Channel",
          "type": "OUTPUT",
          "required": false
        }
      ]
    }
  ],
  "triggers": [
    {
      "key": "message.received",
      "name": "Mensagem recebida",
      "description": "Dispara quando uma mensagem é postada num canal onde o app está. Inscrição MANUAL: cole a URL de callback em Event Subscriptions → Request URL, no painel do app Slack, e assine o evento message.channels.",
      "mode": "PUSH",
      "exclusiveByConnection": true,
      "inputs": [],
      "events": [
        {
          "type": "MESSAGE_RECEIVED",
          "messageType": "TEXT"
        }
      ]
    },
    {
      "key": "command.received",
      "name": "Comando recebido",
      "description": "Dispara quando alguém usa o slash command do app no Slack. Inscrição MANUAL: o comando é criado no painel do app Slack (Slash Commands) e a URL de callback vai no Request URL DESSE comando — que é um campo separado do Request URL de Event Subscriptions. O texto após o comando chega em 'arguments'.",
      "mode": "PUSH",
      "exclusiveByConnection": true,
      "inputs": [],
      "events": [
        {
          "type": "GENERIC"
        }
      ]
    }
  ]
}
