npx -y -p @dench.com/cli dench <command>, or dench <command>
if installed globally.
CRM
objects, fields, entries, cells, query
Integrations
apps, tool status/connect/run
Memory
search, save
Browser
actions, Playwright sessions
Billing
status, topup, upgrade
API
the HTTP equivalent
Sign In
Context
CRM
task object, with shortcuts:
Comments
Threaded comments on a record;[@Name](/?member=<userId>) mentions notify,
--dench summons the agent into the thread.
Analytics
The dashboard above every object table — same math the UI draws. See Analytics.Meetings
Meetings aremeeting CRM records (create/update/delete with dench crm entries … meeting). These verbs reach the transcript, action items and
attendance beside the record, and import many calls at once.
A meeting is private by default. You can read one if you own it, if you were
on the invite, or if it has been shared with the workspace — and that is the
same rule for the record, its transcript, its action items and its roster.
dench meetings share is how a meeting is opened to the team; the default
for your new meetings is your own setting (Settings → Personal → Meetings →
My new meetings).
Members
Profiles, presence, and what each teammate is doing.<userId|email> accepts either.
Notifications
Dench Integrations
dench integrations lists every connected app: apps from the catalog plus the
Gmail, Outlook, Calendar and LinkedIn accounts Dench connects itself. Each row
carries source (app or dench) — only app rows have a
connectedAccountId to pass to dench tool run --account.
(For the App Store — installing and publishing apps — see dench apps.)
Memory
Browser
Chat
Routines
dench routine and dench routines are aliases for dench cron.
Outreach Campaigns
Email and LinkedIn steps sent to a list of people on one schedule, from a brief to a launch.<campaign> is an id or an exact name. Confirm dench campaign help
lists draft, search, add, steps, person and preview. Needs a
workspace member’s credentials (dench signin), a paid workspace for searches
and connected sender accounts.
builder is the app’s New campaign flow for signal and lookalike campaigns:
save the source, audience, signals and terms, build the first people, write the
sequence, choose senders, schedule and approval, then create the campaign.
sources manages a live campaign’s signals: run searches now (Run now),
pending, approve and reject handle people waiting for approval, and
queue shows who goes out today.
A search costs 1 cent per person returned and prints the most a call can cost
before it runs. add --people-file adds the searched people without searching
again (up to 300 per file, in batches of 50); --not-industries, --not-titles,
--not-domains and the other --not-<filter> flags leave values out of a
search. A campaign holds at most 300 people: duplicate copies the steps,
schedule and senders into a new draft with no people, and the next page of the
search goes into the copy.
steps.json is a JSON array of steps (email, wait, linkedin_visit,
linkedin_connection, linkedin_message). steps set replaces every step and
works while the campaign is a draft; it refuses a field the step would drop and
{TOKEN} with single braces (write {{TOKEN}}). steps edit changes the text
and waits of a launched campaign in place and keeps every step’s type and order.
--window takes "<days> <start>-<end>", e.g. "Mon-Fri 9-18" or
"Mon,Wed,Fri 10-16", and may repeat. A bare --start / --end date is
midnight in the campaign’s timezone. launch --check never launches: it prints
each blocker in plain words with the command that fixes it and exits 1 when the
campaign is blocked; launch runs the same check and then launches. get
shows the funnel, what is being sent now, what comes next and why anything is
holding. personalize sets up to 5 AI-written lines (about 3 cents a person)
used as {{key}} in steps; preview shows the exact messages one person gets.
Outreach needs a workspace member’s credentials; an organization-only API key
cannot run it.
Sender pools are configured once with --email-mailboxes and
--linkedin-accounts (up to 50 ids per channel, comma-separated or a JSON
array). Omit to preserve existing settings; none or '[]' clears a pool.
These map to emailMailboxAccountIds / linkedinAccountIds in the API. Steps
in a pool campaign omit sender ids; legacy step senders are kept until
conversion. Only accessible accounts may be selected, launch validates
availability, and existing conversations keep their assigned sender.
dench campaign accounts --json lists email and LinkedIn senders with local
ids and display labels, never provider credentials. Discovery follows the
acting member’s permissions: their private accounts plus teammates’ shared
connections. LinkedIn rows include linkedinAccountId, availability,
remainingToday (invites/messages/profiles) and remainingInvitesThisWeek.
Today’s invites also respect the weekly cap. Counts are account-local usage
snapshots before queued work and campaign limits; launch/dispatch revalidate.
For API clients, GET $DENCH_API_BASE/campaigns/accounts/linkedin returns the same LinkedIn
summaries using a member-bound API key or agent session.
Files
Search And Images
--category people and --category company return structured entity data.
They do not return email addresses or phone numbers. Domain filters work for
company search but are refused for people search. Published-date filters are
refused for both entity categories because the search does not apply them reliably.
Dench Web
Page reads, brand kits, sitemaps, crawls, screenshots, and structured extracts. Prefer these over writing your own scraper. Search staysdench search. dench context is workspace orientation, not this.
Billing
Sessions
Agent Config
Reusable setups and credentials
dench memory stores knowledge. It does not persist installed dependencies or API keys.