# Provision Dialpad phone accounts from your BambooHR roster

> See who in your HR system still needs a phone account, provision them in one click, and close out seats for people who already left.

- Workflow type: app
- Services: Dialpad, BambooHR
- Categories: HR & People, Operations
- Published: 2026-08-21

## What it does

- Puts your whole employee roster side by side with your phone system, so you can see at a glance who is missing a phone account and who left but still holds a seat
- Select the new hires you want set up and press Provision. A background assistant creates each account in the office that matches their location, assigns them a number, and adds them to the right mainline
- Reports back person by person with what worked and what did not, saying plainly when someone already has an account or when an office has run out of licenses
- A second tab gives you an audit view of each existing user's caller ID, desk phones, and call center membership, with a Deactivate button for people HR shows as departed

## What you'll need

- A Dialpad account with admin rights to create and remove users
- A BambooHR login that can see the employee directory, including start dates, departments, and office locations
- Spare Dialpad licenses in the offices where you plan to add people

## Prompt

Build me an IT provisioning console for our phone system, so onboarding a new hire stops being a manual crawl through the Dialpad admin UI. It has two tabs: a reconciliation view for provisioning, and an audit view for existing users.

Tab one is the reconciliation table and it is the main thing I open. Load everyone from BambooHR with Get Employee Directory and put them down the left. Load our phone system roster with Dialpad List Users and match the two on work email, case insensitive and trimmed. For each employee also call BambooHR Get Employee to fill in start date, department, and office location, and call Dialpad Get User on matched people to show their assigned number, office, and account state. Every row gets a clear status: Needs a phone account for someone in BambooHR with no Dialpad record, Active for a clean match, Departed but still active for someone BambooHR shows as terminated who still has a live Dialpad account, and No HR record for a Dialpad account with no matching employee. Let me sort and filter by status, department, office location, and start date, and search by name or email. Default the view to upcoming and recent start dates so the people I actually need to provision are at the top. Dialpad returns IDs as numeric strings even though they look like integers, so treat every ID as a string throughout and never coerce it to a number.

Provisioning is always explicit. Rows have checkboxes, and a Provision button acts only on the rows I have selected. Never provision automatically, never on page load, never as a side effect of a filter or a refresh. Selecting rows and pressing Provision is the only path that creates anything, and the button is disabled until at least one row that needs a phone account is selected. Show me a confirmation summarizing exactly who is about to be created and in which office before anything runs.

Provision kicks off a background agent that works through the selected people one at a time. For each person the agent resolves their BambooHR office location to a Dialpad office using Dialpad List Offices and Get Office, creates the account with Dialpad Create User in that office with auto number assignment turned on, and then adds them to the mainline for that office with Dialpad Add Office Operator. The agent writes a result row back into the app for every person as it goes, so I can watch progress rather than waiting for a silent job to finish. Each result records the person, the office chosen, the assigned number, and the outcome.

Render failures specifically, not generically. Dialpad Create User returns 409 when the email already belongs to a user, and 400 when no license is available in that office. Those two cases get their own distinct result states with their own wording: Already has an account with this email, and No license available in this office. Anything else falls back to showing the error message the API returned. A failure on one person never stops the rest of the batch, and I can re-select failed rows and retry them after I have fixed the underlying problem.

Tab two is the audit view, one existing Dialpad user at a time. Pick a user from the roster and show their profile from Dialpad Get User alongside their caller ID configuration from Dialpad Get User Caller ID, every desk phone assigned to them from Dialpad List User Desk Phones, and their call center memberships, which you can determine by walking the call centers for their office with Dialpad List Office Call Centers and checking Dialpad List Call Center Operators for each. Show their BambooHR record next to it, including employment status and last day if they have one, so it is obvious when a live phone seat belongs to someone who has left.

The audit view has a Deactivate action that calls Dialpad Delete User, and it is the second place where an explicit click is mandatory. It requires a confirmation dialog, it is never bulk and never automatic, and the confirmation must state plainly that a removed Dialpad user is recoverable for only 72 hours, after which the record is permanently anonymized and cannot be restored. Make that warning impossible to miss and require the confirm click before anything is deleted. Highlight Deactivate most prominently for people BambooHR shows as departed, but let me review anyone.

Both tabs refresh from the live systems when I open them, and the audit tab is worth opening every week on its own to catch orphaned seats that are still billing us, whether or not anyone gets provisioned that day.

## How to customize

- Adjust the mapping between BambooHR office locations and your Dialpad offices, including which mainline each new hire joins
- Change how departments decide call center or mainline membership for new starters
- Tune the reconciliation table: which columns show, how start dates are sorted, and how far back the departed list reaches

## FAQ

### Will it create phone accounts on its own?

No. Nothing is ever provisioned automatically. The table only shows you the gap between HR and your phone system, and accounts are created only after you tick specific people and press Provision.

### What happens if someone already has a phone account?

That person comes back marked as already having an account rather than as a generic error, so you can skip them and move on. The same is true when an office has no spare licenses, which is shown as its own distinct result.

### Can I undo a deactivation?

Dialpad keeps a removed user recoverable for 72 hours, after which the record is permanently anonymized. The app shows that warning on the confirmation step every single time before anyone is deactivated.

### Does this work if we have offices in more than one city?

Yes. Each new hire is created in the Dialpad office that matches their BambooHR location, and you can adjust the location mapping if your office names do not line up exactly.

### Do I still need my provisioning spreadsheet?

No. The reconciliation view is the spreadsheet, kept current from BambooHR and Dialpad every time you open it, and it is worth opening weekly even if you provision nobody that day.

Use this prompt in General Input: https://www.generalinput.com/prompts/provision-dialpad-phone-accounts-from-your-bamboohr-roster