The multi-client problem
Agencies run the same enrichment workflows across 10, 20, 50 clients. Each client has different provider contracts, different billing, different ICP criteria. When tools bundle clients into a single workspace, billing and API keys can become tangled.
How Deepline handles multi-client operations
Per-client workspaces
Each client gets their own workspace with isolated:
- Provider API keys (their Apollo, their Hunter, their sequencer)
- Postgres database (their enriched records, exportable)
- Billing (provider costs pass through to their account)
Reproducible workflows
Every client campaign is a shell command. Check it into git, change configurations per client, and deploy the same workflow with one Claude Code prompt.
Claude Code creates the org and deploys:
# Create a new organization in the dashboard at /settings/organizations,
# then switch the CLI to it:
deepline auth switch client-x
deepline enrich --input target-companies.csv --output prospects.csv \
--with-waterfall email \
--with 'apollo=apollo_people_match:...'
deepline enrich --input prospects.csv \
--with '{"alias":"push","tool":"instantly_add_to_campaign","payload":{"campaign_id":"q2-outbound","leads":[{"email":"{{email}}","first_name":"{{first_name}}","last_name":"{{last_name}}"}]}}'
Copy workflows across clients
Copy the same workflow to a new client with one command. Switch workspaces and run. Configurations and API keys are isolated.
deepline auth switch client-y
deepline enrich --input target-companies.csv --output prospects.csv \
--with-waterfall email \
--with 'apollo=apollo_people_match:...'
Monitor all clients from one view
See run history, credits used, and workflow status across all client workspaces from a single dashboard.
deepline auth orgs
# → client-x
# → client-y
# → client-z
# Per-org credit usage and active workflows are visible in the dashboard at /settings/organizations
Client isolation model
| What | How it works |
|---|---|
| API keys | Stored in client workspace. Never shared across clients. |
| Data | Dedicated Postgres per client. Export, query, or wire a dashboard. |
| Billing | BYOK: client pays providers directly. Managed: credits billed to client workspace. |
| Workflows | Shell commands. Save in git. Hand off when engagement ends. |
Who uses this
| Role | What they do with Deepline |
|---|---|
| Agency founder | Manage enrichment costs across multiple clients |
| Campaign operator | Spin up and tear down client campaigns weekly |
| White-label provider | Keep client data and billing fully isolated |
Cost structure
BYOK mode: Client pays providers directly. You pay $0 platform fee.
Managed credits: $0.10/credit. Bill clients for credits used plus your margin.
Get started
curl -s "https://code.deepline.com/api/v2/cli/install" | bash
deepline auth register
# Create a new organization in the dashboard at /settings/organizations,
# then switch to it: deepline auth switch <org-slug>
Common questions
Frequently Asked Questions
1Can clients see each other's data?+
No. Workspaces are fully isolated. No shared API keys, no shared databases.
2Can I white-label this?+
Yes. Deepline does not appear in client-facing outputs. Shell commands look like your tooling.
3How do I hand off to a client?+
Export the workflow as a shell script. Client can run it themselves or you can deploy it as a scheduled workflow.
Try this yourself
Install the CLI and run this use case in under 5 minutes.