# Script Dialpad from any terminal with Dialpad CLI

A single command line for calls, messages, meetings, users, and AI—built for scripts, pipelines, and real workflows.

Dialpad CLI brings Dialpad into scripts, pipelines, and workflows—so you can automate what used to be clicks.

### Turn clicks into commands

Everything you can do in Dialpad, in one command. Automate provisioning, routing, and analytics—without the clicks.

### Automate and integrate anywhere

Use Dialpad CLI in scripts, cron jobs, CI pipelines, and internal tools. Pipe Dialpad into Slack, Teams, your warehouse, webhooks, and whatever you build next.

### Full platform coverage

Calls, messages, meetings, users, AI, billing, analytics, routing, and more. Dialpad CLI covers 100% of Dialpad's public APIs with the same auth and scopes.

### Built for Ops and Platform teams

Not a thin API wrapper—an opinionated toolkit that reflects how Dialpad actually gets used. Fast for day-to-day tasks. Flexible enough for automation.

### CI/CD and security ready

Stable exit codes. JSON output. Headless auth. Scoped OAuth tokens. Built for pipelines—and the security review that follows.

## Three ways to build with Dialpad CLI

Command lines were built for automation. Dialpad CLI brings that model to business communications.

### Automate admin work

Turn repetitive setup and maintenance into reusable scripts.

- Bulk provision users from CSV
- Sync teams and deprovision users
- Apply routing, IVR, and AI settings
- Re-run safely with dry-run and idempotent workflows

```bash
$ dialpad users:bulk-create --from team.csv
Provisioning 47 users...
✓ 47 created · 0 errors

$ dialpad routing:apply sales --config ivr.json --dry-run
← 3 changes queued · run --confirm to apply

$ dialpad users:deprovision --filter dept=eng
← 12 users matched · run --confirm to apply
```

### Build communication-aware workflows

Use Dialpad events, transcripts, and outputs inside broader automations.

- Stream calls and transcripts into scripts
- Post summaries to Slack
- Route calls based on CRM state
- Trigger follow-up workflows from live interactions

```bash
$ dialpad calls:stream --on ended \
| jq '.summary' \
| slack post --channel #ops
← streaming call events...
← call_9f2b ended
← ✓ Summary posted to #ops

$ dialpad calls:transcripts get cl_a4c1
← { "action_items": ["Send pricing deck"] }
```

### Run Dialpad in pipelines

Bring Dialpad into CI/CD, cron jobs, and machine workflows.

- JSON-first output
- Stable exit codes
- GitHub Action support
- Headless auth for non-interactive environments

```yaml
# .github/workflows/onboarding.yml
- name: Provision new hire
  run: |
    dialpad users:create \
    --email $NEW_HIRE_EMAIL \
    --team platform
  env:
    DIALPAD_TOKEN: '${{ secrets.DIALPAD_TOKEN }}'
# exit 0 on success · JSON output piped to next step
```

## FAQs

### What is Dialpad CLI?

### What can I do with Dialpad CLI?

### How do I use Dialpad CLI in scripts, cron jobs, and CI/CD pipelines?

### How does authentication work in Dialpad CLI?

```bash
dialpad -- zsh
$ dialpad calls:list --limit 5 --format table
ID       DATE       DURATION  DIRECTION STATUS
─────────────────────────────────────────────────────
cl_9f2b  Jan 15   4:32     inbound   completed
cl_a4c1  Jan 15   12:18    outbound  completed
cl_b7d3  Jan 15   1:05     inbound   missed
cl_c9e2  Jan 14   8:44     outbound  completed
cl_d1f5  Jan 14   22:01    inbound   completed

$ dialpad calls:transcripts get cl_a4c1
{
  "call_id": "cl_a4c1",
  "duration": 738,
  "summary": "Discussed Q4 pricing and enterprise options.",
  "action_items": [
    "Send pricing deck by Friday",
    "Schedule follow-up with procurement"
  ],
  "sentiment": "positive"
}

$ dialpad users:bulk-create --from onboarding.csv
Provisioning 47 users...
✓ 47 created · 0 errors · 2 skipped (already exist)

$ dialpad routing:apply sales --config ivr.json --dry-run
← Parsing ivr.json...
← 3 changes queued:
~ queue timeout: 30s → 45s
+ overflow_group: tier2-support
~ greeting: updated to v3
← run without --dry-run to apply

$ dialpad ai:summaries list --date today
3 summaries · Jan 15
cl_9f2b "Onboarding call — set up SSO, reviewed admin roles."
cl_a4c1 "Enterprise pricing discussion — send deck by Friday."
cl_c9e2 "Support escalation resolved — follow-up ticket closed."
$ ▌
```

## Put Dialpad on autopilot

Run calls, messaging, routing, and analytics from your workflows—not the UI.
