PostgreSQL data in Dixa

Show PostgreSQL customer data inside Dixa conversations, queried live whenever an agent opens a conversation. No ETL, no sync lag, no code.

Dixa conversation showing a Custom Card with customer data queried live from a PostgreSQL database
The FactBranch Custom Card shows customer details fetched from a live Postgres query every time an agent opens the conversation — no sync, no stale data.

PostgreSQL is where a lot of product-led companies keep the data that matters to support: customer accounts, subscriptions, orders, usage, feature flags, internal notes. Dixa doesn't know about any of that by default, so agents end up tab-switching to an internal admin or a database client, searching by email or ID, and pasting the answer back into the conversation. A minute here, two minutes there. On a busy shift that adds up to hours.

Ready to show PostgreSQL data in your Dixa tickets?

14-day free trial · No credit card required · Live in 10 minutes

FactBranch fixes that by running a live PostgreSQL query every time a Dixa conversation is opened, and rendering the result as a Custom Card alongside the conversation. The agent sees the data they need without leaving Dixa.

How it works

FactBranch is a visual pipeline builder, not an ETL tool. There's no data warehouse in the middle, no sync schedule to tune, no copies of customer records sitting in a third-party database. The flow is simple: Dixa passes the conversation context (requester email, conversation ID, and anything else you want) to FactBranch via a Custom Card webhook. FactBranch runs your SQL query against your own PostgreSQL database, using the conversation context as parameters. The results are rendered into an HTML Card you design, and displayed inside Dixa next to the conversation.

Each step is a node in the visual editor. You write one SQL query and one HTML template. Everything else — the Dixa integration, the parameter passing, the connection pool, the rendering — FactBranch handles.

Connecting to PostgreSQL

You add your PostgreSQL connection once: hostname, database, credentials. FactBranch recommends a dedicated read-only user for this — a Postgres role with SELECT on only the tables you want to expose. If your database is behind a firewall, FactBranch can route requests through a static IP so you can safely allowlist us.

Connecting FactBranch to your PostgreSQL database

Writing the query

You write the query directly against your own PostgreSQL database. Conversation context is available as variables you can reference inline: email address, conversation ID, anything else Dixa sends through. Run the query against your live database from the editor to see results before you hook it up to the Custom Card.

Writing a SQL query against your PostgreSQL database, with Dixa conversation context as variables

What you show is up to you. A typical SaaS support team might surface the customer's current plan, MRR, and trial state; their most recent invoice and payment status; open tickets or incidents linked to their account; the last few API calls or deploys. E-commerce teams show recent orders, fulfilment status, and lifetime value. Internal-tool teams show permissions and recent activity. If you can write it as a SQL query, you can put it in the Dixa Custom Card.

Designing the Custom Card

Once your query returns results, FactBranch pipes them into a display node where you design the Dixa Card. There's a "Generate a UI" button that produces a working HTML template from the shape of your query results — a sensible starting point you can then edit. You can tweak the template directly, add conditionals for empty or edge-case data, and style it with CSS. The templating language is Jinja2-compatible, so loops and filters work the way you'd expect.

The FactBranch display node: generating a Dixa Custom Card from PostgreSQL query results

Keeping it safe

Your PostgreSQL database stays where it is. FactBranch connects out to it with a dedicated read-only user — we recommend creating a Postgres role for FactBranch with the minimum privileges it needs, usually SELECT on the specific tables you want to expose. If your database is behind a firewall, FactBranch can route requests through a static IP so you can safely allowlist us. For extra isolation, run queries against a read replica instead of your primary — the integration works the same way.

Credentials are stored encrypted. We don't cache query results by default, so every conversation gets a fresh read; there's no stale data to worry about, and no long-lived copies of your data in our systems.

Setup

Most teams are live in about 15 minutes. Create a free FactBranch account, add a PostgreSQL connection with read-only credentials, write the SQL query you want the Card to run, and design the Card layout in the display node. The final step is adding the FactBranch Custom Card URL in your Dixa settings — agents see the Card on the next conversation they open.

See the full walkthrough in our Dixa Custom Card documentation or watch a support agent use the sidebar in practice.

Ready to show PostgreSQL data in your Dixa tickets?

14-day free trial · No credit card required · Live in 10 minutes

Show PostgreSQL data in other tools

Show other data in Dixa