Salesforce ⇄ PostgreSQL sync

Salesforce, as plain SQL. Both ways.

RowSync keeps a live, two-way copy of your Salesforce data in a PostgreSQL database you own. AI agents, customer portals, dashboards and your own apps work with plain SQL tables, and every change they make is checked before it goes back to Salesforce. What you'd expect from Heroku Connect or Stacksync, in any Postgres you choose, at a price a mid-size company can say yes to.

Your first sync live the same day. For Salesforce Enterprise Edition and above.

Three ways to use it

One live copy of Salesforce. Use it however your business needs.

Salesforce stays your system of record. RowSync gives everything else a Postgres database to work with, and sends what changes there back to Salesforce.

Sync

Salesforce and Postgres, kept in step

For teams that need their Salesforce data in a real database, both ways, without building an integration or paying enterprise prices for one.

  • Connect an org in one click: install the package, log in, Allow
  • Pick objects and fields, standard or custom, and which way each one flows
  • See every validation rule, flow and trigger a write could set off, before going live
  • Every attempt logged, with a retry button for anything Salesforce refused
Build

Apps that run on your CRM data

For developers building portals, internal tools and AI agents that use the RowSync database as their app's data source.

  • Real Postgres tables with readable column names, for any language or framework
  • Write a row and it reaches Salesforce, with conflict checks so the newest change wins
  • Picklist values, record types and Salesforce's rules, readable from the database
  • Your app gets its own login: read only, or read and write, never delete
  • Add your own tables beside the synced ones and join them in one query
brodee.ai

Your Salesforce data in brodee

For teams using brodee.ai, the AI assistant for your business. Connect the RowSync database and brodee works with your CRM data and every other table in it.

  • Ask about accounts, deals and cases in plain words, answered from your database
  • Salesforce field labels come along, so brodee uses your names, not column names
  • Changes brodee makes, once you confirm them, sync back to Salesforce
  • No per-question Salesforce API calls, no API allowance used up
What it does

One live copy of your CRM, safe to read and safe to write

Set it up once from a guided wizard. From then on RowSync watches both sides and keeps them matching.

Two-way, field by field

Each field flows Salesforce to database, database to Salesforce, or both. Formulas, lookups and read-only fields are locked to one direction for you, with the reason on the badge.

Live, not a nightly export

A record saved in Salesforce reaches your table within seconds. A row changed in your database is picked up about every ten seconds and sent as a real Salesforce update. Neither side echoes a change back.

Any object, your tables

Accounts, contacts, opportunities, cases and every custom object your org owns. Let RowSync create a table shaped to the fields you pick, or map onto a table you already have.

Automation check before go-live

Before an object is switched on, RowSync scans your org live for validation rules, flows, Apex triggers, workflow, duplicate and matching rules, and explains each in plain English.

Picklists and record types kept valid

Current picklist values, dependent picklists and record types live in your database. Every value is checked against Salesforce before a change is sent, so nothing writes blind.

A data guide for every app and agent

Object Rules shows each table's fields, what an insert must fill in, picklists, and what Salesforce checks on save. Download it as one file for a developer or an AI agent.

Activity you can follow

Every sync attempt, either direction, with OK, error or conflict. Changes Salesforce refused wait under Needs attention with the real reason and a one-click retry.

Drift checks and sync maps

Record counts side by side for every synced object, Salesforce against your database, and a map of every org, database, schema and table that's connected right now.

A database set up the narrow way

The Provision Database wizard writes a script your own DBA reviews and runs: a login that can only manage RowSync's schema, plus an app user for your own app. RowSync never holds a broader credential.

How it works

How a change moves, in both directions

Two separate paths, each built for its side. Nothing exports on a nightly schedule, and nothing needs Salesforce's Change Data Capture allowance.

Salesforce → your database

Within seconds of a save

inserts, updates and deletes
A record is savedA small Apex trigger RowSync deploys for each synced object notes which records changed. It never slows down the save.
RowSync is toldOne shared background job in your org calls RowSync with the record Ids. Not the values: those are read fresh.
The record is read againRowSync reads the current record from Salesforce, so what lands in your table is what Salesforce holds now.
Your table is updatedThe row is written only if it's newer than what your table holds, in the same statement, so a slower message can't overwrite a newer one.
Your database → Salesforce

About every ten seconds

inserts, updates and deletes
Your app writes a rowA trigger on the synced table queues the change: only the changed columns for an update. Your app does nothing special.
The change is checkedOnly fields set to flow to Salesforce go, and every picklist value is checked against Salesforce's current list first.
Sent to SalesforceIn batches of up to 25 through Salesforce's Composite API, as real updates, so your validation rules and flows run as usual.
Salesforce decides the raceEach record carries its own timestamp; Salesforce refuses it if the record changed there since. Newest wins, and the conflict is logged.
No echo, no loopRowSync records every write it makes, so its own change is never mistaken for a new one and sent back.
Retried, then shownA change Salesforce refuses is tried three times, then waits under Needs attention with Salesforce's own reason.
One switch per objectTurn an object off and both directions stop at once, without touching your Apex or your data.
It's just SQL

Ask your CRM anything, with the tools you already know

Point Power BI, Tableau, Metabase, an ORM or an AI agent at always-current tables. One query joins accounts, deals and cases in milliseconds, where an agent would chain several CRM calls.

  • Standard and custom objects and fields
  • Picklists and record types kept up to date
  • Read-only logins for the apps and people that only need to look
  • Every change logged, both directions, so you can see what moved and when
Features in depth

The details that make a sync safe to build on

What you get, screen by screen, from first connection to the day you retire a table.

Setting up

A guided wizard, with a short video for every step.

  • One-click Salesforce packageInstall it once, log in, click Allow. No Connected App to build in your org. Orgs that require one can connect with their own certificate instead.
  • Sandboxes and productionConnect each org once. Point a second database at an org you've already connected, reusing its login.
  • A new table, or yoursLet RowSync create a table shaped to your fields, or map onto an existing one: it warns where types don't fit and adds only the columns that are missing.
  • Rename columns as you likeReadable names chosen per field, with the Salesforce label kept alongside.
  • Record types includedA record type table is kept in your database, with a link from each record, so an app can only pick a type that exists.
  • Initial load, safe to repeatPull every existing record when an object goes live, and run it again any time without duplicates. Large objects load in the background.
  • Activate one or manySwitch on one object, or several in one go, and watch each one's status.
  • Updates offered when they applyRowSync reads which package version your org has and offers an update only when there's a newer one.

Writing back safely

Every guard that stands between your app and a bad write to Salesforce.

  • A direction for every fieldTo your database, to Salesforce, or both. Formulas, lookups, read-only and restricted fields are locked to one way, with the reason on the badge.
  • Picklists checked properlyBy record type and by controlling field (a state by its country). A value just added in Salesforce passes; a typo is refused with a sentence, not FIELD_INTEGRITY_EXCEPTION.
  • Automation previewValidation rules, Apex triggers, flows and Process Builder, workflow, duplicate and matching rules, read live from your org and explained in plain English.
  • One owner per fieldWhen one org feeds several databases, only one may write each field back. Hand the ownership over in two clicks.
  • The Salesforce Id is protectedThe column that ties a row to its record can't be edited by an app, so a row can't be re-pointed at someone else's record.
  • Nothing lost quietlyRefused changes keep their exact original values; retry re-sends them as they were, nothing re-guessed.

A database that explains itself

Most apps and agents never open RowSync. So the rules live in the database.

  • Comments on every table and columnThe Salesforce label, description and how to write to it, visible in any SQL tool, ORM or AI agent. Comments someone else wrote are never touched.
  • Valid values, one query awayA view lists every picklist's current values, by record type or controlling field, so apps read them at run time instead of hard-coding them.
  • Object RulesPer table: fields, what an insert must fill in, picklists, record types, global value sets, validation rules, flows, and fields Salesforce requires that you don't sync.
  • Used byThe views, foreign keys, triggers and functions in your database that rely on each table.
  • A data guide to hand overDownload one connection's tables, rules and values as Markdown to read or JSON to load: for an outside team, or as an AI agent's context.
  • A start-here noteThe sync schema itself tells a developer browsing the database where everything is.

Running it day to day

See what moved, catch drift, and change things without breaking what depends on them.

  • ActivityEvery attempt, both directions, as OK, conflict or error, searchable by object and text.
  • Drift checkSalesforce's record count beside your table's for every synced object: the one signal that catches both sides quietly drifting apart.
  • Sync mapsEvery org, database, schema and table on one map, with each one's status.
  • Change a live syncAdd fields or change directions on an object that's already syncing, and save.
  • Stopping is deliberateDownload a copy first, type the table's name to confirm. The table and its data stay, and the removal is recorded.
  • Retire, then dropBefore a table is deleted, other logins lose access for a waiting period, so anything still using it shows up as "permission denied" in your logs. Restore puts it all back.
  • Repair and reconnectA connection that didn't finish setting up is repaired in one click, without duplicating anything. Reconnect Salesforce without losing your setup.
  • TeamAdmins and members, invited by email. Nobody has a password: sign-in is a single-use link.

Your database, set up the narrow way

RowSync never asks for a superuser password.

  • A script your DBA runsRowSync writes the setup script; your administrator reviews and runs it under their own authority, in your infrastructure.
  • A login that can do one thingRowSync's own login can connect and manage its schema. Never superuser, never other databases, never other roles.
  • An app user for your appRead only, or read, insert and update on every synced table, never delete. Each new table is granted as it's created.
  • Encrypted, and checkedConnection strings and Salesforce credentials are encrypted when saved and never shown again; every connection is made over SSL.
You stay in control

Built for data you can't afford to get wrong

RowSync moves your data. It never keeps it for itself, and it never sends Salesforce a change it hasn't checked.

It lives in your database

Synced records go to the PostgreSQL you choose, in your cloud and region. You own the tables, the backups and who may read them. Secrets are encrypted the moment they're saved and never shown again.

Checked before it's sent

Picklist values against Salesforce's current list, timestamps against Salesforce's own, at the moment of the write. Whichever side changed last wins, and a conflict is logged as one, never quietly.

One owner per field

When an org feeds several databases, only one connection may write each field back. Two apps can never race each other over the same Salesforce value.

Connect your orgOne-click package→ Pick objects and fieldsAnd each field's direction→ Review your automationsWaits for you→ Activate and loadEvery existing record→ Live, both waysLogged, retryable
Why teams switch

Two-way Salesforce sync, without the enterprise price tag

Heroku Connect, Stacksync and the other sync products do the job, and charge like it. RowSync does the same job for companies that can't justify that bill.

Priced for mid-size companies

A two-way sync shouldn't cost more than the Salesforce licences it serves. RowSync is priced well below the big sync products, and the price doesn't climb with every question your apps and agents ask.

Any Postgres you choose

Heroku Connect syncs only to Heroku Postgres. RowSync works with the PostgreSQL you already run: AWS, Azure, Google Cloud, DigitalOcean, Supabase, Neon or your own servers, in your region.

No consultants, no middleware

A guided wizard, a one-click Salesforce package and a database script your DBA can read. Most teams have their first object syncing the same day, with no Change Data Capture allowance needed.

Safer writes than a plain sync

Picklist values checked against Salesforce before they're sent, conflicts settled by timestamp at the moment of the write, one owner per field, and your automations reviewed before go-live.

Built for apps and AI

Every table explains itself: Salesforce field labels as database comments, a data guide per table, and the rules Salesforce checks on save, so a developer or an AI agent writes the right values first time.

Your data stays yours

Records live in your database, never in RowSync's. Stop a sync and the table and its data stay where they are. Secrets are encrypted and never shown again.

Also syncs with Lightfield

Trying Lightfield? Keep Salesforce while you move.

RowSync can copy your Salesforce records into Lightfield, the AI-native CRM, and then keep the two in sync both ways, so your team can switch at its own pace.

  • A readiness check first: which fields Lightfield still needs before anything is copied
  • A test run on the newest records before the full copy
  • A copy that resumes where it stopped, without duplicates
  • Records that failed, with a reason you can act on
  • Undo: remove the records RowSync copied, in one go
  • Then live, both ways, for each object you choose
AI agent costs

Stop paying per question

Salesforce has said it plans to bill AI agents for reaching into your production org, whether they connect through MCP or the regular API: every successful call a metered "headless platform interaction", paid in Flex Credits. Add users, add agents, ask more questions, and the bill grows with every one.

No meter on reads. Agents query your own Postgres copy. A database doesn't charge per question.

No API limits. Agents never use up your org's daily API allowance or slow down your other integrations.

Fewer keys to your CRM. Agents get a read-only database login, not credentials to your production org.

What could your agents cost in Flex Credits?

Agents calling Salesforce$1,650a month · $19,800 a year
Agents reading RowSync's copy$0in Flex Credits, however many agents ask

An estimate of Flex Credits only, not a quote: Flex Credits at their $500 per 100,000 list price, and example rates for credits per call, since Salesforce hasn't published that rate or a start date yet. RowSync keeps your copy current as a standard integration, not an AI agent, and what you pay for RowSync and your database doesn't grow with each question your agents ask. Sources: Salesforce Ben, Salesforce Hosted MCP Servers.

Plans

Start with one object. Grow into it.

Small business

Your CRM data in a real database, without building or babysitting an integration.

  • Guided setup, start to finish
  • RowSync writes the database setup script for you
  • Start with one object, add more any time
  • 20 short video tutorials in the app
Growing teams

Several orgs, sandboxes and databases, each synced the way that project needs.

  • Everything for small business
  • Admins and members, invited by email
  • One org feeding several databases, one owner per field
  • Sync maps and drift checks across every connection
Enterprise

Your data stays in your database, in your cloud and region, under your controls.

  • Everything for growing teams
  • Bring your own PostgreSQL and your own DBA's script review
  • Certificate-based sign-in for orgs that require it
  • Separate, narrow logins for every downstream app
  • A full log of every change, both directions

Priced for companies that found Heroku Connect and Stacksync too expensive. Tell us about your org and we'll send you a price.

Get started

Your Salesforce data, live in your database today

Tell us about your org and what you'd like to sync. We'll send you a price and set up your workspace with you.

1. Tell us what you'd like to sync or build.
2. We set up your workspace with you.
3. Your first sync is live the same day.