Skip to main content

FSA Fellowship Automation Workflow

1. Purpose​

This workflow handles new FSA Fellowship form rows from Google Sheets. When a row is added, it cleans fields, validates the row, then creates a record in PocketBase (fs-forms API), tracks the user and sends a message via Interakt, and notifies via Brevo. Invalid rows are skipped.

Status: Active

2. Trigger​

Type: Google Sheets (row added)

Details:

Node: Google Sheets Trigger (rowAdded)

The workflow starts when a new row is added to the configured fellowship Google Sheet.

3. Step-by-Step Process​

Step 1: Google Sheets Trigger (rowAdded)​

What happens here: Detects a new sheet row for an FSA Fellowship submission.

What input it uses: New Google Sheet row payload.

Why this step is needed: Starts automation as soon as a signup / application lands in the sheet.

Step 2: Set - Clean Fields​

What happens here: Maps and cleans sheet columns into a consistent payload (trim, rename, normalize).

Operation: manual / Set

What input it uses: Raw sheet row.

What output it produces: Cleaned field object for validation and downstream APIs.

Why this step is needed: Sheet columns vary; APIs need stable field names and values.

Step 3: IF - Valid Row​

What happens here: Checks whether the cleaned row meets required criteria (email / name / required fields, etc.).

Branches:

  • true - continue to Brevo / Interakt / PocketBase path
  • false - Invalid Row (Skip) and stop

Why this step is needed: Avoids creating CRM / messaging noise from incomplete or test rows.

Step 4: Ready For Brevo/Interakt​

What happens here: Pass-through / junction after a valid row, before the API chain.

Why this step is needed: Clear handoff point into the external integrations.

Step 5: Create RAD in PocketBase​

What happens here: Creates a fellowship / RAD record via HTTP POST to the fs-forms PocketBase API.

Method / URL pattern: POST https://fs-forms-api.fs...

What input it uses: Cleaned valid row fields.

What output it produces: Created record response from PocketBase.

Why this step is needed: Persists the submission in the forms backend.

Step 6: Interakt Track User​

What happens here: Upserts / tracks the user in Interakt (WhatsApp CRM).

Method / URL pattern: POST https://api.interakt.ai/v...

Why this step is needed: Ensures the contact exists in Interakt before messaging.

Step 7: Interakt Send Message​

What happens here: Sends the fellowship WhatsApp (or Interakt) message template to the user.

Method / URL pattern: POST https://api.interakt.ai/v...

Why this step is needed: Immediate applicant outreach on Interakt.

Step 8: Brevo Direct​

What happens here: Sends email (or related Brevo action) via Brevo API.

Method / URL pattern: POST https://api.brevo.com/...

Why this step is needed: Parallel email notification / welcome path alongside Interakt.

Invalid path: Invalid Row (Skip)​

What happens here: Ends the run for rows that failed the IF Valid Row check. No PocketBase, Interakt, or Brevo calls.

4. Workflow Logic Summary​

  1. New Google Sheet row triggers the flow
  2. Clean and normalize fields
  3. If invalid - skip
  4. If valid - create PocketBase RAD record
  5. Track user in Interakt, then send Interakt message
  6. Send Brevo notification

5. Diagram / Screenshot​

Google Sheets Trigger (rowAdded)
-> Set - Clean Fields
-> IF - Valid Row
false -> Invalid Row (Skip)
true -> Ready For Brevo/Interakt
-> Create RAD in PocketBase (POST fs-forms-api)
-> Interakt Track User (POST api.interakt.ai)
-> Interakt Send Message (POST api.interakt.ai)
-> Brevo Direct (POST api.brevo.com)

6. Dependencies​

Google Sheets​

  • Purpose: Fellowship form / application intake
  • Trigger: rowAdded
  • Requires Auth: Yes (Google Sheets OAuth in n8n)

PocketBase / fs-forms API​

  • Purpose: Create RAD / fellowship record
  • Endpoint pattern: https://fs-forms-api.fs... (POST)
  • Requires Auth: As configured on the HTTP Request node

Interakt​

  • Purpose: Track user + send WhatsApp / messaging
  • Endpoint pattern: https://api.interakt.ai/v... (POST)
  • Requires Auth: Interakt API key in n8n

Brevo​

  • Purpose: Email / direct Brevo API notification
  • Endpoint pattern: https://api.brevo.com/... (POST)
  • Requires Auth: Brevo API key in n8n

External Services​

ServiceRole
Google SheetsRow trigger / intake
fs-forms PocketBase APIPersist RAD
InteraktTrack + message
BrevoEmail notify

n8n Instance​

Workflow URL: https://agent.fsgarage.in/workflow/yj6pfdlapEghoaxN

Workflow Name: FSA Fellowship automation

Workflow ID: yj6pfdlapEghoaxN

n8n Instance URL: https://agent.fsgarage.in