Home Integrations

Integrations

Connect a CRM, use the Chrome extension, and move data with webhooks.
By Swades Admin
• 3 articles

Connect your CRM

Connecting a CRM means you import contacts without a CSV, and call outcomes are written back where the rest of your team can see them. Open Import Contacts → Connect your data sources from the dialer. Supported systems OAuth connections — Salesforce, GoHighLevel, Zoho, Outreach, Pipedrive, Bitrix24, Odoo. API key connections — HubSpot, Close, Follow Up Boss, Brevo, Apollo. Each has its own dialog. Once connected, the integration shows as Connected with options to Replace API Key, Disconnect, and — where the system supports it — view Connected Subaccounts and Refetch. Importing contacts Every integration has an import path that turns CRM records into a PowerDialer contact list: - Salesforce — import from a list view, fetch by owner, or pull opportunities by owner. Salesforce lists also get Lead Owner and Lead Status as grouping options in the contacts toolbar. - Pipedrive and GoHighLevel — filter, then Refetch … Contacts to pull an updated set. - HubSpot, Zoho, Odoo, Outreach — their own import screens with filters. - Close — choose the pipeline to import from. - Bitrix24 — connect your portal domain, then import contacts or deals. Large imports run in the background. The dialog offers Continue in background so you can keep working. Writing outcomes back What syncs depends on the system. The dispositions map onto CRM states in a fixed way — see What each disposition means for the exact grouping: - Positive, Sold and Meeting Booked sync as connected. - Neutral and Presented No Sale sync as in progress. - Everything in the "no conversation yet" group syncs as an attempted contact. - Wrong Number, Bad Number, Not In Service and Do Not Call sync as unqualified. GoHighLevel sync settings GoHighLevel has the most configurable write-back: - Sync call notes to GHL - Sync recording URL to GHL - Update contact tags based on disposition - Default Pipeline and Default Stage - Sync only these dispositions — pick a subset, or leave empty to sync all Restricting which dispositions sync is worth doing. A CRM that receives every No Answer becomes unreadable. Generic CRM sync For HubSpot and Brevo there is a simpler Configure CRM Sync dialog: choose the provider, paste the access token or API key, and optionally give a HubSpot Portal ID or a Brevo List ID to sync into a specific list. Before you connect Decide which system owns the contact. If contacts flow both ways with no rule about which wins, you will spend your time reconciling duplicates. The usual answer: the CRM owns the contact record, PowerDialer owns the call history. Connect with an account that will still exist next year. OAuth connections made with a departing employee's login break when their account is deactivated. Test with one list first. Import a small list, run a session, and go look at the CRM record. Confirm the notes, the recording link and the status are where you expect before you import fifty thousand contacts.

Last updated on Sep 29, 2026

The Chrome extension

The PowerDialer Chrome extension puts the dialer next to whatever you are already looking at. Install Install PowerDialer.AI from the Chrome Web Store, then sign in with the same account you use at app.powerdialer.ai. What it does Dial from any page. Click the extension's toolbar button and the dialer opens in its own window — not a cramped popup — so it stays visible while you work in another tab. Keypad and contacts. Dial a number directly, or search your contacts. Live call controls. The same call handling as the web app: answer, hang up, notes, dispositions. Session support. Run a dialing session from the extension window. Page integrations. On GoHighLevel and Odoo pages the extension adds call controls into the CRM itself, so a number on the record is clickable. Permissions it asks for The extension requests access to GoHighLevel domains, PowerDialer's own app and API domains, and the browser capabilities it needs to open its window, hold audio and show notifications. It can also request access to other sites — that is what lets click-to-dial work on pages beyond the ones it ships support for. Grant the optional site access only for the sites you actually want to dial from. Audio The extension holds the call audio in a background document, which is why the dialer window can be moved and resized without dropping the call. The same headset advice applies as in the web app — see What you need to run a good session. When to use which | Use | Where | | --- | --- | | A planned session on a list | The web app. Full settings, filters, analytics. | | Calling from a CRM record you are reading | The extension. | | Quick one-off call | Either; the extension is faster. | Do not run a session in both at once. They compete for the same audio device and the same session. Keeping it current The extension updates itself through the Chrome Web Store. If behaviour looks wrong after a platform change, check chrome://extensions for the installed version before reporting it — an old pinned version is the usual explanation.

Last updated on Sep 29, 2026

Webhooks in and out

Webhooks connect PowerDialer to systems that have no built-in integration. Both kinds are managed from the contact list screen. Inbound webhooks — receiving contacts An inbound webhook gives you a URL. Anything that can POST JSON — a form, a lead vendor, Zapier, your own backend — can push contacts into a list. Setting one up 1. Create Webhook. Give it a name and an optional description. 2. Optionally tick Create new list every day, which files each day's arrivals into its own dated list. Useful when you work leads by the day they landed. 3. Copy Webhook URL and give it to the sending system. 4. Send a test payload first. The app is explicit about this: "Before configuring field mappings, you need to send a test webhook request." It gives you a ready-made curl command to copy. 5. Refresh, then map the fields from your sample payload onto PowerDialer's contact fields — the same fields as a CSV import. You cannot map fields you have never sent, which is why the test payload comes first. Send a sample that includes every field you will ever send, not just the required ones. Outbound webhooks — pushing events An outbound webhook posts to a URL you own when something happens in PowerDialer. Setting one up 1. Create Outbound Webhook — name, URL, description, payload format (JSON or form data), and any headers you need, such as an Authorization header. 2. Add one or more triggers: pick the event type, and optionally add event filters so only some events fire. 3. Check delivery history to see what was sent and what came back. Triggers and filters are how you avoid drowning your endpoint. A webhook on every call event from a team of ten at three parallel lines is a lot of traffic; a webhook filtered to Meeting Booked is a handful a day and is actually useful. Practical notes Return a 2xx quickly. Do the work asynchronously on your side; a slow endpoint looks like a failed delivery. Expect repeats. Build your receiver so processing the same event twice is harmless. Protect the inbound URL. Anyone holding it can write contacts into your account. Treat it like a credential — do not paste it into a shared document or a public repository. Watch delivery history after any change on your side. A deploy that changes an endpoint's response will silently stop the flow otherwise.

Last updated on Sep 29, 2026