- Read historical and current data from your customer’s SaaS.
- Write data to your customer’s SaaS.
- Subscribe to events (creates, deletes, and field changes) in your customer’s SaaS.
Built for each of your customers’ configurations
Ampersand handles multi-tenancy at scale. Say you have 400 customers on Salesforce. Every one of them has customized it to reflect how they run their business, with different custom objects, fields, permissions, and rules for how your product interacts with their data. Two very similar companies can store the same data in completely different places. Ampersand separates the integration you build from each customer’s configuration. You define the schema and operations your application needs once, and each customer’s installation maps them to their own instance. For example, you definerenewalDate once, and each customer maps it to wherever their Salesforce keeps it:
Your application reads and writes
renewalDate. Ampersand translates it to each customer’s field.
How Ampersand works
1
Define an integration
Use an
amp.yaml file to declare each integration: the system to connect to, the objects and fields to read or write, and the configuration options to expose to your customers. See the manifest reference.2
Let customers connect and configure
Embed authentication and configuration in your product with the prebuilt UI components, the headless UI library, or the API. Customers connect their own instance and choose field mappings and preferences, and Ampersand saves those choices in their installation.
3
Ampersand runs it
A managed runtime tracks every customer’s configuration and makes the right API calls for each one. It handles authentication, scheduling, retries, and cost, and parses provider error messages. Results are delivered to your destinations.
4
Monitor, adapt, and recover
Inspect installations and operation logs, get notifications about connection issues, sync failures, and configuration changes, and watch for schema changes when fields are added, removed, or modified. Use these signals to build self-healing loops in your product: diagnose an issue, refresh metadata or update configuration, and retry once the cause is resolved.
Actions
Actions are the verbs of every integration. You declare them in your manifest.Read
Scheduled or on-demand reads with incremental syncs, delivered anywhere.
Write
Create and update records in your customer’s SaaS, one at a time or in bulk.
Subscribe
React to creates, updates, deletes, and field changes as they happen.
Search
Targeted, synchronous queries with filters. No stored copy required.
Proxy
Call any provider endpoint directly with managed auth attached.
Get started
Two steps to your first integration.1. How Ampersand works
The model in five minutes: integrations, installations, revisions, and the config that decides what runs for each customer.
2. Build your first integration
Clone a React app with HubSpot already wired up, then swap in your own manifest and deploy.
Guides
The hard parts, already handled.Reads and backfills
- Backfill historical data on install: none, full history, or time-boxed per object, with an API to monitor progress.
- Read only the records that match: per-installation field filters, plus backfill-specific filters for the initial sync.
Writes that respect customer data
- Bulk writes with retries built in: batching, async mode, and exponential backoff for up to 48 hours.
- Never clobber customer data: control per field whether Ampersand writes on create, on update, or only when the field is empty.
Real-time events
- Watch individual fields, not whole objects: subscribe to updates only for the fields you list, quota-optimized at the source.
- Track when records are linked, not just changed: subscribe to association changes.
- Get notified when integrations change: events for installs, config changes, completed backfills, and paused syncs.
Schemas and mapping
- Map nested and dynamic fields: nested JSON paths, value mapping, and per-customer field sets.
- React when a customer’s schema drifts: get events when fields are created, deleted, or change type.
- Create custom fields in the customer’s SaaS: upsert custom fields programmatically.
- Support multiple CRMs with one manifest: shared object names, per-provider overrides, no forked code.
Running in production
- Verify every webhook cryptographically: Svix-signed payloads, plus payload size and frequency controls.
- Stay under provider rate limits: throttle mode returns a retry-after instead of burning 429s.
- Call the API from the browser, safely: short-lived JWTs signed by your server, no API keys in frontend code.
Reference
Manifest schema
Every field for read, write, subscribe, proxy, and field mapping in
amp.yaml.CLI
Commands, flags, and CI usage for deploying and diffing manifests.
REST API
Installations, connections, records, and webhook payloads.
React SDK
Hooks for connections, installations, and config in
@amp-labs/react.Integrations
Ampersand connects to CRMs, ERPs, support desks, warehouses, and more through one manifest surface. Each provider guide lists the supported objects, the authentication type, and whether read, write, and subscribe actions are available.Browse the provider directory
Search every supported provider, from Salesforce and HubSpot to NetSuite and Workday.
Request a provider
Missing an API you need? File an issue on the open-source connectors repository.
Troubleshooting and support
Troubleshooting
A searchable index of known errors, general and provider-specific, with step-by-step fixes.
Changelog
Manifest spec versions, provider additions, breaking changes.
Support
Shared Slack channel with our engineers, or email support@withampersand.com.

