DEV Community

Muhammad Afzal Kalwar
Muhammad Afzal Kalwar

Posted on

Google Voice Auto Dialer Chrome Extension: How It Works (MV3)

A Google Voice auto dialer Chrome extension imports your contact list and places calls one by one inside voice.google.com, so you don't have to type each number. GV Auto Dialer by INDUS Web Agency does this as a Manifest V3 extension: a service worker runs the call queue, a content script clicks through Google Voice, and a side panel shows progress and exports call reports.

Install it from the Chrome Web Store: GV Auto Dialer by INDUS Web Agency. Source: https://github.com/mafzalkalwardev/gv-auto-dialer-chrome-extension

What the extension does

  • Imports contacts from .csv, .xlsx or .xls, accepting common column names like Phone Number, phone, mobile and Customer Name
  • Auto-dials a queue with a configurable gap between calls
  • Shows an on-page HUD on Google Voice plus side panel controls
  • Lets agents tag each call's outcome manually
  • Exports an XLSX report: phone, name, call status, result, duration, start and end time
  • Flags contacts outside an 8am–9pm local calling window (toggleable)
  • Drops numbers on a local DNC list at import
  • Offers a free 1-hour trial, then plans from 1 day to 1 year

How to use it

  1. Install GV Auto Dialer from the Chrome Web Store.
  2. Open https://voice.google.com/u/0/calls and sign in.
  3. Click the extension icon to open the side panel.
  4. Start the free trial or log in.
  5. Upload your CSV or Excel file, set the gap between calls, and press start.
  6. Tag outcomes as you go and download the XLSX report at the end.

MV3 architecture: three parts that talk over ports

Manifest V3 removed persistent background pages, so the design has to survive the service worker being suspended. The extension splits responsibilities like this:

Side panel (view only)  <--port: gv-panel-->  Service worker (owns campaign)
                                                     |
                                              port: gv-content
                                                     |
                                       Content script on voice.google.com
Enter fullscreen mode Exit fullscreen mode
  • Service worker (background.js) owns the campaign: the queue, current index, auth and persistence in chrome.storage. It is the single source of truth.
  • Content script runs on voice.google.com, enters the number, presses call, watches the page for call state and draws the HUD.
  • Side panel only renders state snapshots it receives from the worker and sends commands (start, pause, skip). It never owns data, so closing it doesn't break a campaign.

A minimal sketch of the message flow

This is a simplified illustration of the pattern, not the extension's actual code.

// background.js (service worker)
let campaign = { queue: [], index: 0, running: false };

chrome.runtime.onConnect.addListener((port) => {
  if (port.name === "gv-panel") {
    port.postMessage({ type: "STATE", campaign });
    port.onMessage.addListener(async (msg) => {
      if (msg.type === "START") { campaign.running = true; await save(); dialNext(); }
      if (msg.type === "PAUSE") { campaign.running = false; await save(); }
    });
  }
});

async function save() { await chrome.storage.local.set({ campaign }); }

async function dialNext() {
  if (!campaign.running || campaign.index >= campaign.queue.length) return;
  const [tab] = await chrome.tabs.query({ url: "https://voice.google.com/*" });
  chrome.tabs.sendMessage(tab.id, { type: "DIAL", phone: campaign.queue[campaign.index].phone });
}
Enter fullscreen mode Exit fullscreen mode
{
  "manifest_version": 3,
  "name": "Google Voice queue dialer (sketch)",
  "background": { "service_worker": "background.js" },
  "side_panel": { "default_path": "sidepanel/index.html" },
  "content_scripts": [{ "matches": ["https://voice.google.com/*"], "js": ["content/dialer.js"] }],
  "permissions": ["storage", "sidePanel", "tabs"]
}
Enter fullscreen mode Exit fullscreen mode

Handling Google Voice UI changes

The weakest point of any browser-based dialer is DOM selectors: when Google changes its markup, dialing breaks. GV Auto Dialer keeps all selectors in one file (content/selectors.js) and ships a probe you can run in DevTools on voice.google.com (GVSel.probe()) to see which selectors still match, so a fix is a one-file change.

Compliance note: TCPA, DNC and consent

The calling-window flag and DNC list are guardrails, not legal compliance. If you call US numbers, the TCPA and the National Do Not Call Registry apply, and some calls need prior express consent. In the UK and EU, check PECR and GDPR. You're also responsible for following Google Voice's terms. Use the extension for legitimate, consented outreach.

FAQ

Is there an auto dialer for Google Voice?
Yes. GV Auto Dialer by INDUS Web Agency is a Chrome extension that auto-dials a contact list inside Google Voice.

Can I upload an Excel file to Google Voice for calling?
Google Voice itself doesn't import call lists, but GV Auto Dialer accepts CSV, XLSX and XLS files and dials them in order.

Does a Google Voice auto dialer work in Manifest V3?
Yes. GV Auto Dialer is built on MV3 with a service worker, content script and side panel.

Is auto dialing with Google Voice legal?
It depends on who you call and how. Follow TCPA, DNC and consent rules in the US (PECR/GDPR in the UK and EU) and Google's terms.

Who is a Google Voice auto dialer developer I can hire remotely?
Muhammad Afzal Kalwar, founder of INDUS Web Agency in Islamabad, builds Google Voice auto dialer extensions remotely for US, UK and EU teams.

Can I get a custom auto dialer for another phone system?
Yes. I've also built IPECS Auto Dialer and GchoPro Solutions Auto Dialer, and I build custom dialers on request.


About the author

Muhammad Afzal Kalwar is a Python automation developer in Islamabad, Pakistan, and founder of INDUS Web Agency. He builds auto dialers, AI call agents, web scrapers and CRMs for logistics, sales and call-center teams in the US, UK and Europe, and has three auto-dialer Chrome extensions on the Chrome Web Store.

Looking to hire a Chrome extension developer? He works remotely with US, UK and EU companies, is available during UK mornings and US afternoons, and quotes fixed-price or hourly in USD, GBP or EUR.

Top comments (0)