Workspaces & products
One account can own several businesses. Each business activity has its own site, ads, leads, and money for ads.
Tenant = workspace = product
In BenjiAds, business, tenant, workspace, and product refer to the same unit. The MCP tools call it a business (business_id); some API fields and headers use workspace or tenantId.
For example, Alex Plumbing is one workspace with the plumber vertical. Alex Landscaping is another workspace with the landscaper vertical, even if Alex owns both.
Alex's account
├── Alex Plumbing · workspace A · vertical: plumber
│ ├── Website and lead-capture funnel
│ ├── Leads and performance
│ ├── Money for ads
│ └── Campaigns, creatives, locations, and connections
└── Alex Landscaping · workspace B · vertical: landscaper
└── Its own site, leads, and money for adsWhat belongs to what?
| Concept | Meaning | Example |
|---|---|---|
| Account | The signed-in owner | Alex |
| Workspace / tenant / product | One business activity operated in BenjiAds | Alex Plumbing |
| Vertical | The trade template and its configured rules | plumber |
| Location / service area | Where this business works | Austin, TX |
| Site | The workspace's public website and funnel | alex-plumbing.benjiads.com |
| Campaign | Advertising prepared for that workspace | A plumbing campaign targeting its service areas |
| API key / OAuth connection | Access to all of the account's businesses (default), or pinned to one | An assistant that runs both of Alex's businesses |
A vertical is a template, not a shared customer account. Two plumbers have separate businesses. Their sites, leads, and money for ads stay separate.
Multiple locations
A workspace can have multiple locations or service areas for the same business activity. A location is not automatically a new workspace. For location ad packs, the daily budget is divided across the selected locations; it is not multiplied by their count.
State-specific requirements are evaluated from the workspace's selected locations. Read licenses and restrictions before targeting more than one state.
Ownership and authorization
Every integration connection belongs to one owner account and carries explicit permissions. By default it covers all of that account's businesses, including ones created later with setup_business; the owner can pin it to one business instead.
Each request operates on one business: pass business_id (MCP) or the x-workspace header (REST). With exactly one business it can be omitted. With several and no selection, the request fails with business_required and lists them; BenjiAds never chooses one. With none, no_business means: call setup_business first. Resource IDs are resolved inside the selected business; a campaign or job ID from another business cannot be used to access it, and a pinned connection cannot reach another business (business_not_found).
Money boundaries
BenjiAds is free. No subscription, no credit card. You only pay for your ads. The money for ads belongs to each business; integration request counters are separate from it and are never billed.