Velonie Baluarte
← Back to portfolio
Case Study: CRM and Automation Build

Connected a nonprofit's content queue to image generation, branding and Facebook publishing.

The project combined a GHL setup with n8n content rotation, AI-generated images and Facebook publishing. Its fields and workflows followed the client's Capture, Automate, Track, Show Impact and Grow model.

IndustryNonprofit donor engagement platform
EngagementGHL buildout + n8n automation architecture
RoleAutomation architect, GHL specialist
StackGHL, n8n, FastAPI, OpenAI, Facebook Graph API

30-second walkthrough of this build

Built around the client's donor engagement process

I used the client's five-stage donor model to define the GHL fields, workflows and content steps. This kept the CRM familiar to the team.

01
Capture
02
Automate
03
Track
04
Show Impact
05
Grow

The Facebook auto-poster pipeline

The client needed a more consistent posting schedule. The n8n flow reads the content queue, generates an image, adds branding and sends the asset to Facebook.

Google Sheets content rotation OpenAI image generation FastAPI overlay custom microservice hosted on Render Facebook Graph API auto-publish
Content

Rotation without repetition

Google Sheets drives the content calendar so the client can add or reorder posts without touching the workflow itself.

Generation

On-brand images, generated per post

OpenAI generates the base image per post; a custom FastAPI microservice on Render overlays branding before it ever reaches Facebook.

Publishing

Fully automated, no manual posting

The workflow uses the Facebook Graph API for posting. The team can still check the results in Meta.

Ownership

Client-editable, not a black box

The content queue can be edited in Google Sheets, and the workflow logic stays visible in n8n for maintenance.

The build, in the platforms it actually runs in

Redacted screenshots show the n8n canvas, the Facebook Page connection in GHL Social Planner and an example published post.

n8n Facebook auto-poster workflow canvas
Full auto-poster pipeline, n8n canvas view
GHL Social Planner connected to client Facebook Page
Facebook Page connected in GHL Social Planner
Sample auto-generated and published Facebook post
Output: branded, auto-published post

The CRM layer underneath the automation

Fields

23 custom fields

Mapped to the donor lifecycle so every stage of the Capture→Grow model has a corresponding data point in GHL.

Workflows

11 workflows, WF‑01 through WF‑11

Numbered and documented individually so the client's team can trace exactly what triggers what, without opening the canvas.

Email kit

6-template HTML email system

Built to the client's brand system for consistent donor-facing communication across the full lifecycle.

Navy #0B1B2E
Teal #0D9B8A
Inter, typeface

Debugging the Page-to-Page DM restriction

Meta restricts Page-to-Page direct messaging by default, which broke part of the intended engagement flow once the client's Page was connected to GHL's Social Planner.

I checked the Page connection and permissions to confirm the Meta restriction before changing the messaging flow. The revised approach stayed within the platform's rules.

What shipped

23
Custom fields
11
Workflows built
6
Email templates
1
Custom microservice
5
Lifecycle stages mapped

What I worked on

Need your CRM and content tools connected?

This project brought together GHL configuration, an n8n posting workflow and a small FastAPI service for image branding.