Skip to content

System Architecture v3.2

Last updated: July 22, 2026

System Boundaries

AI4Love does not operate its own data center infrastructure. All hosting, storage, and credential management is delegated to SOC 2 Type II certified providers. The system is stateless — serverless functions process requests and release memory when complete.

What AI4Love Operates

  • Application logic (serverless functions on Vercel)
  • 7 core analysis agents (scheduled via Make.com), plus Queue Cleanup and two resurrection workflows that support the agent pipeline on their own schedule — these are maintenance jobs, not additional analysis agents
  • Nightly publisher — a write-only sync job that runs after the analysis agents complete, syncing people, activity, and insight records to each organization's own mirror file
  • MCP server for AI assistant access — 40 read-behavior tools and 2 narrowly gated write tools for authenticated clients
  • Dashboard UI (static SPA on Vercel)

What AI4Love Does Not Operate

  • Databases or data warehouses
  • Email or messaging infrastructure
  • Credential storage systems (delegated to Nango and Doppler)
  • AI model training or hosting

Data Flow

Source Systems                    Processing                      Output
─────────────                    ──────────                      ──────

┌──────────────┐
│ Blackbaud    │──READ──┐
│ RE NXT       │        │
└──────────────┘        │

┌──────────────┐    ┌──────────┐    ┌─────────────┐    ┌────────────┐
│ Mailchimp    │──READ──▶│ Airtable │◀───│ Make.com    │───▶│ Airtable   │
│              │    │ (People,  │    │ (7 Agents)  │    │ (Insights) │
└──────────────┘    │  Donors,  │    │ Nightly run │    └─────┬──────┘
                    │  Events,  │    └─────────────┘          │
┌──────────────┐    │  etc.)    │          ▲                  ▼
│ Environics   │──READ──▶│          │          │           ┌──────────┐
│ Analytics    │    └──────────┘          │           │ Dashboard│
└──────────────┘         │               │           │ (UI)     │
                         │         ┌─────┴─────┐     └──────────┘
                         │         │ Claude API │          │
                         │         │ (text gen  │          ▼
                         │         │  only)     │     ┌──────────┐
                         │         └───────────┘     │ MCP      │
                         │                           │ Server   │
                         └───────────────────────────│ (40 read,│
                                                     │ 2 gated  │
                                                     │  write)  │
                                                     └──────────┘

The two gated MCP write tools are omitted from the boxes above to keep the diagram readable: add_to_kindmind writes curated research to Pinecone (allowlisted curator organizations only), and mark_campaign_refined writes organization-scoped Generated Campaign metadata back to Airtable. Neither writes to People, Donors, Volunteers, Engagements, or any other supporter source table.

Flow Explained

  1. Source systems (Blackbaud, Mailchimp, Environics) are read-only inputs. AI4Love pulls data on manual trigger or scheduled sync. Nothing is written back.

  2. Airtable is the hub. All supporter records, donations, events, engagements, and participation live here. Airtable automations create Participation records from source data and stamp them for agent processing.

  3. Make.com runs 7 core analysis agents nightly. Agents 1-5 use the prefetch proxy pattern: Make.com pulls queued supporters, the backend pre-fetches each supporter's full timeline from Airtable, then sends everything to the Claude API in one call. Agent 6 reads today's insights and sends them to Claude for cross-agent pattern detection, writing results server-side. Agent 7 embeds insights, queries Pinecone for sector research, and writes enrichment guidance. All agents and campaign-generation calls are constrained by the Content Integrity Policy (v2026-04-07), fetched at runtime and prepended to the system prompt, which prohibits fabricating names, programs, outcomes, quotes, or statistics not present in the provided data. Queue Cleanup and the two resurrection workflows run on their own schedule to support this pipeline — they don't generate new insight types themselves.

  4. Verification — After each insight is written, the /api/verify-insight endpoint compares AI-claimed metrics against actual Airtable data. Results are written back to the insight record. Cost per run is logged to the Engine Logs table.

  5. Dashboard reads from Airtable to display insights, metrics, and recommendations to staff. Campaign generation also calls Claude with the Content Integrity Policy enforced. Staff take action — the system does not.

  6. MCP Server provides supporter-data access to AI assistants (Claude, ChatGPT, and other MCP-compatible clients). 40 of the 42 authenticated tools are read-behavior only. The remaining 2 are narrowly gated writes — add_to_kindmind (curated research → Pinecone, allowlisted curator orgs only) and mark_campaign_refined (organization-scoped Generated Campaign metadata → Airtable). Neither writes, modifies, or deletes People, Donors, Volunteers, Engagements, or any other supporter source record. Archived insights are filtered from query results. Unauthenticated clients see 3 diagnostic tools only (health, auth status, identity) — no supporter data.

  7. Publisher — After each nightly agent run completes, a write-only publisher job syncs people, activity, and insight records — records only, no formulas or automations — to a file your organization owns in its own workspace (Google Sheets for most clients). Your organization can revoke this write access at any time; the file itself, and everything already written to it, is unaffected by that revocation and survives cancellation permanently.


Connection Model

PlatformAuth MethodDirectionWhat Flows
Blackbaud RE NXTOAuth 2.0 (refresh token)Read onlyConstituents, gifts, actions, events
MailchimpAPI KeyRead onlyMembers, campaigns, activity
EnvironicsOAuth 2.0 (client credentials)Read onlyPostal-code-level PRIZM segments
Airtable (working base)Scoped Personal Access Token or provisioned service credential, per organization, held in AI4Love's own accountRead + WriteRequired bases and tables only; writes restricted to insight, enrichment, and campaign-workflow fields by application logic
Organization mirror (Google Sheets or comparable)Service account, editor on one fileWrite onlyPeople, activities, insights
Claude APIAPI KeySend + ReceiveAgent prompts sent, insight text received
PineconeAPI KeyRead + WriteResearch embeddings (KindMind) and organization knowledge (Vault); writes limited to the add_to_kindmind MCP tool for allowlisted curator orgs

Infrastructure Providers

ProviderRoleCompliance
AirtableData storage (supporter records, insights)SOC 2 Type II
VercelApplication hosting and computeSOC 2 Type II
Make.comAgent orchestration (nightly runs)SOC 2 Type II
NangoOAuth credential managementSOC 2 Type II
DopplerSecrets managementSOC 2 Type II
AnthropicLLM provider (Claude API)SOC 2 Type II
OpenAILLM provider (ChatGPT API, MCP path)SOC 2 Type II
PineconeVector search (research + org knowledge)SOC 2 Type II

Each sub-processor operates under their own independently audited security standards. AI4Love monitors provider status pages and security advisories. Changes to sub-processor agreements or compliance status are communicated to affected organizations.

AI4Love Trust Center