Skip to content

Security Controls v3.2

Last updated: July 22, 2026

Authentication

AI4Love uses a two-layer authentication model:

  1. Identity verification — Clerk (SOC 2 Type II) verifies the user's email via passwordless code flow.
  2. Session token — After identity verification, the backend issues an AI4Love JWT (24-hour expiry). This token governs all subsequent API access.

Access is invite-only. The user's email must exist in the organization's working base or the Admin Accounts table before they can sign in.


MCP Access Model

The MCP (Model Context Protocol) server lets AI assistants query supporter data conversationally. See the full MCP Access Model page for the complete tool inventory; the summary relevant to security posture:

  • Per-organization credentials: Access is granted via OAuth token or a provisioned per-org API key — not tied to an individual's Airtable login.
  • Timing-safe validation: Keys are compared using constant-time algorithms to prevent timing attacks.
  • Transport-dependent session behavior: Streamable HTTP is stateless — every request independently revalidates the credential, so revocation takes effect on the next call. SSE connections hold a short-lived in-memory session that ends on disconnect or OAuth token expiry (max TTL 60 minutes).
  • Organization isolation: Each request resolves to a specific org, which maps to a dedicated working base and credential set. Users in Org A cannot access Org B's data.
  • Mostly read-only: 40 of 42 authenticated-tier MCP tools are read-behavior only. 2 narrowly gated tools can write — one to Pinecone (curated research, allowlisted curator orgs only), one to Airtable (organization-scoped campaign metadata). Neither touches supporter source data.

Query Safeguards

Individual tools apply their own response bounds (e.g., export_supporters defaults to 100 records per call). A fixed per-key request quota, daily retrieval cap, and automated anomaly detection are not currently enforced in application code across the MCP surface — we're stating that plainly rather than publishing numbers the code doesn't back up. Deployment-level rate limiting can be configured and verified as a contractual requirement where needed.


OAuth Connection Model

AI4Love connects to external platforms through Nango, an enterprise OAuth gateway.

PlatformAuth MethodScopes / Access
Blackbaud RE NXTOAuth 2.0 (refresh token)SKY API read access — constituents, gifts, actions, events
MailchimpAPI KeyRead access to member lists, campaigns, activity
EnvironicsOAuth 2.0 (client credentials)Postal-code-level enrichment (PRIZM, WealthScapes)

Your organization initiates each connection. AI4Love never connects without explicit staff authorization. All connections can be revoked instantly from the Integrations dashboard.


AI4Love Internal Access Controls

Access to your organization's data by AI4Love personnel is governed by the principle of least privilege.

  • No standing access: AI4Love staff do not have persistent access to any organization's working base. Access is granted only when required for support, debugging, or onboarding — and only with your knowledge.
  • Role-based access: Internal access is restricted to authorized personnel. Infrastructure credentials are scoped by function (e.g., deployment credentials cannot access Airtable data).
  • Time-bound: Support access is granted for the duration of the issue and revoked upon resolution.
  • Logged: All administrative actions (deployments, credential rotations, configuration changes) are logged in Vercel and Doppler audit trails.

Rate Limiting

ScopeLimit
Global200 requests/minute
Auth routes10 requests/minute
API routes60 requests/minute
MCPTool-specific response bounds only; no fixed per-key application quota currently enforced (see MCP Access Model)

Audit Logging

What Is LoggedWhereRetention
MCP requests (tool name, org ID, auth type or error code, result status, timestamp — no credentials, no response bodies, no record counts)Vercel runtime logs; external Log Drain (if configured)Plan-dependent — one day by default on Pro; longer via Observability Plus or Log Drains
Integration sync events (platform, record counts, errors)Vercel runtime logs; external Log Drain (if configured)Plan-dependent — one day by default on Pro; longer via Observability Plus or Log Drains
OAuth connection/disconnection eventsNango audit logPer Nango retention policy
Credential access and rotationDoppler audit trail90 days
Deployment and configuration changesVercel deployment logIndefinite
Agent run costs (tokens, USD, insights generated, model)Airtable Engine Logs tableIndefinite (in client's Airtable base)
Insight verification results (verified/mismatch/unverifiable, field comparisons)Written to each Insight recordIndefinite (in client's Airtable base)

Audit logs are available to your organization on request. AI4Love does not log supporter PII in any log stream.

For partners requiring longer log retention than Vercel's default window, external Log Drain or SIEM integration is available — this is configured per organization, not a pre-built default, so confirm specifics before relying on it for a compliance requirement.

AI4Love Trust Center