AutomationFlowsAI & RAG › Sprint Cycle Announcements with Form Input, Gpt-4 and Slack

Sprint Cycle Announcements with Form Input, Gpt-4 and Slack

ByNikhil Kuriakose @nikhilkuriakose on n8n.io

How it works Triggers on submitting an n8n form Uses the form details to prepare a message Sends the message to Slack

Event trigger★★★☆☆ complexityAI-powered9 nodesOpenAI ChatAgentSlackForm Trigger
AI & RAG Trigger: Event Nodes: 9 Complexity: ★★★☆☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #4510 — we link there as the canonical source.

This workflow follows the Agent → Form Trigger recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "ZjUre23aXOZMuoc4",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Cycle Summary to Slack Template",
  "tags": [],
  "nodes": [
    {
      "id": "c89943b0-be6d-418b-8244-c9d8b4e526ee",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        68,
        180
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "5a1be1cd-5f10-4638-9014-290bbb76f42a",
      "name": "Generate Slack Message",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -20,
        -40
      ],
      "parameters": {
        "text": "=You are an agent specialised in creating warm slack messages. \nYour job is to create a post in a team slack channel announcing the start of a cycle. \nUse the following information\nTeam name: {{ $json['Team Name'] }}\nCycle start date: {{ $('On form submission').item.json['When does your cycle start?'] }}\nCycle goal: {{ $('On form submission').item.json['What\\'s the cycle goal?'] }}\nThings to note: {{ $('On form submission').item.json['Anything else to add?'] }} Use  and format the message\n\nThe cycle goal can contain links. Format them properly as slack links with a proper label for the hyperlink\n\nPrepare the message as follows:\nShould have the following elements\n- Greetings to the team \n- Announce the start of the cycle with the start of the cycle date\n- List fown the cycle goals \n- End with a warm motivating messaage. (Don't overdo it)\n\nIf the cycle started on an earlier date, use a past tense. \nInstead of using specific date, use a phrase. ex: Yesterday, Last Wednesday, Today. Use the current date: {{ $today }} as reference for the current day\nUse emojis generously and keep the message brief\nThe URL link should be rendered properly. Use this format <http://someurl.com | text here>\nThe section titles should be in bold. Surround the title with * for this. ex:*Cycle Goal*\nThe message should be in a format that can be sent to Slack without any post processing\nUse this tone for the message : {{ $json['Message Tone'] }}",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 1.9
    },
    {
      "id": "3bb753a4-5ef7-4ce7-8576-ee24ca1b1018",
      "name": "Send message to Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        360,
        -40
      ],
      "parameters": {
        "text": "={{ $json.output }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C08V1DRQPLZ",
          "cachedResultName": "nikhil-lab"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "a58526a8-6e0b-4a08-bace-5c37a1447b95",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -720,
        -360
      ],
      "parameters": {
        "color": 4,
        "width": 700,
        "height": 240,
        "content": "## Send a slack message when a new Sprint Cycle starts \ud83c\udfaf\n\nThe Message will have the following elements \n- Cycle Start Date\n- Cycle Goal\n- Additional Notes\n\n*Start with submitting the form URL from the first node* \ud83c\udfce\ufe0f"
      },
      "typeVersion": 1
    },
    {
      "id": "1c0cf167-903b-46c6-9086-817f01a4fd50",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -280,
        120
      ],
      "parameters": {
        "color": 7,
        "width": 230,
        "height": 80,
        "content": "**1.\u261d\ufe0fUpdate team name**\n**1.1 \u261d\ufe0fSet message tone (warm recommended)**"
      },
      "typeVersion": 1
    },
    {
      "id": "45554664-52c3-48e6-a411-6b402f5b238b",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -460,
        -40
      ],
      "parameters": {
        "options": {},
        "formTitle": "Cycle Start",
        "formFields": {
          "values": [
            {
              "fieldType": "date",
              "fieldLabel": "When does your cycle start?",
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "What's the cycle goal?",
              "requiredField": true
            },
            {
              "fieldLabel": "Anything else to add?"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "195a496c-9157-4880-9802-269e7fe54a1e",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        320
      ],
      "parameters": {
        "color": 7,
        "width": 230,
        "height": 100,
        "content": "2.\u261d\ufe0f**Update Open AI credentials**\n\n*or use a different Model*"
      },
      "typeVersion": 1
    },
    {
      "id": "7a3f7dcd-0853-445c-8604-a7f582913960",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        320,
        120
      ],
      "parameters": {
        "color": 7,
        "width": 210,
        "height": 120,
        "content": "**2.1.\u261d\ufe0fUpdate Slack Credentials**\n\n**2.2.\u261d\ufe0fUpdate Slack Channel Name**\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8c36f947-0e2d-4760-b8a2-8d15a56d04c4",
      "name": "Set up",
      "type": "n8n-nodes-base.set",
      "position": [
        -240,
        -40
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a8e9e640-0b49-4e54-bcf5-8b536d36d1d3",
              "name": "Team Name",
              "type": "string",
              "value": "Team Name here"
            },
            {
              "id": "cd543f12-4ad0-497d-8f77-5aa4ad3b9b17",
              "name": "Message Tone",
              "type": "string",
              "value": "Scary"
            }
          ]
        }
      },
      "typeVersion": 3.4
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "aae25b47-5e3b-49e6-b826-d1d546348d59",
  "connections": {
    "Set up": {
      "main": [
        [
          {
            "node": "Generate Slack Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Slack Message",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Set up",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Slack Message": {
      "main": [
        [
          {
            "node": "Send message to Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

How it works Triggers on submitting an n8n form Uses the form details to prepare a message Sends the message to Slack

Source: https://n8n.io/workflows/4510/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This workflow automates athlete performance monitoring through two parallel pipelines: real-time session analysis triggered by training form submissions, and scheduled weekly performance summaries. De

Form Trigger, Google Sheets, Agent +4
AI & RAG

Noco Kanban Board with AI Prioritization. Uses formTrigger, agent, lmChatOpenAi, outputParserStructured. Event-driven trigger; 27 nodes.

Form Trigger, Agent, OpenAI Chat +4
AI & RAG

This is automation for support project manager, which helps not only to keep developres informed but also automatically keep clients in the loop - especially useful if you are managing SLA-like agreem

Form Trigger, Agent, OpenAI Chat +4
AI & RAG

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

Google Sheets, Form Trigger, Output Parser Structured +7
AI & RAG

A smart and reliable resume screening pipeline for modern HR teams. This workflow combines Google Drive (JD & CV storage), OpenAI (GPT-4-based evaluation), Google Sheets (position mapping + result log

Form Trigger, Output Parser Structured, OpenAI Chat +6