Coffee Bot (Mattermost)

Automated workflow: Coffee Bot (Mattermost). This workflow processes data and performs automated tasks.

Integrations Used (3)

Workflow Structure (7 nodes)
100%
Mattermost
Announce groups
Cron
Weekly trigger on monday
Mattermost
Greetings
Mattermost
Employees in coffee chat channel
Stop And Error
Error Handler
Function
Divide into groups
Google Calendar
Send calendar invites
Node Types:
code
default
trigger
action
Requires credentials

Prerequisites

Required Credentials (2)

Google Calendar

Used by: Send calendar invites

Docs

Mattermost

Used by: Greetings, Announce groups +1 more

Docs

Complexity

Complex

Advanced features used. Requires n8n experience.

Setup time: ~35 min
Score: 48/100
Custom Code
4 Integrations

When to Use This Workflow

Streamline Team Communication

Automatically route notifications and updates to the right channels and people.

Reduce information overload while keeping everyone informed.

Scheduled Operations

Run automated tasks at specific times - daily reports, weekly cleanups, monthly backups.

Set it and forget it - reliable automation that runs on your schedule.

Error Reduction

Eliminate human error from routine processes with consistent automation.

Improve accuracy and reliability across your workflows.

workflow.json
{
  "id": "7",
  "name": "Coffee Bot (Mattermost)",
  "nodes": [
    {
      "name": "Divide into groups",
      "type": "n8n-nodes-base.function",
      "position": [
        1060,
        300
      ],
      "parameters": {
        "functionCode": "const ideal_group_size = 3;\nlet groups = [];\nlet data_as_array = [];\nlet newItems = [];\n\n// Take all the users and add them to an array\nfor (let j = 0; j < items.length; j++) {\n  data_as_array.push({username: items[j].json.username, email: items[j].json.email});\n}\n\n// Fisher-Yates (aka Knuth) Shuffle\nfunction shuffle(array) {\n  var currentIndex = array.length, temporaryValue, randomIndex;\n\n  // While there remain elements to shuffle...\n  while (0 !== currentIndex) {\n\n    // Pick a remaining element...\n    randomIndex = Math.floor(Math.random() * currentIndex);\n    currentIndex -= 1;\n\n    // And swap it with the current element.\n    temporaryValue = array[currentIndex];\n    array[currentIndex] = array[randomIndex];\n    array[randomIndex] = temporaryValue;\n  }\n\n  return array;\n}\n\n// Randomize the sequence of names in the array\ndata_as_array = shuffle(data_as_array);\n\n// Create groups of ideal group size (3)\nfor (let i = 0; i < data_as_array.length; i += ideal_group_size) {\n  groups.push(data_as_array.slice(i, i + ideal_group_size));\n}\n\n// Make sure that no group has just one person. If it does, take\n// one from previous group and add it to that group \nfor (let k = 0; k < groups.length; k++) {\n  if (groups[k].length === 1) {\n    groups[k].push(groups[k-1].shift());\n  }\n}\n\nfor (let l = 0; l < groups.length; l++) {\n    newItems.push({json: {groupsUsername: groups[l].map(a=> a.username), groupsEmail: groups[l].map(b=> b.email)}})\n}\n\nreturn newItems;"
      },
      "typeVersion": 1,
      "id": "583411a8-d287-4592-81af-5e174eea887c",
      "notes": "This function node performs automated tasks as part of the workflow."
    },
    {
      "name": "Greetings",
...

Workflow Details

Nodes
7
Trigger
Scheduled
Source
community
Added
Sep 29, 2025

Need Help?

Check out the official n8n documentation for detailed guides.

Related Workflows

Typeformtrigger Workflow

Automated workflow: Typeformtrigger Workflow. This workflow processes data and performs automated tasks.

Typeform
Google-sheets
Mattermost
Google-calendar
11 nodesEvent

Send financial metrics monthly to Mattermost

Automated workflow: Send financial metrics monthly to Mattermost. This workflow processes data and performs automated ta...

Profitwell
Cron
Mattermost
4 nodesScheduled

Cron Workflow

Automated workflow: Cron Workflow. This workflow processes data and performs automated tasks.

Cron
Google-sheets
Mattermost
4 nodesScheduled

cheems

Automated workflow: cheems. This workflow processes data and performs automated tasks.

Cron
Discord
7 nodesScheduled

Production Workflow

Production-ready workflow: Production Workflow. This workflow has been optimized for production use with comprehensive e...

Cron
Airtable
Telegram
Http-request
16 nodesScheduled

Website check

Production-ready workflow: Website check. This workflow has been optimized for production use with comprehensive error h...

Http-request
Discord
Cron
6 nodesScheduled