DPSDPS Appsdps-workflows

dps-workflows

n8n automation glue for DPS. Lives at apps/dps/dps-templates/dps-workflows (sibling to the templates).

  • Repo: duabalabs/dps-workflows
  • Stack: n8n self-hosted (Docker), with optional Postgres + Redis
  • Deploy: SSH-based Docker compose with Nginx + SSL via Certbot

What it automates

n8n is used for the glue between DPS and external services where a workflow editor is more pragmatic than a hand-coded cloud function:

  • Lead capture → CRM / email
  • Donation receipts and post-payment notifications
  • Sellub onboarding emails (apps/automation/sellub-onboarding.json)
  • Sellub post-approval flows (apps/automation/sellub-post-approval.json)
  • Duabanti event reminders (apps/automation/duabanti-event-reminders.json)
  • Duaba-leads pipeline (apps/automation/duaba-leads.json)

The exported workflow JSON lives under apps/automation/ and is imported into n8n.

n8n as a DPS app type

n8n is also a first-class DPS app type — customers can provision their own n8n instance via the platform dashboard. The server-side cloud functions are 90% complete:

  • Create / start / stop / restart / list / details
  • Tier-based pricing (free / starter / professional / enterprise)
  • Docker compose with env_file (n8n + optional postgres + optional redis)

Critical gaps (~40% overall — see Supported App Types):

  • No rendering path in dps-dashboard/page.tsx
  • No n8nSectionMap
  • No tab headers in getTabsForApp()
  • Not in AppType union (sections/types.ts)
  • N8nInstanceManager.tsx (1033 lines) is never imported

Operator notes

  • Public n8n instance for Duabalabs internal automations runs alongside dps-server.
  • Workflows are version-controlled via the JSON exports in apps/automation/.
  • See apps/automation/SETUP.md for import/export procedure.