Primitives
What you actually get
| Attribute | Value |
|---|---|
| Database type | PostgreSQL (Neon serverless) |
| Data ownership | Customer-owned, customer-accessible |
| Query access | Standard SQL via any Postgres client (psql, DBeaver, Metabase) |
| Data persisted | Every enrichment call, every provider response |
| Export formats | CSV, SQL queries, pg_dump (full database export) |
| Export fees | $0 |
| Isolation | Dedicated Neon project per tenant |
| Schemas | Managed ingestion schemas plus custom tables (dl_ingest, dl_meta, dl_catalog, provider schemas like hubspot/salesforce/attio, tenant_custom) |
| Retention | Unlimited (your database, no auto-deletion) |
Meaning
What this means for you
If you're searching for "enrichment tool with database"
Every enrichment call persists automatically. Execute writes land in enrichments.enrichments and synced providers materialize current-state tables like hubspot.companies. You get queryable history plus clean reporting tables without writing persistence code. Connect Metabase or Grafana for dashboards. Run pg_dump to take everything with you.
If you're searching for "data enrichment audit trail"
Full provenance for every record. The enrichments.enrichments table stores enrichment writes with timestamps, payloads, and status metadata, while provider raw records and materialized tables stay queryable in the same database. This matters for compliance, for debugging bad data, and for comparing provider accuracy over time.
If you're searching for "GTM data warehouse"
Join enrichment data with CRM exports, analytics tables, or custom datasets. The tenant_custom schema gives you full DDL privileges: create your own tables, indexes, and views alongside your enrichment data. Standard PostgreSQL means any tool that speaks SQL works.
Honest: not ideal for
If you only need one-off lookups piped straight into a CRM or spreadsheet, you may never touch the database directly. The CLI and API return results inline. The database becomes valuable when you build on top of enrichment data over time.
Schema
A simple mental model
Execute writes land in enrichments.enrichments, provider syncs materialize clean tables in schemas like hubspot and salesforce, and your custom joins live in tenant_custom.
enrichmentsEnrichment event logThe canonical enrichment event stream. Execute writes land in enrichments.enrichments.
dl_ingestSync controlPlatform-managed sync and ingestion control tables.
hubspot / salesforce / attioMaterialized provider tablesQueryable current-state tables materialized from sync runs. This is the primary reporting surface.
dl_metaSettingsPlatform-managed metadata for the ingestion plane.
Examples
What SQL access lets you do
Find all synced HubSpot companies
SELECT id, name, domain, industry, updated_at FROM hubspot.companies WHERE domain = 'stripe.com' ORDER BY updated_at DESC;
Email verification rate by provider
SELECT doc->>'source_provider' AS provider,
COUNT(*) AS total,
COUNT(*) FILTER (WHERE doc->>'email_status' = 'valid') AS verified,
ROUND(100.0 * COUNT(*) FILTER (WHERE doc->>'email_status' = 'valid') / COUNT(*), 1) AS pct
FROM dl_cache.enrichment_event
GROUP BY 1 ORDER BY pct DESC;Export synced contacts to CSV
\copy ( SELECT firstname, lastname, email, company FROM hubspot.contacts ) TO 'contacts.csv' WITH CSV HEADER
Join enrichment data with your own segments
SELECT c.firstname AS name,
c.email AS email,
s.segment, s.score
FROM hubspot.contacts c
JOIN tenant_custom.account_segments s
ON s.company_domain = c.company_domain
WHERE s.segment = 'enterprise'
ORDER BY s.score DESC;Comparison
Data ownership comparison
Where does your enrichment data actually live?
| Feature | Deepline | Clay | Apollo | ZoomInfo |
|---|---|---|---|---|
| Included database | Neon PostgreSQL (dedicated project) | None | None | None |
| Direct SQL access | Any Postgres client (psql, DBeaver, Metabase) | No, UI-only | No, API with rate limits | No, UI + limited API |
| Export cost | $0 (pg_dump, COPY TO) | CSV download only | Export credits (limited per tier) | Export credits (limited per contract) |
| Data isolation | Dedicated Neon project per tenant | Shared platform | Shared platform | Shared platform |
| Custom tables | Full DDL in tenant_custom schema | No | No | No |
| BI tool connection | Direct Postgres connection | No direct connection | No direct connection | No direct connection |
FAQ
Common questions
Is the database really free?+
Yes. Every Deepline workspace includes a dedicated Neon PostgreSQL project at no additional cost. There are no storage fees, no export fees, and no per-query charges from Deepline. Neon's serverless architecture scales storage automatically.
Can I connect Metabase, Looker, or Grafana directly?+
Yes. Request a read connection URI via the API and configure your BI tool with the host, port, database, username, and password. SSL is required. Query provider materialized tables like hubspot.companies and hubspot.contacts, plus enrichments.enrichments for event-level history.
Is my data shared with other tenants?+
No. Each workspace gets a dedicated Neon project with separate compute, separate storage, and separate connection endpoints. There is no row-level security or shared-schema multi-tenancy.
Can I create my own tables?+
Yes, in the tenant_custom schema. The override role has full DDL and DML privileges there. Create tables, indexes, functions, and views alongside your enrichment data. The managed schemas are platform-managed and should not be modified directly.
What happens if I leave Deepline?+
Run pg_dump against your Neon project and take everything with you. There are no export restrictions, no lock-in period, and no fees. Your data is standard PostgreSQL; it works anywhere Postgres runs.
Install the CLI and keep your data in Postgres
Run your first enrichment and inspect the resolved records directly from SQL.