Slack: Post message

integration_slack_post · action · Integrazioni SaaS · Disponibile · v1.0.0

Descrizione

Connettore canonico Slack via Web API ufficiale chat.postMessage — l'endpoint scaffold di tutta la famiglia Slack messaging del workflow stack, utilizzato dal wrapper community_slack che incapsula pattern community-friendly per il dataset AI scaffold. Posta un messaggio in un canale Slack del workspace autorizzato con supporto pieno alle tre features avanzate della piattaforma: (1) Plain text con emoji (sintassi shortcode :rocket: :heart: :tada: che Slack converte server-side in emoji visuali + supporto a custom emoji aziendali :it_team: caricate dall'admin del workspace), (2) Block Kit (lo standard Slack 2018+ per layout rich JSON-defined: header section per titoli grandi, section blocks con accessory (button, multi_static_select, datepicker, image), divider per separazione logica, image blocks con alt_text per accessibility, fields array a 2-colonne per metadata strutturati, context block per metadata small + author, actions row con multi-button per interactive payload back), (3) Thread reply via thread_ts (passa il ts del messaggio parent come thread_ts → la response appare come reply nel thread invece di nuovo messaggio standalone — fondamentale per consolidare conversazioni su un topic specifico ed evitare di spammare il canale principale con N messaggi disgiunti). Auth via OAuth Bot Token (formato xoxb-* generato durante l'install della Slack App nel workspace, con scopes minimum chat:write + chat:write.public + chat:write.customize per posting con username/icon custom). Token stored nel vault integration FlowForge accessibile da Settings → Integrations → Slack nell'editor tenant, mai hardcoded nel workflow per security. Channel resolution: il channel può essere passato come "#general" (humanReadable), "C0123456789" (ID channel univoco Slack — più robusto perché un canale rinominato preserva l'ID), oppure user ID U0123456789 per DM diretto al singolo membro. Il bot deve essere stato esplicitamente "added" al canale privato per posting (errore canonico not_in_channel se manca). Idempotency: Idempotency-Key generata automaticamente da runId:nodeId della run corrente del workflow → in caso di retry del nodo per network blip o crash recovery, Slack non duplica il messaggio (il pattern più importante per evitare il #1 incident customer support "il bot ha postato 5 volte lo stesso alert"). Rate limit Slack Tier 1 (default per Bot Token): 1 req/sec sustained con burst di 10/sec — il nodo rispetta header X-RateLimit-Remaining e usa Retry-After su 429 con jitter. Block Kit reference completo: api.slack.com/block-kit/building (l'admin Slack del workspace può sperimentare layouts via Block Kit Builder visual no-code). Use case: alert run workflow falliti nel canale #ops con block kit "🔴 Workflow {{name}} ha fallito" + context block "run_id: {{runId}} | error: {{error.message}}" + button "Open dashboard" che linka a ui_open_history; deploy report enterprise post-CI con embed completo (commit author, changes count, test results, deploy duration); daily digest delle 08:00 con riassunto KPI del giorno precedente generato da agent_business_summarizer e formattato in Block Kit ricco; AI agent reply automatic nel canale #support quando un customer scrive una domanda ricorrente (knowledge base match + AI completion restituita come messaggio thread).

⚙️ Parametri di configurazione

Campi mostrati nell’editor quando si configura il nodo. Generati direttamente dal NodeDefconfigFields.

CampoTipoRequiredDefaultDescrizione
integrationLabel
Etichetta integration (opzionale)
stringno
main-workspace
Default null = usa la default integration Slack del tenant. Per multi-workspace (es. cliente + interno) specifica la label salvata in Integrations.
channel
Canale
expressionsi
#general oppure C0123456789
Channel ID (C0123…) o nome (#general). Bot deve essere membro del canale.
text
Testo messaggio
expressionsi
Hello :wave: deploy completato!
Testo plain o markdown Slack (mrkdwn). Emoji shortcut supportati (:tada:, :rocket:). Quando `blocks` e\` settato, questo testo viene usato come fallback (notification + accessibility).
blocks
Block Kit JSON (opzionale)
codeno
[{ "type": "section", "text": { "type": "mrkdwn", "text": "*Hello*" } }]
Array di Block Kit blocks. Quando popolato, sovrascrive il render del campo "text" (che resta comunque fallback per notification + screen reader).
threadTs
Thread timestamp (opzionale)
expressionno
{{$node.previousPost.json.ts}}
Quando popolato, posta come REPLY a un messaggio esistente. Usa il `ts` del messaggio padre.
unfurlLinks
Unfurl link automatico
booleannotrueDefault true. Quando false, Slack non genera preview cards per i link nel messaggio.

⬆️ Output del nodo

Campi disponibili nei nodi successivi via $node.<alias>.json.<field>:

  • ok
  • ts
  • channel
  • message

💡 Esempio configurazione

Snippet JSON del nodo come compare nel workflow. I valori sono derivati daidefaultValue e dai parametri required.

{
  "id": "node-integration_slack_post-1",
  "defId": "integration_slack_post",
  "label": "Slack: Post message",
  "config": {
    "channel": "#general   oppure   C0123456789",
    "text": "Hello :wave: deploy completato!",
    "unfurlLinks": true
  }
}

🔗 Nodi correlati nella stessa categoria

Pronto a usare Slack: Post message?

Disponibile da subito in tutti i piani FlowForge. Provalo gratis senza carta di credito.

Inizia gratisSfoglia tutti i nodi