New: give any agent a live, governed query engine over your data, no warehouse required.Get started
Nightshift

Nightshift for Financial Services

Answers across every entity and ledger, in one ask.

Your revenue, billing, CRM, and GL live in different systems and different entities. Connect them once: finance teams and their agents query the whole stack live, with no warehouse to stand up, sensitive columns masked behind governed views, and agents granted read, never write.

views/gl_emea.sqlview
-- gl_emea: EMEA entities only, sensitive columns masked or dropped
create view gl_emea as
select entity, account, amount,
md5(customer_contact) as customer_contact -- masked
from general_ledger
where entity in ('EMEA-1', 'EMEA-2'); -- employee_comp not selected
grantrevops-agent → gl_emea · read

See it work

Reconcile across the stack, in one ask.

Watch an agent connect Nightshift over MCP, then reconcile a $3.1M billed-vs-collected gap across Stripe, Snowflake, Salesforce, and Workday, governed down to the row.

Identity-aware, end to end

The same request, different data back.

Each team is granted its own governed view, so the same question returns only their entities, and neither sees employee comp. Access follows the identity, not a shared service account.

request recognized revenue for your entities
controller-emea@globex.comEMEA
AccountEntityRevenue
NorthwindEMEA-1$24.0M
GlobexEMEA-2$11.2M
InitechEMEA-1$8.4M
controller-amer@globex.comAmericas
AccountEntityRevenue
AcmeAMER-1$52.0M
StarkAMER-2$30.1M
WayneAMER-1$9.2M

What agents do

Finance copilots, scoped to the books.

Reconcile the close

Tie billed, recognized, and collected across the warehouse, CRM, and GL, then rank the gap by account, scoped to the entities a controller owns.

Brief the board

Pull revenue, margin, and cash across every entity into a first-draft review, with customer and employee PII masked behind the view.

Chase the cash

Find unapplied cash and aging receivables across billing and the ledger, scoped to a region, never another entity’s books.

One catalog over the stack

The warehouse, CRM, billing, and the ledger, governed as one.

Point Nightshift at Snowflake, Salesforce, Workday, and Stripe, and it exposes a single governed catalog. Query it live where it lives, or ingest into your own store for speed: either way agents read through governed views, scoped down to the row.

  • Query live in view mode, or ingest into your own governed store
  • Governed views mask columns and scope rows before the agent reads
  • Agents get read grants, so they can query but never post
Governed catalog4 sources
DWdwh.snowflakewarehouse3.8kGoverned
CRcrm.salesforce3.1M rows1.7kGoverned
GLgl.workday1.4M rows640Governed
BIbilling.stripelive2.4kGoverned
One governed catalog · query live or ingest

Entity boundaries

The walls hold by default.

Each finance team is granted only its own entities, and sensitive columns like employee comp stay out of the view. The boundary is the view and the grant, so an agent only ever reads the books its user owns.

EMEA FinanceRegion A

Reads its own entities

EMEA-1EMEA-2EMEA-3

Americas books walled off

Boundary
Americas FinanceRegion B

Reads its own entities

AMER-1AMER-2AMER-3

EMEA books walled off

Cross-entity books and employee comp never cross the wall. Every attempt to read across it is denied and logged.

For the audit

Every request is on the record.

Access logstreams to your SIEM
controller-emea@globex.comgl.workdayselect entity = EMEA-1allowed
revops-agentdwh.snowflakeselect recognized revenueallowed
fpa-agentcrm.salesforceselect, contacts maskedmasked
analyst-samgl.workdayselect employee_compdenied
close-agentgl.workdayinsert journal entrydenied

Questions finance and audit ask

What controllership wants to know.

Is a second copy of sensitive financial data created?
It does not have to be. In view mode Nightshift queries the warehouse, CRM, and GL where they live, so no new store of revenue or customer data is created. If you ingest for speed, that copy stays in your own governed store, and every read is logged either way.
How granular is access?
As granular as a view. A governed view selects the columns and rows an audience should see, hashing or dropping the rest, and the agent is granted read on that view. A controller sees their entities; employee comp stays out of the view entirely.
Can agents change the ledger?
Not unless you grant it. Access is a read or write grant on a table or view, and an agent gets read, so it can query the books but never post to them. Write stays with the people who hold it.

Put an agent on your finance stack, under policy.

Start free, connect your warehouse, CRM, or GL, and watch governed, row-level reads reach your agent in minutes.

Want to look first? Take the product tour