2025-05-13 16:01:54 -06:00

1238 lines
27 KiB
HTML

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Demo site for Changemaker">
<meta name="author" content="Bunker Ops">
<link rel="canonical" href="http://betteredmonton.org/apps/n8n/">
<link rel="prev" href="../portainer/">
<link rel="next" href="../../guides/authoring-content/">
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.14">
<title>n8n (Workflow Automation) - Changemaker Documentation</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.342714a4.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../../stylesheets/extra.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
<meta property="og:type" content="website" >
<meta property="og:title" content="n8n (Workflow Automation) - Changemaker Documentation" >
<meta property="og:description" content="Demo site for Changemaker" >
<meta property="og:image" content="http://betteredmonton.org/assets/images/social/apps/n8n.png" >
<meta property="og:image:type" content="image/png" >
<meta property="og:image:width" content="1200" >
<meta property="og:image:height" content="630" >
<meta property="og:url" content="http://betteredmonton.org/apps/n8n/" >
<meta name="twitter:card" content="summary_large_image" >
<meta name="twitter:title" content="n8n (Workflow Automation) - Changemaker Documentation" >
<meta name="twitter:description" content="Demo site for Changemaker" >
<meta name="twitter:image" content="http://betteredmonton.org/assets/images/social/apps/n8n.png" >
</head>
<body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="deep-purple" data-md-color-accent="amber">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#n8n-automate-your-workflows" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
<aside class="md-banner">
<div class="md-banner__inner md-grid md-typeset">
<a href="https://homepage.betteredmonton.org" class="login-button">Login</a>
Changemkaer Archive. <a href="https://changemaker.bnkops.com">Learn more</a>
</div>
</aside>
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="Changemaker Documentation" class="md-header__button md-logo" aria-label="Changemaker Documentation" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Changemaker Documentation
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
n8n (Workflow Automation)
</span>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../" class="md-tabs__link">
Applications
</a>
</li>
<li class="md-tabs__item">
<a href="../../guides/authoring-content/" class="md-tabs__link">
Guides
</a>
</li>
<li class="md-tabs__item">
<a href="../../ollama.md" class="md-tabs__link">
Ollama Setup (Legacy)
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="Changemaker Documentation" class="md-nav__button md-logo" aria-label="Changemaker Documentation" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
</a>
Changemaker Documentation
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../.." class="md-nav__link">
<span class="md-ellipsis">
Home
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-ellipsis">
Applications
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Applications
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" class="md-nav__link">
<span class="md-ellipsis">
Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../homepage/" class="md-nav__link">
<span class="md-ellipsis">
Homepage Dashboard
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../code-server/" class="md-nav__link">
<span class="md-ellipsis">
Code Server
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../flatnotes/" class="md-nav__link">
<span class="md-ellipsis">
Flatnotes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../listmonk/" class="md-nav__link">
<span class="md-ellipsis">
Listmonk
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nocodb/" class="md-nav__link">
<span class="md-ellipsis">
NocoDB
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../mkdocs-material/" class="md-nav__link">
<span class="md-ellipsis">
MkDocs Material
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../excalidraw/" class="md-nav__link">
<span class="md-ellipsis">
Excalidraw
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../gitea/" class="md-nav__link">
<span class="md-ellipsis">
Gitea
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../openwebui/" class="md-nav__link">
<span class="md-ellipsis">
OpenWebUI
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../monica-crm/" class="md-nav__link">
<span class="md-ellipsis">
Monica CRM
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../answer/" class="md-nav__link">
<span class="md-ellipsis">
Answer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../ferdium/" class="md-nav__link">
<span class="md-ellipsis">
Ferdium
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../rocketchat/" class="md-nav__link">
<span class="md-ellipsis">
Rocket.Chat
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../ollama/" class="md-nav__link">
<span class="md-ellipsis">
Ollama (Local AI)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../portainer/" class="md-nav__link">
<span class="md-ellipsis">
Portainer (Docker UI)
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
n8n (Workflow Automation)
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
n8n (Workflow Automation)
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#key-features" class="md-nav__link">
<span class="md-ellipsis">
Key Features
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#documentation" class="md-nav__link">
<span class="md-ellipsis">
Documentation
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#getting-started-with-n8n" class="md-nav__link">
<span class="md-ellipsis">
Getting Started with n8n
</span>
</a>
<nav class="md-nav" aria-label="Getting Started with n8n">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#accessing-n8n" class="md-nav__link">
<span class="md-ellipsis">
Accessing n8n
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#basic-usage" class="md-nav__link">
<span class="md-ellipsis">
Basic Usage
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#integration-with-other-changemaker-services" class="md-nav__link">
<span class="md-ellipsis">
Integration with Other Changemaker Services
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#advanced-features" class="md-nav__link">
<span class="md-ellipsis">
Advanced Features
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#further-information" class="md-nav__link">
<span class="md-ellipsis">
Further Information
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-ellipsis">
Guides
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Guides
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../guides/authoring-content/" class="md-nav__link">
<span class="md-ellipsis">
Authoring Content
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../guides/ollama-vscode/" class="md-nav__link">
<span class="md-ellipsis">
Using Ollama in VS Code
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../ollama.md" class="md-nav__link">
<span class="md-ellipsis">
Ollama Setup (Legacy)
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="n8n-automate-your-workflows">n8n: Automate Your Workflows<a class="headerlink" href="#n8n-automate-your-workflows" title="Permanent link">&para;</a></h1>
<p>n8n is a powerful workflow automation platform that allows you to connect different services and systems together without needing complex programming skills. Within Changemaker V5, it enables you to create automated processes that save time and ensure consistency across your operations.</p>
<h2 id="key-features">Key Features<a class="headerlink" href="#key-features" title="Permanent link">&para;</a></h2>
<ul>
<li><strong>Visual Workflow Builder</strong>: Create automation flows using an intuitive drag-and-drop interface.</li>
<li><strong>Pre-built Integrations</strong>: Connect to hundreds of services including email, social media, databases, and more.</li>
<li><strong>Custom Functionality</strong>: Create your own nodes for custom integrations when needed.</li>
<li><strong>Scheduling</strong>: Run workflows on schedules or trigger them based on events.</li>
<li><strong>Error Handling</strong>: Configure what happens when steps fail, with options to retry or alert.</li>
<li><strong>Self-hosted</strong>: Keep your automation data and credentials completely under your control.</li>
<li><strong>Credential Management</strong>: Securely store and reuse authentication details for various services.</li>
</ul>
<h2 id="documentation">Documentation<a class="headerlink" href="#documentation" title="Permanent link">&para;</a></h2>
<p>For more detailed information about n8n, visit the <a href="https://docs.n8n.io/">official documentation</a>.</p>
<h2 id="getting-started-with-n8n">Getting Started with n8n<a class="headerlink" href="#getting-started-with-n8n" title="Permanent link">&para;</a></h2>
<h3 id="accessing-n8n">Accessing n8n<a class="headerlink" href="#accessing-n8n" title="Permanent link">&para;</a></h3>
<ol>
<li><strong>URL</strong>: You can access n8n locally via <code>http://localhost:5678/</code> (or your configured external URL if set up).</li>
<li><strong>Authentication</strong>: The first time you access n8n, you'll need to set up an account with admin credentials.</li>
</ol>
<h3 id="basic-usage">Basic Usage<a class="headerlink" href="#basic-usage" title="Permanent link">&para;</a></h3>
<ol>
<li><strong>Creating Your First Workflow</strong>:</li>
<li>Click the "+" button in the top right to create a new workflow.</li>
<li>Add a trigger node (e.g., "Schedule" for time-based triggers or "Webhook" for event-based triggers).</li>
<li>Connect additional nodes for the actions you want to perform.</li>
<li>
<p>Save your workflow and activate it using the toggle at the top of the editor.</p>
</li>
<li>
<p><strong>Example Workflow: Automatic Welcome Emails</strong></p>
</li>
<li>Start with a "Webhook" node that triggers when a new contact is added to your system.</li>
<li>Connect to an "Email" node configured to send your welcome message.</li>
<li>
<p>Optionally, add a "Slack" or "Rocket.Chat" node to notify your team about the new contact.</p>
</li>
<li>
<p><strong>Common Use Cases</strong>:</p>
</li>
<li><strong>Content Publishing</strong>: Automatically post blog updates to social media channels.</li>
<li><strong>Data Synchronization</strong>: Keep contacts in sync between different systems.</li>
<li><strong>Event Management</strong>: Send reminders before events and follow-ups afterward.</li>
<li><strong>Monitoring</strong>: Get notifications when important metrics change or thresholds are reached.</li>
<li><strong>Form Processing</strong>: Automatically handle form submissions with confirmation emails and data storage.</li>
</ol>
<h3 id="integration-with-other-changemaker-services">Integration with Other Changemaker Services<a class="headerlink" href="#integration-with-other-changemaker-services" title="Permanent link">&para;</a></h3>
<p>n8n works particularly well with other services in your Changemaker environment:</p>
<ul>
<li><strong>NocoDB</strong>: Connect to your databases to automate record creation, updates, or data processing.</li>
<li><strong>Listmonk</strong>: Trigger email campaigns based on events or schedules.</li>
<li><strong>Gitea</strong>: Automate responses to code changes or issue creation.</li>
<li><strong>Monica CRM</strong>: Update contact records automatically when interactions occur.</li>
<li><strong>Rocket.Chat</strong>: Send automated notifications to team channels.</li>
</ul>
<h2 id="advanced-features">Advanced Features<a class="headerlink" href="#advanced-features" title="Permanent link">&para;</a></h2>
<ul>
<li><strong>Error Handling</strong>: Configure error workflows and retries for increased reliability.</li>
<li><strong>Splitting and Merging</strong>: Process multiple items in parallel and then combine results.</li>
<li><strong>Expressions</strong>: Use JavaScript expressions for dynamic data manipulation.</li>
<li><strong>Webhooks</strong>: Create endpoints that can receive data from external services.</li>
<li><strong>Function Nodes</strong>: Write custom JavaScript code for complex data transformations.</li>
<li><strong>Cron Jobs</strong>: Schedule workflows to run at specific intervals.</li>
</ul>
<h2 id="further-information">Further Information<a class="headerlink" href="#further-information" title="Permanent link">&para;</a></h2>
<p>For more detailed information on creating complex workflows, available integrations, and best practices, please refer to the <a href="https://docs.n8n.io/">official n8n Documentation</a>.</p>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
Back to top
</button>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright &copy; 2024 The Bunker Operations - Built with Change Maker
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "navigation.tracking", "navigation.indexes", "navigation.collapse", "toc.integrate", "content.code.copy", "navigation.top", "navigation.tabs"], "search": "../../assets/javascripts/workers/search.d50fe291.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.13a4f30d.min.js"></script>
</body>
</html>