Security & privacyHosted in Frankfurt

Ready for your IT review.

The RevPrime Data Hub manages access to your CRM, ad accounts and outbound tools. The GTM Hub keeps plans, campaigns, decks and files in a separate instance for your company. This page covers how both hubs protect your data, what they store and what they don't, and what's still missing. Everything here comes from the Data Hub's product documentation and the GTM Hub's specification.

  • AES-256-GCM for all credentials
  • Hosted in Frankfurt
  • 2FA required for admins
  • Every tool call logged
  • No copy of your data
  • Invite-only access
Security settings with two-factor sign-in, login lockout and retention periods
Security model

What protects your data: the Data Hub.

  • Encryption & keys

    Secrets are encrypted in the database, and the key is kept separately. Anything the Data Hub only needs to verify is stored as a hash.

    • AES-256-GCM with a random IV per value and an authentication tag
    • Encrypted: OAuth tokens, API keys, Slack and Teams webhooks, approval arguments, 2FA secrets
    • The key is a protected environment variable, not stored in the database
    • MCP server and connect link tokens stored only as SHA-256 hashes, compared in constant time
    • Passwords (12 characters minimum) stored only as scrypt hashes
  • Access & identity

    Only invited people can log in to the admin area. Admins always log in with a second factor.

    • No public sign-up; invitation links work once and expire
    • Two-factor authentication (TOTP) required for platform and organization admins, plus ten recovery codes
    • Login lockout after 5 failed attempts in 15 minutes from the same address or for the same account; many failed attempts from different addresses trigger a warning
    • Sessions last 12 hours (configurable 1–72), HttpOnly, Secure, SameSite=Lax; a deactivated user is logged out everywhere at once
    • Three roles (platform admin, organization admin, business unit user); organizations can't see each other
  • Separate business units & permissions

    Each team, brand or region gets its own business unit. The Data Hub checks every single object against the user's scope, and the database enforces the assignment on top of that.

    • Objects outside your scope return 404, so you can't tell they exist
    • An MCP server only knows the connections of its own business unit
    • Access level per connection (Read, Write, Admin), checked on every request
    • Allowed accounts limit logins with many accounts to specific properties and ad accounts
    • The rights check shows which enabled tools the vendor doesn't allow for that connection
  • Control over agents

    The Data Hub checks every write call with its actual arguments before anything reaches the vendor. You decide per MCP server what an agent may do.

    • Write tools are never enabled by default, and deletes need approval by default
    • Approve in the Data Hub or through an approval link; in Slack with a button (via the Slack app), in Teams through a link to the approval page
    • Bulk brake above 10 records per call, emergency brake after 20 deletes per hour
    • Custom and locked rules, plus limits per server (default: 50 write calls per day, 500 calls per hour)
    • Fact check of figures against the source, and undo for HubSpot changes and campaign status
  • Logs & traceability

    Every tool call and every change in the admin area is logged. The Data Hub doesn't store the content of responses.

    • Activity log per business unit, including rejected calls and calls held for approval
    • Admin log with logins and failed attempts, including IP address
    • Approval decisions with the person who made them, also from Slack and approval links
    • CSV export, and every export is logged too
    • 365-day retention, configurable from 30 to 3,650 days
  • Privacy & data storage

    The Data Hub fetches contacts, campaigns and reports from the vendor on every call and passes them only to the agent that asked. It stores configuration, credentials and logs.

    • No copy of the content in your tools
    • Application and database in Frankfurt
    • Service providers: Vercel and Neon, optionally Resend, Slack and Microsoft Teams
    • Data processing agreements are set up individually
    • Deleting a business unit removes its credentials, MCP servers, links and log entries
  • Hosting & network

    The Data Hub runs on Vercel in Frankfurt, and its Neon database is in Frankfurt as well. Outgoing requests only go to fixed vendor URLs.

    • HTTPS only, with HSTS for 2 years including subdomains
    • Security headers against clickjacking, MIME sniffing and leaking URLs via the referrer
    • Connectors can only reach the vendor's base URLs and don't follow redirects
    • Private network addresses (localhost, internal IPs) are blocked for custom connectors and image uploads
    • Secrets are environment variables in Vercel; preview deployments don't touch the production database
GTM Hub

How the GTM Hub protects your work.

Your company gets its own GTM Hub instance for plans, campaigns, decks, knowledge and files. The GTM Hub reads outside data only through the Data Hub, using a read-only service access. It adds safeguards of its own:

  • Your own instance

    • Its own Vercel project in Frankfurt (fra1), its own Neon database in Frankfurt, its own private file storage, your domain
    • Separate keys per instance; every instance runs the same code
    • Updates roll out in rings, only with green tests and after a minimum soak time
    • Daily backup (kept 30 days), point-in-time restore at Neon for the last 7 days and a daily health check
  • Login

    • Password (scrypt, at least 12 characters) and an authenticator app with ten recovery codes, required for admins
    • Passkeys for passwordless login or as the second step
    • 15-minute lockout after five failed attempts
    • Sessions per device (14 days), each visible and revocable on its own
  • Permissions checked twice

    • Role per person and area (Revenue, Marketing, Sales, Content): edit, read or no access
    • Visibility per item: private, teams, everyone, and personal for dashboards
    • A central permission check in the app, plus row-level security in Postgres that the app role can't bypass
    • “View as a person” is read-only for admins and logged
  • Untrusted HTML sandboxed

    • Dashboards, reports, landing pages, decks and uploaded HTML or SVG only in a sandbox with its own CSP
    • Inside the sandbox there's no network access, no cookies and no access to the GTM Hub
    • Files are served through signed links that last 15 minutes and are tied to the person
    • CSP with nonces and no unsafe-inline, cookies with the __Host- prefix
  • Agents

    • Writes only as a signed proposal that a person confirms
    • Never allowed: permanent deletes, exports, keys and tokens, instance settings, granting approvals
    • Keys, email addresses and phone numbers in tool results are redacted
    • Monthly limit and kill switch are checked before every step
  • Personal data and export

    • Dashboards store only the fields a tile shows; every view of personal data is logged
    • Views of deal rooms and share links are recorded without IP address or device
    • Access and erasure per person (GDPR Art. 15 and 17)
    • Full export at any time, and within 30 days if you leave
Audit trail

Every call leaves a record

The activity log lists every tool call an agent makes, per business unit. The admin log shows who logged in and what changed in the admin area.

  • Per call: time, MCP server, tool, success or error, whether it was a write call, duration and, if any, a shortened error message
  • Includes rejected calls (limit, or block with reason) and calls waiting for approval
  • Admin log: logins and failed attempts with IP, every change to business units, connections, MCP servers, links, connectors and settings, and every approval decision
  • Both logs export to CSV; the activity log for the last 30 or 90 days or in full
  • Deleted automatically after 365 days, configurable from 30 to 3,650 days
Activity log listing every tool call with status and duration
Data handling

What the hub stores, and what it doesn't.

Credentials for your tools (encrypted)WhyAccessing your tools on behalf of your agentsHow longuntil the connection is disconnected or the business unit is deleted
Configuration: default IDs, enabled tools, access levels, allowed accounts, rulesWhyOperation and guardrailsHow longuntil changed or deleted
Activity log: tool, time, success, duration, shortened error message or reason for a blockWhyTraceability and securityHow long365 days (configurable 30–3,650), at most until the business unit is deleted
Admin log: action, time, business unit, details, IP addressWhyTraceability and securityHow long365 days (configurable 30–3,650)
Login attempts: IP address, time, successWhyLogin lockoutHow longfailed attempts 2 days, successful logins 30 days
Users: name, email, role, scope, password hash, 2FA secret (encrypted), last loginWhyLogin and permissionsHow longuntil the user or their organization is deleted
Approval requests: tool, arguments and result (encrypted), reason, decisionWhyHuman confirmation of actionsHow longdecided ones after the log retention period, otherwise until the MCP server or business unit is deleted
Undo references: tool, record IDs, field names, previous campaign status (no field contents)WhyReverting agent changesHow long30 days
Usage counters per business unit, month and source: calls, write actions, errors, Clay rows, Clay credits (no content)WhyBilling and quotasHow longuntil the business unit is deleted
Packages with quotas and the last Clay credit balance per connectionWhyQuotas and credit usageHow longuntil the package is deleted or the connection is disconnected
Role of the connected account per account, e.g. “VIEWER” on a LinkedIn ad accountWhyRights checkHow longuntil the next check or until the connection is disconnected

Not stored

  • Content from your tools, such as contacts, deals, campaigns and reports. The Data Hub only passes it through to the agent that asked.
  • Responses to tool calls. The log records the call, not the result. Vendor error messages are kept in shortened form (1,000 characters max) and can contain fragments of a request.
  • Figures from cross-source reports and the fact check. Both query the vendor on each call and return the result only to the agent.
  • Field contents for undo. The Data Hub only keeps record IDs, field names and the previous campaign status. Old field values come from HubSpot's property history.
  • Passwords, recovery codes and MCP server tokens in plain text. Only hashes are stored.
In the works

What's coming next.

  • Planned

    Rate limits in the Vercel Firewall

    We plan to add rate limits for login, OAuth authorization, client registration and connect links, with an optional IP allowlist for the admin area.

  • Planned

    Passkeys (WebAuthn)

    Planned for the Data Hub as a phishing-resistant second factor or as a replacement for password plus TOTP. The GTM Hub already supports passkeys.

  • Planned

    Single sign-on (SSO/SAML)

    Today your team logs in with email, password and a second factor. Login through your identity provider via SSO/SAML is planned.

  • Planned

    External key management (KMS)

    We plan envelope encryption with a separate data key per business unit and key rotation. A database leak plus the main key would then no longer be enough on their own.

For your IT team

Questions from the security review.

›Where is our data hosted?

The Data Hub runs on Vercel in Frankfurt (fra1), and the PostgreSQL database on Neon, also in Frankfurt (aws-eu-central-1). Only configuration, encrypted credentials and logs are stored there, never content from your tools.

›Who can see our credentials?

They're encrypted with AES-256-GCM in the database and only decrypted in memory for the duration of a request. Agents never see tokens or keys, and the admin interface doesn't display stored credentials. Whoever on your team holds the admin access to a tool doesn't have to email it around either. They connect the tool themselves through a connect link.

›Can igromo see our data?

igromo's platform admins run the Data Hub and have access to every business unit, including your business units' configuration and logs. Content from your tools isn't stored in the Data Hub, and the interface doesn't show credentials to anyone.

›How do AI agents authenticate?

Either with a token per MCP server (256 bits of randomness, stored only as a hash) or via OAuth. For OAuth, the Data Hub is its own authorization server per the MCP specification: PKCE with S256 is required, each token is valid for exactly one MCP server, access tokens expire after 60 minutes, and refresh tokens rotate on every renewal.

›Can we revoke access immediately?

Yes. A disabled MCP server rejects every call, renewing a token invalidates the old one at once, and you can revoke every client connected via OAuth individually. Deactivated users are logged out right away, and you can revoke connect links at any time.

›What happens when we disconnect a tool or delete a business unit?

When you disconnect a tool, the Data Hub deletes the stored credentials for that connection. When you delete a business unit, the Data Hub removes all of its data: credentials, MCP servers including their tokens, connect links and log entries.

›What gets logged, and for how long?

Every tool call an agent makes, with time, tool, outcome and duration, plus logins and every change in the admin area. Both logs are deleted automatically after 365 days; you can set anywhere from 30 to 3,650 days. Failed login attempts are kept for 2 days, successful ones for 30 days, and undo references for 30 days.

›What about GDPR and a data processing agreement?

The Data Hub only passes content from your tools through and doesn't store it. Hosting and database are in Frankfurt. Service providers are Vercel and Neon, plus Resend, Slack or Microsoft Teams if you set up one of those channels. We agree on the data processing terms with you individually.

›Can an agent delete data or change records in bulk?

Not on its own. Deleting, archiving and unsubscribing need a person's approval by default, and you can block them entirely. A call that changes more than 10 records also needs approval, and after 20 deletes in an hour the server refuses any more.

›What can't the Data Hub do yet?

Single sign-on (SSO/SAML) isn't available yet; users log in with email, password and a second factor. The Data Hub doesn't support passkeys yet either. MCP clients with a metadata document authenticate as public clients with PKCE; private_key_jwt isn't supported yet. The Data Hub doesn't send invitations by email, and each user belongs to exactly one level, so not to several organizations.

Bring your IT team along.

We'll walk through the security model with your IT team and answer their questions directly.