FlowForge Docs v1.5.0 Get support

FlowForge documentation

FlowForge is a self-hosted workflow automation platform, in the same family as n8n, Make and Zapier, that runs on ordinary PHP hosting. You connect apps on a visual canvas, and FlowForge runs the workflows in the background on your own server with a single cron job.

1,190apps with real logos
5,783ready-made actions
50workflow templates
1cron job runs everything
FlowForge in 47 seconds. Turn the sound on.

This guide covers installing FlowForge on Hostinger hPanel, cPanel and a VPS, setting up the cron job, and every part of the app. FlowForge is free and open source under the AGPL-3.0 license. If you'd rather not install or run it yourself, we can install or host it for you.

Features

  • Visual workflow builder. Drag apps onto a canvas, pick a trigger, add steps with "What happens next?", and branch with If/Else and filters.
  • 1,190 apps. Gmail, Slack, Google Sheets, HubSpot, Shopify, WooCommerce, OpenAI, LinkedIn, WhatsApp, Telegram, Notion, Airtable and many more, plus a generic HTTP request step for anything else.
  • AI Builder. Describe a workflow in plain words and it builds it for you, with the right apps, settings and data links. Works with DeepSeek, Qwen, OpenAI, Anthropic Claude and Google Gemini, using your own API key.
  • Every kind of trigger. Webhooks, schedules ("every weekday at 9:00"), app triggers that check for new items, manual runs, and an error trigger that starts when another workflow fails.
  • Step debugger. Every run keeps each step's input, output and HTTP request, so you can see exactly what happened and retry.
  • Built for shared hosting. No Docker, Node, Redis or Supervisor. Upload a zip, run the setup wizard, add one cron job.
  • Team access. Invite people as admins or members, and choose whether members can view, edit or delete workflows and use the AI Builder.
  • MCP server. Claude Code, Cursor, VS Code and other AI agents can search apps and build, test and run workflows on your FlowForge.
  • One-click updates. Upload the update zip in Settings and FlowForge updates itself, keeping your data.
  • Works on phones like a native app, with light and dark themes.
  • Open source. Free to use, self-host and modify under the AGPL-3.0 license. The code is on GitHub.
  • Secure by default. App credentials and API keys are encrypted, never sent to the browser and masked in run logs.
The workflow builder canvas
The workflow builder.
The AI Builder chat building a workflow
The AI Builder.

Server requirements

Almost every shared hosting plan from the last few years meets these. The setup wizard checks them for you before anything is installed.

RequirementDetails
PHP8.2 or newer (8.3 recommended)
PHP extensionspdo_mysql, curl, mbstring, openssl, fileinfo, gd, zip, tokenizer, ctype, xml
DatabaseMySQL 5.7+ or MariaDB 10.3+
Web serverApache or LiteSpeed with mod_rewrite, or Nginx
CronOne cron job that can run every minute (all hPanel and cPanel plans allow this)
Outgoing HTTPSTo reach the apps you connect
Disk spaceAbout 150 MB, plus your run history
HTTPSStrongly recommended. Many apps (Google, LinkedIn, Facebook) only allow sign-in redirects to https:// addresses.

You don't need SSH, Composer or Node.js on the server: the download already includes everything.

Download

Download the latest release from GitHub Releases. Each release has these files:

FileWhat it's for
flowforge-install-1.5.0.zipThe app, ready to run: no Composer or Node.js needed on the server. Upload this for a new installation.
flowforge-update-1.5.0.zipFor updating an existing installation in Settings → Updates. Not needed for a new install.
extract-flowforge.phpA helper that unpacks the install zip on your server if your File Manager times out while extracting it.

Developers can also clone the repository and build it themselves; the steps are in the README.

Installation and hosting services

Don't want to set it up yourself?

FlowForge is free, and you're welcome to install it yourself with this guide. If you'd rather leave it to us, we offer paid services:

  • Installation on your Hostinger hPanel, cPanel or VPS hosting, including the database, SSL and the cron job.
  • Managed hosting: we run FlowForge for you on our servers, with backups and updates.
  • Setup help: connecting your apps and building your first workflows.
  • Custom integrations for apps or APIs that aren't in the catalog yet.

Email support@sarimtools.com with what you need, your domain and your hosting panel, and we'll send you a quote. Don't send any passwords until we reply.

Before you start

Have these three things ready. It takes about 10 minutes from here.

  1. A domain or subdomain for FlowForge, such as automation.your-domain.com.
  2. An SSL certificate on that domain, so it opens with https://. Hostinger and cPanel give you one free.
  3. The files flowforge-install-1.5.0.zip and extract-flowforge.php from the latest release.

Then follow the guide for your hosting:

Install on Hostinger hPanel

For Hostinger's web and cloud hosting plans. In hPanel, everything below starts from WebsitesDashboard next to your website.

1. Set PHP 8.2 or newer

  1. Open AdvancedPHP Configuration.
  2. On the PHP version tab, choose 8.3 (or 8.2) and click Update.
  3. On the PHP extensions tab, make sure pdo_mysql, curl, mbstring, fileinfo, gd and zip are ticked. They usually are.

Want FlowForge on a subdomain? Create it first under DomainsSubdomains, then switch to it in the website list.

2. Create the database

  1. Open DatabasesManagement.
  2. Under Create a new MySQL database and database user, enter a database name (e.g. flowforge), a username and a strong password, then click Create.
  3. Write down the full names hPanel shows, including the prefix, for example u123456789_flowforge. The database host is localhost.

3. Upload and extract

  1. Open FilesFile Manager and go into public_html of the domain (or subdomain) you chose. It should be empty: delete Hostinger's default default.php if it's there.
  2. Click Upload and upload flowforge-install-1.5.0.zip.
  3. Right-click the zip, choose Extract, and extract into the current folder (.).
  4. Check that you now see the folders app, public and vendor and the file artisan. If public or vendor is missing, the File Manager timed out: follow the next step.
  5. Only if extraction stopped part-way: upload extract-flowforge.php into the same folder as the zip and open https://your-domain.com/extract-flowforge.php. It unpacks the zip in small batches, deletes the zip and itself, and opens the installer.

You extract the whole app into public_html. That's safe: the included .htaccess sends every request into FlowForge's public folder, so .env, storage and the code can't be opened from a browser.

4. Turn on SSL

Open SecuritySSL and install the free certificate for your domain if it isn't active yet.

5. Run the setup wizard

Open https://your-domain.com/install and follow the setup wizard. On the last step, the wizard shows the exact cron command for your server; the Hostinger steps are in The cron job.

Install on cPanel

For any host with cPanel (Namecheap, Bluehost, HostGator, A2, InMotion and most resellers). Menu names can vary slightly between hosts; use the search box at the top of cPanel if you can't find one.

1. Set PHP 8.2 or newer

  1. Open SoftwareMultiPHP Manager, tick your domain, choose PHP 8.3 (or 8.2) and click Apply.
  2. If your host uses CloudLinux, you'll see SoftwareSelect PHP Version instead. Choose 8.3, then on the Extensions list tick pdo_mysql, curl, mbstring, fileinfo, gd and zip.

2. Create the database

  1. Open DatabasesMySQL Database Wizard.
  2. Enter a database name (e.g. flowforge) and click Next Step.
  3. Create a user with a strong password and click Create User.
  4. Tick ALL PRIVILEGES and click Next Step.
  5. Note the full names with your cPanel prefix, such as myuser_flowforge. The host is localhost.

3. Upload and extract

You have two options. Pick one.

Option A (recommended): a subdomain pointing at FlowForge's public folder.

  1. In FilesFile Manager, create a folder flowforge in your home directory (next to public_html, not inside it).
  2. Upload flowforge-install-1.5.0.zip into it, right-click it and choose Extract.
  3. Open DomainsDomainsCreate A New Domain. Enter your subdomain (e.g. automation.your-domain.com), untick Share document root, set the document root to flowforge/public, and click Submit. On older cPanel versions this is DomainsSubdomains.

Option B: your main domain. The main domain's folder is always public_html, so upload the zip into public_html and extract it there. The included .htaccess takes care of the rest, as on Hostinger.

Extraction stopped part-way? If you don't see public, vendor and artisan after extracting:

  • With option B, upload extract-flowforge.php next to the zip in public_html and open https://your-domain.com/extract-flowforge.php. It finishes the job in small batches.
  • With option A, the helper can't be opened from a browser because it would sit outside the website folder. Delete the partly extracted files and extract again (a second try usually works), or use option B.

4. Turn on SSL

Open SecuritySSL/TLS Status and click Run AutoSSL so your (sub)domain gets a free certificate.

5. Run the setup wizard

Open https://your-domain.com/install and follow the setup wizard. The cPanel cron steps are in The cron job.

Install on a VPS or cloud server

These steps are for a fresh Ubuntu 24.04 server (DigitalOcean, Hetzner, Vultr, Linode, AWS Lightsail, Hostinger VPS) with Nginx. You need SSH access as a user with sudo, and your domain's DNS A record pointing at the server's IP.

1. Install PHP, Nginx and MySQL

sudo apt update
sudo apt install -y nginx mysql-server unzip \
  php8.3-fpm php8.3-mysql php8.3-curl php8.3-mbstring php8.3-xml \
  php8.3-zip php8.3-gd php8.3-intl php8.3-bcmath

2. Create the database

Replace the password with your own strong one and keep it for the wizard.

sudo mysql -e "CREATE DATABASE flowforge CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'flowforge'@'localhost' IDENTIFIED BY 'choose-a-strong-password';
GRANT ALL PRIVILEGES ON flowforge.* TO 'flowforge'@'localhost';
FLUSH PRIVILEGES;"

3. Upload the files

From your computer, copy the zip to the server, then unpack it on the server:

scp flowforge-install-1.5.0.zip you@your-server-ip:/tmp/
sudo mkdir -p /var/www/flowforge
sudo unzip -q /tmp/flowforge-install-1.5.0.zip -d /var/www/flowforge
sudo chown -R www-data:www-data /var/www/flowforge

4. Configure Nginx

Create /etc/nginx/sites-available/flowforge with your domain:

server {
    listen 80;
    server_name automation.your-domain.com;
    root /var/www/flowforge/public;
    index index.php;
    client_max_body_size 20M;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }

    location ~ /\.(?!well-known) {
        deny all;
    }
}

Enable it and get a free SSL certificate:

sudo ln -s /etc/nginx/sites-available/flowforge /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d automation.your-domain.com

Using Apache instead? Point the site's DocumentRoot at /var/www/flowforge/public, allow overrides for it (AllowOverride All), and enable rewrites with sudo a2enmod rewrite. FlowForge's own .htaccess handles the rest.

5. Add the cron job

Run the cron job as the web server's user, so files it creates stay writable by the app:

sudo crontab -u www-data -e

Add this line, then save:

* * * * * /usr/bin/php /var/www/flowforge/artisan schedule:run >> /dev/null 2>&1

6. Run the setup wizard

Open https://automation.your-domain.com/install and follow the setup wizard. The cron step turns green within a minute because you've already added the cron job.

The setup wizard

Open https://your-domain.com/install. The wizard has five steps and saves your progress, so you can close the tab and come back.

Step 1: Check the server

FlowForge checks the PHP version, extensions and folder permissions. Everything should have a green tick. If something is red, the message says what to change; fix it in your hosting panel and reload the page. Then click Continue.

Setup wizard step 1: server checks

Step 2: Connect MySQL

Enter the database details you created: host localhost, port 3306, and the full database name, username and password (with the prefix). Click Test connection, then Save and create tables. FlowForge writes its .env file and creates its tables.

Setup wizard step 2: database connection

Step 3: Create your account

Enter your name, email and a password (at least 10 characters) for the owner account, and choose your timezone, then click Create account. Schedules such as "every day at 9:00" run in this timezone.

Setup wizard step 3: administrator account

Step 4: Email alerts

Add an SMTP mailbox so FlowForge can email you when a workflow fails or the cron job stops, and send password-reset codes. Click Send test email to check it, then Save and continue. You can also click Skip for now and set it up later in SettingsEmail & alerts.

HostSMTP serverPort and securityUsername
Hostingersmtp.hostinger.com465, SSLThe full email address
cPanelmail.your-domain.com465, SSLThe full email address
Gmail / Google Workspacesmtp.gmail.com587, TLSYour address, with an app password

Create the mailbox first in hPanel (EmailsEmail Accounts) or cPanel (EmailEmail Accounts). cPanel's Connect Devices link next to a mailbox shows its exact settings.

Setup wizard step 4: SMTP settings

Step 5: Turn on the scheduler

This step is required: FlowForge runs workflows through one cron job, and setup only finishes once that cron job has actually run.

  1. Click Set it up for me first. On many hosts FlowForge can add the cron job itself; your other cron jobs are kept.
  2. If that isn't allowed on your host, pick your panel's tab (Hostinger hPanel, cPanel, DirectAdmin or SSH/VPS) and follow the steps. The command shown already has your server's PHP and folder paths filled in; click Copy to copy it. The panel steps are also in The cron job.
  3. Wait up to a minute. The wizard checks every 5 seconds and shows Cron is running when it works. Then click Finish and sign in.
Setup wizard step 5: the cron job is verified
The Hostinger tab with the cron command, and the green "Cron is running" check.

When setup finishes, /install is locked for good. Sign in with the account you created in step 3.

The cron job

A cron job is a command your server runs on a timer. FlowForge needs one that runs every minute. Each time it runs, FlowForge starts due schedules, checks app triggers for new items, and works through queued runs, including webhook runs.

You only ever add one cron job. It runs every workflow you'll ever create. You never add a cron job per workflow.

The command looks like this. Use the one the wizard shows you: it has your real paths.

/usr/bin/php /home/USER/path-to-flowforge/artisan schedule:run

Hostinger hPanel

  1. Go to WebsitesDashboardAdvancedCron Jobs.
  2. Under Create a new cron job, choose the type Custom.
  3. Paste the command into Command to run.
  4. Leave Minute, Hour, Day, Month and Weekday all on * so it runs every minute, then click Save.

Hostinger runs cron with its default PHP. If the wizard stays on "Waiting", replace /usr/bin/php with your site's PHP version, e.g. /opt/alt/php83/usr/bin/php for PHP 8.3.

cPanel

  1. Open AdvancedCron Jobs.
  2. Under Add New Cron Job, set Common Settings to Once Per Minute (* * * * *).
  3. Paste the command into Command, with >/dev/null 2>&1 on the end so cPanel doesn't email you every minute.
  4. Click Add New Cron Job.

Cron must use PHP 8.2 or newer. If the wizard stays on "Waiting", use /opt/cpanel/ea-php83/root/usr/bin/php, or /opt/alt/php83/usr/bin/php on CloudLinux servers, as the first part of the command.

DirectAdmin

  1. Open Advanced FeaturesCron JobsCreate Cron Job.
  2. Set Minute, Hour, Day of Month, Month and Day of Week to *.
  3. Paste the command, ending with >/dev/null 2>&1, and click Create.

SSH or VPS

Run crontab -e as the website's user (on a VPS: sudo crontab -u www-data -e) and add:

* * * * * /usr/bin/php /var/www/flowforge/artisan schedule:run >> /dev/null 2>&1

Checking it's running

The bottom of the sidebar shows Scheduler running with the time of the last tick while cron is healthy. If cron stops for 10 minutes or more, the sidebar turns red and FlowForge emails the admins when it runs again (if email is set up).

Open source license

FlowForge is free software, released under the GNU Affero General Public License v3.0 (AGPL-3.0). The full text is in the LICENSE file.

  • You can use FlowForge for free, for yourself, your company or your clients, on as many servers as you like, and change its code.
  • If you change the code and let other people use your changed version over a network (for example, you host it for customers), you must offer those users the source code of your version, under the same license.
  • No warranty. FlowForge is provided as is. For guaranteed help, see our services.

This is a short summary, not legal advice; the license text is what counts.

Your first workflow

A workflow is a trigger (what starts it) followed by steps (what it does). Here's a workflow that sends a Slack message for every new form submission.

  1. Create it. Click Create workflow in the sidebar and give it a name.
  2. Choose the trigger. Click the trigger node and search for an app or a built-in trigger such as Webhook or Schedule. Popular triggers are listed first.
  3. Add a step. Click the + after the trigger. "What happens next?" opens: search for Slack and pick Send message.
  4. Connect the app. In the step editor, choose or add a Slack connection. See Credentials.
  5. Fill in the settings. Type the message, and drag values from the Input panel on the left into it, like the person's name. See Passing data between steps.
  6. Test and switch on. Click Test workflow, check the result, then switch the workflow Active.
The workflows list
All your workflows, with their trigger, status and last run.
The step editor with Input, Parameters and Output
The step editor: data coming in on the left, the step's settings in the middle, its result on the right.

Other things you can do on the canvas: drag nodes to rearrange them, add If/Else to branch, add a Filter to stop a run when a condition isn't met, duplicate a workflow from its menu, and use Execute step in the step editor to run just one step (and the steps before it).

Triggers

TriggerWhen it runs
WebhookWhen another service sends a request to the workflow's unique URL (https://your-domain.com/api/webhook/…). Copy the URL from the trigger. While the workflow is off, requests are saved as test data so you can build with real fields.
ScheduleOn a timetable you pick in plain words: every 15 minutes, every day at 9:00, every Monday, the 1st of each month. It uses the timezone in Settings → General.
App triggers"New row in Google Sheets", "New order in Shopify" and so on. FlowForge checks the app every few minutes; the first check only records what's already there, then each new item starts one run.
ManualOnly when you click Test workflow, or when the AI Builder or an MCP agent runs it.
Error triggerWhen another workflow fails. Use it to send failure alerts to Slack, Telegram or anywhere else.

Webhook runs start on the next cron tick, so within about a minute.

Passing data between steps

Any setting can use values from earlier steps. In the step editor, drag a field from the Input panel on the left into a setting, or click into the setting and then click the field. FlowForge inserts a reference like this:

{{ steps.trigger.data.email }}        a field from the webhook
{{ steps.step_2.text }}                the text an AI step wrote
{{ steps.step_2.items[0].id }}         the first item's id
{{ steps.step_2.items.*.id }}          every item's id
{{ workflow.name }}  {{ execution.id }}  {{ now }}

Test the workflow once so FlowForge knows what each step returns; after that, every field is listed by name. When a field contains only one reference, the value keeps its type (a list stays a list).

Testing and switching on

  • Test workflow runs it straight away and opens the step debugger. Tests perform real actions: a test that sends an email really sends it.
  • Execute step in the step editor runs one step, plus the steps before it, so you can see its output.
  • Switch a workflow Active when it works. Only active workflows run on their webhook, schedule or app trigger.
  • If a step fails, the run stops there and the error is shown on the step, with any tip for that app's error.

Credentials and app connections

Credentials are your saved logins for apps: API keys, tokens and sign-in connections. They're encrypted on your server, never shown again after saving, and masked out of run logs.

  • Add one from a step's editor (Connect) or from Credentials in the sidebar.
  • For API key apps, the form links to where that app shows your key.
  • For sign-in (OAuth) apps such as Google, Microsoft, LinkedIn or Facebook, you first create an app in that service's developer console and paste its Client ID and Client Secret into FlowForge. Use this as the redirect (callback) URL there:
https://your-domain.com/oauth/callback

FlowForge refreshes sign-in tokens automatically. For LinkedIn, the account you connect is used to post, so you don't need to look up any IDs.

The credentials page

AI Builder

Open AI Builder in the sidebar (or Ask AI in the editor) and describe what you want in plain words, in English or your own language. For example: "Every morning at 9, get today's top story from an RSS feed, have AI write a LinkedIn post about it, and post it."

The AI Builder searches the app catalog, reads each action's settings, builds and saves the workflow, links the data between steps, attaches matching credentials, and tells you what's left to fill in. It can also explain, edit, test and switch on existing workflows. It only tests when you ask, and asks you to confirm before deleting anything.

Setting up a provider

  1. Open SettingsAI builder.
  2. Choose a provider and paste your API key. It's stored encrypted and never sent to the browser.
  3. Pick a model (the default is a good start) and click Save.
ProviderWhere to get a keyDefault model
DeepSeekplatform.deepseek.comdeepseek-chat
Qwen (Alibaba Cloud)Alibaba Cloud Model Studioqwen-plus
OpenAIplatform.openai.comgpt-5-mini
Anthropic Claudeconsole.anthropic.comclaude-opus-5-5
Google Geminiaistudio.google.comgemini-2.5-flash

Each answer shows how many tokens it used. The AI Builder never sends the whole app catalog to the model; it searches it, which keeps costs low. Each person's chats are private.

Settings, AI builder tab

Voice agents

Voice agents are AI agents that answer and make phone calls: a receptionist that books appointments, a caller that qualifies new leads, a reminder line, a feedback survey. Open Voice agents in the sidebar.

The live call (telephony, listening and speaking) runs on a voice platform; FlowForge holds everything else: the agent's instructions, your call history with recordings and transcripts, the bookings, and the workflows that use them. You can also talk to any agent in your browser for free.

Create an agent

  1. Click New agent and choose how to start: Describe it (the AI writes the whole agent from a few sentences), a Template, or Blank. You can also ask the AI Builder: "Make me a calling agent for my clinic that books appointments."
  2. In the editor, set the business name, the language, the first message and the instructions. Rewrite with AI rewrites them from a new description.
  3. Turn on Bookings if it should book appointments, and add your opening hours.
  4. Under Details to capture, list what to pull out of each call (for example budget or reason). They're saved with the call and passed to workflows.
  5. Click Save.

Templates: clinic receptionist, salon and spa booking, restaurant reservations, lead qualification, appointment reminder, customer support line, real estate inquiries and a feedback survey.

Texts can use {{business_name}}, filled from the agent's business name, and per-call details such as {{customer_name}} or {{appointment_time}}, which you fill in when you start a call or pass from a workflow.

Talk to it for free in your browser

On the agent's page, press the microphone under Talk to it. Your browser listens and speaks; the answers come from the AI model in SettingsAI builder (Google Gemini and DeepSeek are free or very cheap). Bookings, the transcript and a summary are saved like a real call. Chrome and Edge can listen; in other browsers you type your side.

Agents set to Browser (free) only talk this way. For real phone calls, connect a voice platform.

Real phone calls: Vapi or ElevenLabs

PlatformGood to knowSetup
VapiNew accounts get free credit and can create free US numbers for testing. Calls are reported to FlowForge as soon as they end.
  1. Sign up at dashboard.vapi.ai.
  2. Save your private API key as a Vapi credential.
  3. Create a free number under Phone Numbers, or import a Twilio number.
ElevenLabsNatural ElevenLabs voices in many languages. The free plan includes some agent minutes; numbers come from Twilio. Finished calls appear within a few minutes.
  1. Create an API key (Profile → API keys) and save it as an ElevenLabs credential.
  2. Import your Twilio number under Agents → Phone numbers.
  1. On the agent's Phone card, choose Vapi or ElevenLabs and pick the account.
  2. Click Load and choose the phone number.
  3. Optionally set the voice (a Vapi voice name or an ElevenLabs voice ID) and the AI model.
  4. Click Save. FlowForge creates the agent on the platform, adds the booking tool and connects the number. From now on, calls to that number reach this agent.

To call someone, use Call a phone number on the agent's page with the number in international format (for example +923001234567). To call people automatically, use the Call a phone number step in a workflow. The platform charges for call minutes and numbers on your own account.

The voice platform must be able to reach your FlowForge over HTTPS, because bookings during a call go to https://your-domain.com/api/voice/…. Agents on a localhost copy can't take bookings on real calls.

Calls and bookings

  • Calls lists every call, with its status, length and summary. Open one to play the recording, read the transcript and see the details it captured and anything booked.
  • Bookings shows upcoming appointments in your timezone, with the caller's name, number, email and notes. Mark them done or cancelled there.

Use calls in workflows

  • When a voice call ends (trigger): post the summary to Slack, add the caller to your CRM, email the transcript.
  • When a caller books (trigger): add the booking to Google Calendar, send a confirmation SMS or email.
  • Call a phone number (action): call new leads from a form, or remind customers the day before.

Ready-made templates: Add voice agent bookings to Google Calendar, Post voice call summaries to Slack, Email me every new voice booking and Call new leads with a voice agent.

Templates and apps

Templates has 50 ready-made workflows, such as new form entries to a Google Sheet, Stripe payments to Slack, or AI summaries of new emails. Click Use template to copy one into a new workflow, then connect your accounts.

Apps lists all 1,190 apps by category. Open one to see its actions and triggers and what each needs. For an app or endpoint that isn't covered, use the HTTP request step or the app's Make an API call action.

Templates
Templates.
Apps catalog
The app catalog.

Each action follows the app's published API documentation. APIs change over time, so test a step with your account before relying on it, and tell us if something no longer works.

Executions

Executions lists every run with its status, trigger and duration. Open a run to see each step's input, output and HTTP request, and click Retry to run it again with the same trigger data. Runs older than 30 days are deleted automatically.

A run opened from Executions, showing each step and its output

General and timezone

In SettingsGeneral, set the timezone that schedules run in. In Appearance, each person picks light or dark. In Account, change your name, email and password.

FlowForge in the dark theme
The dark theme.

Forgot your password? Click Forgot password? on the sign-in page: FlowForge emails a 6-digit code that works for 15 minutes. If email isn't set up, run this from SSH or your host's terminal:

php artisan flowforge:reset-password you@example.com

Team and permissions

In SettingsTeam, the owner and admins can invite people by email. They open the link and choose their own password. Without email set up, copy the invite link and send it yourself. Links work once, for 7 days.

Role or accessCan do
OwnerEverything. Can't be removed.
AdminEverything, including settings, team and updates.
Member: view workflowsSee workflows (read-only), runs and templates.
Member: edit workflowsCreate, edit, test and switch workflows on or off, and use credentials (without seeing secrets).
Member: delete workflowsAlso delete workflows and credentials.
Member: AI BuilderUse the AI Builder, which can only do what the member's workflow access allows.
Settings, Team tab

Email alerts

With SMTP set up in SettingsEmail & alerts, FlowForge emails the owner and admins when:

  • a live run fails, with the failing step, the error and a link to the run (at most one email per workflow every 15 minutes; you can change this),
  • an app trigger can't reach its app,
  • the cron job was down for 10 minutes or more.

Test runs never send alerts. For alerts in Slack, Telegram or elsewhere, build a workflow with the Error trigger.

API and MCP for AI agents

FlowForge includes an MCP server, so AI agents like Claude Code, Cursor and VS Code can search apps and build, edit, test and run workflows on your FlowForge.

  1. Open SettingsAPI & MCP and click Create token. Copy it: it's shown only once. The agent acts as you, with your permissions.
  2. Add FlowForge to your agent. For Claude Code:
    claude mcp add --transport http flowforge https://your-domain.com/api/mcp --header "Authorization: Bearer YOUR_TOKEN"
    The same page has ready-to-paste settings for Cursor and VS Code.
  3. Ask the agent, for example: "Using FlowForge, build a workflow that saves new Typeform answers to Google Sheets."

Revoke a token on the same page at any time. The endpoint is https://your-domain.com/api/mcp (Streamable HTTP).

Settings, API and MCP tab

Updating FlowForge

FlowForge checks GitHub once a day for a new version. When one is out, admins see an Update badge next to Settings in the sidebar. Nothing is installed until you click.

  1. Sign in as an admin and open SettingsUpdates. Click Check again to look right now.
  2. Read What's new, then click Download and install.
  3. FlowForge downloads the update from GitHub and verifies its checksum. Then it backs up the current code, swaps in the new version and updates the database. If anything fails, it puts the old version back. It takes about a minute; keep the tab open.

Your settings, credentials, workflows and run history stay as they are. You can't install an older version over a newer one.

Settings, Updates tab showing a new version with What's new and a Download and install button

Updating from a zip file (optional)

If your server can't reach GitHub, or you want a specific version, download flowforge-update-x.y.z.zip from GitHub Releases. In SettingsUpdates, open Install from a zip file instead and drop the zip there. It uploads in small pieces, so your host's upload limit doesn't matter.

Can't open Settings? You can also update by uploading the full flowforge-install-x.y.z.zip with extract-flowforge.php into the same folder and opening extract-flowforge.php. It keeps your .env and storage folder.

Running your own fork? Set FLOWFORGE_UPDATE_REPO=your-name/your-repo in .env, and FlowForge looks for releases there. Each release needs the flowforge-update-x.y.z.zip and SHA256SUMS.txt files that scripts/make-release.sh builds.

On your phone

FlowForge works on phones like an app, with a bottom tab bar (Home, Workflows, AI, Runs, More). In your phone's browser, choose Add to Home Screen to open it full screen with its own icon.

Overview on a phone
Workflows on a phone
Step editor on a phone
AI Builder on a phone

Public demo mode

Want to show FlowForge to others, for example on a public demo site? Turn on demo mode on a separate copy.

  1. Install FlowForge as usual on its own domain, then add this line to its .env file:
    FLOWFORGE_DEMO=true
  2. Sign in with your admin account and open SettingsLive demo. Choose the visitor login and click Save. The sign-in page shows this login to everyone.
  3. Build a few sample workflows, then click Save current workflows as the starting point. Every hour, the demo goes back to exactly these workflows.

Visitors can look around, build and edit workflows, use templates and chat with the AI Builder (40 messages an hour). They can't delete anything, add or see credentials, run or switch on workflows, or change settings. Don't use demo mode on the copy you rely on.

Backups and moving servers

To back up FlowForge, keep these three things together:

  • The database. Export it from phpMyAdmin or your panel's backup tool.
  • The .env file in FlowForge's folder. It holds the encryption key: without it, saved credentials and API keys can't be read.
  • The storage folder. It holds logs and update backups.

To move to another server, copy all of FlowForge's files (including .env), import the database, update the database details in .env, and add the cron job on the new server.

Troubleshooting

404 or a blank page right after extracting

The extraction didn't finish. Check that public, vendor and artisan are there; if not, use extract-flowforge.php as described in step 3. If you used the extractor and see a 404 once, reload the page.

500 Server Error

  • Check the PHP version is 8.2 or newer for this domain.
  • Make sure storage, bootstrap/cache and FlowForge's folder are writable (permissions 755 for folders, 644 for files; owned by your hosting user).
  • The error details are in storage/logs/laravel.log. Send us the last lines if you're stuck.

The cron step stays on "Waiting"

  • Make sure the cron job is set to every minute (all five fields *) and saved.
  • The cron's PHP may be older than 8.2. Use the versioned PHP path from The cron job for your panel.
  • Check the path to artisan is the folder where you extracted FlowForge.
  • Some hosts start cron jobs every 5 minutes at most. Ask your host to allow every minute, or contact us.

Workflows don't run

  • Is the workflow switched Active?
  • Does the sidebar say Scheduler running? If not, see the cron section above.
  • Open Executions: a failed run shows which step failed and why.
  • Schedules run in the timezone from SettingsGeneral.

"redirect_uri mismatch" when connecting an app

The redirect URL in the app's developer console must exactly match https://your-domain.com/oauth/callback, including https and www if you use it.

Emails don't arrive

Use Send test email in SettingsEmail & alerts; it shows the exact error. Check the port and security pair (465 with SSL, or 587 with TLS), that the username is the full email address, and your spam folder.

FAQ

Do I need a cron job for each workflow?

No. One cron job runs every workflow.

Does it work on shared hosting?

Yes. It was built for it: no Docker, Node, Redis or background processes, just PHP, MySQL and one cron job.

Is FlowForge really free?

Yes. It's open source under the AGPL-3.0 license, with no limits on users, workflows or sites. You only pay if you want our installation or hosting services.

Can I use it for my business or my clients?

Yes. If you change FlowForge's code and offer your changed version to others over a network, share your changes' source code with them, as the license requires.

Can I install it in a subfolder like your-domain.com/flowforge?

We recommend a subdomain (automation.your-domain.com) instead. Webhook and sign-in URLs are cleaner, and it keeps FlowForge separate from your website.

Do I need an AI API key?

Only for the AI Builder and AI steps. Everything else works without one.

Are there limits on workflows or runs?

No limits from FlowForge. How many runs you can do depends on your hosting.

Where is my data stored?

Only on your server, in your database. FlowForge sends data only to the apps you connect.

How fast do webhooks run?

Within about a minute, on the next cron tick. Test runs from the editor run straight away.

Changelog

Version 1.5.0

  • Voice agents: AI agents that answer and make phone calls through Vapi or ElevenLabs. They book appointments, keep call history with recordings and transcripts, and start workflows.
  • Free browser conversations with any voice agent, using your AI model.
  • Eight voice agent templates, AI-written agents, and four workflow templates for calls and bookings.

Version 1.4.0

  • One-click updates: SettingsUpdates checks GitHub for a new version, shows what's new, and downloads, verifies and installs it when you click.
  • An Update badge on Settings when a new version is out.
  • Uploading the update zip by hand is still available.

Version 1.0.0

First release.

  • Visual workflow builder with triggers, actions, If/Else branches, filters and a step editor with drag-to-map data.
  • 1,190 apps with 5,783 actions and 615 triggers, and 50 templates.
  • AI Builder for DeepSeek, Qwen, OpenAI, Anthropic Claude and Google Gemini.
  • Webhook, schedule, app, manual and error triggers; one cron job for everything.
  • Executions with step-by-step debugging and retry.
  • Team roles and permissions, email alerts, password reset by email code.
  • MCP server for AI agents, with personal access tokens.
  • Setup wizard with cron verification; in-app updates with backup and rollback.
  • Released as open source under the AGPL-3.0 license.
  • Mobile-friendly layout, light and dark themes.

Support

Credits and licenses

FlowForge is licensed under the AGPL-3.0. It is built with these open-source projects:

ProjectLicense
Laravel, Inertia.js, React, React Flow, Tailwind CSS, Vite, AxiosMIT
Lucide iconsISC
Symfony componentsMIT
Anthropic PHP SDKMIT
Geist and Geist Mono fontsSIL Open Font License 1.1
SVG Logos and Simple Icons (app logos)CC0 1.0

App names and logos are trademarks of their owners and are used only to identify each integration. FlowForge isn't affiliated with or endorsed by them.