Answers for the people running the phones
Setting up a workspace, pushing the app to phones through Google Workspace or your MDM, what the board and the numbers mean, and what to check when something looks wrong. Open a question to expand it. If the answer is not here, send us a message.
Getting started
A workspace is your company's own Callboard: a private database, a web address, and logins for the people who run the phones.
How do I create a workspace
Go to Start a trial, enter your company name, choose a workspace address (the part before the dot, for example northside), then your name, work email, password, time zone and the plan to trial. Creating the private database takes 5 to 40 seconds. You land on the workspace as its owner.
The workspace address becomes your team's sign-in page and the address the phones report to. It cannot be changed later, so pick something short and obvious.
How do I invite the team
Under Team, add the people who need access. Owners can do everything including billing. Managers run the day to day: phones, leads, reports, settings. Viewers are read-only. Reps do not need accounts; their phones report on their behalf.
How do I create an enrolment code
Open Phones and create an enrolment code with Use set to Whole fleet. One code enrols every phone. You can revoke it and issue a new one at any time without affecting phones that are already enrolled. Single-use codes exist for a test handset.
How does the app get onto the phones
The app is an Android app delivered through managed Google Play. Your Google Workspace admin or your MDM installs it as a forced install and hands it the workspace address and the enrolment code. Reps install nothing. The full steps are in the next section and on the Deploy page.
How do I name the phones
As each phone enrols it appears on the Phones page with its hardware model and a green last-seen time. Give each one the rep's name so the live board and reports read as people, not handsets.
Deploying phones
Phones must be company-owned and fully managed Android. On a personal phone with a work profile the app cannot see calls from the personal dialler, which is where normal calls land, so the board stays empty.
How do I deploy through Google Workspace
- Admin console: Devices, Mobile and endpoints, Settings, Android. Confirm Android advanced management is on and the organisation is connected to managed Google Play.
- Send us your managed Google Play Organisation ID (shown on the managed Play page under Android settings). We add it to the private app; until then the app is invisible to you.
- Apps, Web and mobile apps, Add app, Search for Android apps. Search for Callboard, select it, choose the organisational unit the sales phones sit in, and set Access to Force install.
- On the app's page, create a managed configuration with the keys below and assign it to the same organisational unit.
- Pre-grant the runtime permissions (below), then wait for devices to sync. That can take up to 24 hours, or use Sync now on the handset.
What are the managed configuration keys
server_url: your workspace address including https, for examplehttps://northside.callboardmdm.com. Shown on the Phones page.enrolment_code: the fleet code from the Phones page.tracked_sim_slots:0to track the first SIM only, or blank for every SIM. Use0on dual-SIM phones so personal calls stay out.heartbeat_minutes: optional, default 5, allowed 1 to 60. Leave it unless asked.
How do I pre-grant permissions
The app needs the Phone and Call logs permissions, and Notifications on Android 13 and later. In Workspace, set them to Grant automatically for Callboard under Android settings, Apps and data sharing, Runtime permissions (or on the app's own Permissions tab; the menu has moved between console versions). Without this each rep opens the app once and taps Allow call access.
Workspace does not expose a per-app battery exemption. On stock Android the rep taps Keep running in the background once in the app. On Samsung fleets, Knox settings or the phone's Never sleeping apps list does the same job.
Does it work with Intune, Knox and other MDMs
Yes. Any Android Enterprise MDM follows the same shape: add the app from managed Google Play (or upload the APK as a line-of-business app), assign it as required to the fully managed device group, and set the managed configuration with the same four keys through an app configuration policy. Intune and Knox can also pre-grant the runtime permissions and, on Samsung, exempt the app from battery management, which is the most reliable setup.
Can we sideload if managed Play is not an option
If your organisation cannot use managed Google Play, an MDM that installs APKs directly (Intune line-of-business, Knox internal app) can push the same signed build. Sideloaded builds do not update themselves; the MDM pushes each new version. Google Workspace itself cannot sideload, and installing by hand on each handset with Play Protect warnings is not something we recommend for a fleet.
How do I test on one phone without an MDM
Install the app, open it, tap Allow call access, enter the workspace address and an enrolment code from the Phones page, then tap Enrol this phone. The status screen shows the workspace host, heartbeat interval and last heartbeat, queued and rejected counts, last upload and the app version.
The live board explained
One tile per rep, updated live without refreshing. The tile's colour and label tell you the phone's current call state and whether the phone itself is reachable.
What do the tile states mean
- Idle: no call in progress. The label shows how long since the last state change.
- Ringing (lime): an incoming call is ringing, with a running timer.
- On call (black): the line is off-hook, with a running timer. For outgoing calls this includes dialling time; that is how Android reports it.
Calls appear on the board within seconds of the phone reporting. Finished calls arrive as call history rows and show in Calls and the reports.
What does Not seen mean
Every phone checks in every 5 minutes. When the last check-in is older than the stale threshold (15 minutes by default, changeable under Settings) the tile turns red and reads Not seen with the age. It means the phone is off, has no network, or the app has been stopped. An empty tile is never mistaken for a quiet one.
What does Stale state mean
If a phone has reported on-call for more than 4 hours without a hang-up, the board treats it as idle and marks the tile Stale state in yellow. It usually means the app was stopped mid-call and could not send the hang-up. The app re-sends its real state whenever it restarts, which clears it.
How does Waiting for a call back work
Missed and declined calls today that nobody has returned yet, one line per number. Any rep on any phone calling the number back clears it. Numbers are matched on a one-way hash, so it works even when full numbers are not stored.
Reports and metrics
Today, Yesterday, Last 7 days and custom ranges, per rep and for the team. Every figure counts only calls on tracked SIMs and ignores numbers you have excluded in Settings.
What do calls, talk time, incoming, outgoing, missed and declined count
Calls is the total number of call history rows in the range. Talk time is the sum of call durations. Incoming and outgoing are split by direction. Missed is an incoming call that rang out; declined is one the rep dismissed. Some reports fold declined into missed and say so in the footnote.
How are working hours calculated
For each rep and each local day in the range, the time between their first call and their last call, summed over the range. It is a proxy for the working day. It is not a timesheet and not shift tracking: a rep who makes one call at 9:00 and one at 17:00 shows 8:00 regardless of what happened in between.
What is Never returned
Distinct numbers that missed or declined a call in the range and were never followed up: no later outgoing call to that number, and no later incoming call from it that connected. It counts numbers, not calls, so three missed calls from the same client count once.
What is Not picked up
Distinct numbers the rep dialled in the range where no call to or from that number connected in the same range. It shows who is trying to reach clients and not getting through.
What is Unique callers
Distinct phone numbers seen in the range, in either direction, counted by their hash.
How does the daily email work
Under Settings you can nominate recipients for a daily summary sent after 07:00 in the workspace time zone. It is skipped silently if outbound email has not been set up on the platform.
Leads
A lead list keyed on phone numbers, so a missed call from a new number can become a lead in one step. Included on plans with Leads, or as an add-on.
What is a lead
A number, an optional name, a status, a source and notes, plus the rep it is assigned to. Because leads are matched on the number, every call to or from that number is linked to the lead automatically, and the call history shows on the lead.
Where do leads come from
Create them by hand from the Leads page, or through the API. If a CRM connector is enabled, lead changes are pushed to the CRM through the same queue as calls, and most connectors can open a new lead in the CRM from a missed call.
Why is Leads greyed out in the sidebar
The plan does not include it. Open Plan and billing to move plans or add it as an add-on; it switches on immediately.
Integrations
Connectors push calls and leads into your CRM through a queue that retries, so a CRM outage delays delivery rather than losing it. Webhooks and API keys cover everything else.
Which CRMs are supported and what gets written
- Salesforce: each call becomes a Task on the matching Contact or Lead, found by phone number.
- HubSpot: calls are logged as call engagements against the contact with that number.
- Zoho CRM: calls are written to the Calls module and linked to the matching contact or lead.
- Pipedrive: calls become completed call activities on the person with that number and their open deal.
- Microsoft Dynamics 365: calls become phone call activities on the matching contact.
- NetSuite: calls are recorded as phone call activities against the customer or contact.
Each connector is switched on from the Integrations page and gated by the matching add-on. Credentials are encrypted at rest and only ever reported as set or not set. The sync log on the Integrations page shows each push, its result, and a link to the record where the CRM gives one.
How do webhooks work
Add an HTTPS endpoint and choose the events: call.created and device.state. Each request carries X-Callboard-Event, X-Callboard-Timestamp (unix seconds) and X-Callboard-Signature, a signature over the timestamp and body computed with the endpoint's secret. Check the signature and reject old timestamps to stop replays. Zapier, Make and custom receivers all work. Repeated failures are counted and shown next to the endpoint.
How do API keys work
Issue bearer tokens from the Integrations page for /api/v1/*: calls, devices, leads, reports, stats and me. Keys carry read or write scope, are shown once at creation, are stored only as a hash, and can be revoked at any time. Requests go to your own workspace address, so a key can never reach another workspace.
Billing
Per phone, per month, in AUD excluding GST. A phone counts from the day it enrols until the day it is removed.
How does the trial work
Every plan starts with a free trial for up to 3 phones. No card is needed during the trial. Add one from Plan and billing before it ends to keep the workspace open. Current trial lengths and prices are on the Pricing page.
How are phones counted
The seat count is the number of enrolled phones that have not been removed. When a phone enrols or is removed, the subscription quantity updates automatically. Removing a phone stops its billing from that day.
How do add-ons work
Leads, CRM connectors, the API and webhooks, sheets export and extra storage are add-ons priced per phone, per workspace or per unit as shown on the Pricing page. Turn them on from Plan and billing; they take effect immediately.
Can a larger fleet pay by invoice
Yes. Larger customers can be set up on prepaid invoicing instead of a card: an agreed number of phones for a period, invoiced up front. The workspace stays open while the paid-through date is in the future. After it passes there is a 7-day read-only grace period before the workspace is paused. Ask through the contact form with the topic set to Billing.
What happens if a payment fails
The workspace goes read-only with a banner explaining why. Phones keep reporting and no call data is lost during the dispute. If it is not resolved the workspace is paused: enrolment and reporting stop and the app on each phone shows Workspace paused until it is restored.
Privacy and compliance
Each workspace has its own database, kept in your region. The app reads the handset, not the network, and collects call history only. The Security page has the full picture.
Do we have to tell staff (NSW and ACT)
Yes. The Workplace Surveillance Act 2005 (NSW) and the Workplace Privacy Act 2011 (ACT) require written notice to staff at least 14 days before monitoring starts. Serve the notice before the forced install lands on the phones. Have HR or legal handle it; other states and territories have their own rules, and Callboard shows the one for your state during setup.
How are phone numbers stored
Numbers are stored as a one-way hash with a key unique to your workspace, so a call back can be matched, plus the last three digits for display. A workspace can choose to store full numbers, and should only do so once the staff notice covers it.
What is not collected
No call audio, no contacts, no SMS, no location, no files, no photos, no microphone. The phone shows a persistent notification while the app is reporting so the rep always knows it is running.
How do I remove a phone or close a workspace
Removing a phone on the Phones page revokes its token immediately; it cannot re-enrol with the fleet code until restored. Closing a workspace stops everything and the database is removed after 30 days. Ask us for an export first if you need one.
Troubleshooting
Most problems are one of these. Check the Phones page first: it shows when each phone was last seen and the app version it is running.
A phone shows Not seen
- The phone is off, in flight mode or has no data. It catches up as soon as it reconnects; nothing is lost.
- The app was force-stopped or the maker's battery manager killed it. Open the app once; on stock Android tap Keep running in the background, on Samsung add it to Never sleeping apps.
- The app was uninstalled or the device left the managed organisational unit. Check the MDM.
No calls are appearing
- The phone is enrolled on a work profile, not fully managed. Calls from the personal dialler are invisible to the app.
- The Call logs permission was not granted. Open the app and tap Allow call access, or pre-grant it in the MDM.
- The number is on the excluded list in Settings.
- SIM filtering is dropping everything (see dual SIM below).
Dual-SIM phones show nothing
tracked_sim_slots set to 0 tracks the first SIM only. Some handsets do not record which SIM a call used, and on those the filter drops every call. If the board is empty on a dual-SIM fleet, set the key to blank to track every SIM and revisit the staff notice.
Samsung, Oppo, Xiaomi and other aggressive battery managers
Live state depends on the app staying in the foreground. Some makers stop background apps hard. Even when the service is killed, a backstop job still uploads call history rows and a check-in every 15 minutes, so history is complete; only the live tile goes stale. The Keep running in the background exemption, or the maker's own allow list, is what makes the live view reliable.
The app shows an enrolment code error
The app shows the message; the code is what the workspace returned.
invalid_code: the code is wrong, expired, revoked or used up. Create a new fleet code on the Phones page and update the managed configuration.revoked: this phone was removed on the Phones page. Restore it there before enrolling again.seat_limit_reached: every phone seat on a prepaid plan is in use. Ask your administrator to add seats.workspace_locked: the workspace is paused or read-only, usually for billing. Open Plan and billing.rate_limited: too many enrolment attempts from one connection in 10 minutes. Wait and retry.
The board says a rep is on a call but they are not
The app missed the hang-up, usually because it was stopped mid-call. The tile clears when the phone next reports its state, and after 4 hours the board treats it as idle regardless. Opening the app on the phone forces a fresh state report.
What do rejected and queued counts on the phone mean
Queued means events waiting to upload, normal while offline. Rejected means the workspace refused individual events (for example a malformed row); the rest of the batch still goes through. A growing rejected count is worth a message to us with the workspace address and the app version.
Send us the details and we will look
Include the workspace address, the phone model, the app version from the status screen, and what you expected to see. We reply within one business day, Sydney time.