[ 01 / 04 ]·n8n × FCE
WORKS TODAY

n8n +
FreeCustom.Email

Use n8n's Execute Command nodes to chain fce CLI commands into full visual workflows — inbox creation, OTP extraction, email watching, and more.

  • Works with self-hosted and cloud n8n
  • fce login once — keys stored in keychain
  • Chain commands with n8n data flow
  • Full OTP output: code, from, subj, time
  • No native connector needed — HTTP Request works too
n8n — OTP verification workflow

Execute Command

fce inbox add random

dev-fy8x@ditcloud.info

HTTP Request

POST /signup {email}

200 OK — email sent

Execute Command

fce otp dev-fy8x@ditcloud.info

OTP · 212342

HTTP Request

POST /verify {otp: 212342}

200 OK — verified

[ 02 / 04 ]·Setup

Setup in 4 steps

01

Install fce & login

The fce CLI is the engine. Install it on the machine running n8n, then authenticate once with fce login.

bash
# Install
curl -fsSL freecustom.email/install.sh | sh

# Login — opens browser, saves key to keychain
fce login

# Confirm
fce status

02

Add an Execute Command node

In n8n, add an Execute Command node. Point it at the fce CLI. In headless/Docker n8n, set FCE_API_KEY as an n8n credential env var.

bash
# n8n Execute Command node — command field:
fce inbox add random

# Returns: inbox@domain.info
# Pipe to next node via {{ $json.stdout }}

03

Chain fce commands as nodes

Each fce command becomes its own Execute Command node. Chain them with n8n's data flow — stdout of one feeds the next.

bash
# Node 1: Create inbox
fce inbox add random

# Node 2: Trigger your app (HTTP Request node)
# POST to https://myapp.com/signup
# body: { email: "{{ $json.stdout }}" }

# Node 3: Extract OTP (Startup plan+)
fce otp {{ $node["Create Inbox"].json.stdout }}

04

Watch in real time with fce watch

For event-driven flows, run fce watch in a long-running Execute Command node and parse the stdout stream with an n8n Code node.

bash
# Pipe fce watch output into n8n
fce watch {{ $json.inbox }} --json

# Then in a Code node, parse each line:
# const lines = $input.first().json.stdout.split("\n")
# return lines.map(l => ({ json: JSON.parse(l) }))

Running n8n in Docker or a headless server?

Set FCE_API_KEY as an environment variable in your n8n container instead of using fce login. Get the value from the dashboard after logging in on your local machine first.

[ 03 / 04 ]·Example workflows

What you can build

OTP verification flow

Full end-to-end signup verification in a single n8n workflow.

1Create random inbox
2POST to /signup with inbox
3fce otp → extract code
4POST to /verify with OTP
5Assert 200 OK

Alert forwarding

Forward specific email alerts to Slack and log them to Airtable.

1fce watch alerts@myapp.info
2Filter by subject keyword
3Slack message node
4Airtable log node

Parallel inbox testing

Create multiple test inboxes and collect OTPs in parallel.

1Loop node × 5
2fce inbox add random
3Trigger staging signup
4fce otp each inbox
5Aggregate results

n8n × FreeCustom.Email · Automation Hub