A lightweight, open-source Chrome extension that detects phone numbers in Google Sheets, sends them to Google Voice, and starts the call automatically.
Features · Installation · Usage · Development · Contributing
Sheets to Voice streamlines calling workflows for teams that keep contact lists in Google Sheets. Select a cell containing a phone number and the extension will:
- Detect and normalize the number.
- Find an open Google Voice tab.
- Place the number in the Google Voice dialer.
- Click the available Call button.
The extension runs entirely in your browser. There is no server, account database, analytics service, or external API key.
Important: Google Voice must be open and signed in before dialing. The extension automates the Google Voice web interface; it does not provide phone service or bypass Google Voice requirements.
- Single-click dialing — select a phone-number cell in Google Sheets to begin.
- Flexible number detection — supports plain and commonly formatted numbers, including
+1 (555) 123-4567. - Google Voice handoff — sends the detected number to an existing Google Voice tab.
- Automatic call action — clicks the Google Voice call control after the number is inserted.
- Connection recovery — reconnect content scripts from the popup when a tab needs to be refreshed.
- Resilient page handling — retries while Sheets or Voice finishes rendering dynamic UI elements.
- Lightweight and local — vanilla JavaScript, no build step, no backend, and no runtime dependencies.
- Google Chrome or another Chromium-based browser with Manifest V3 support.
- An active Google account with access to:
- A Google Sheet containing phone numbers with 10–15 digits, optionally prefixed with
+.
-
Clone the repository:
git clone https://github.com/abmdevx/1tapdial.git cd 1tapdial -
Open
chrome://extensionsin Chrome. -
Enable Developer mode in the top-right corner.
-
Select Load unpacked.
-
Choose the cloned
1tapdialdirectory. -
Pin Sheets to Voice from the Extensions menu for quick access.
- Open the repository on GitHub.
- Select Code → Download ZIP.
- Extract the archive.
- Follow steps 2–5 above and select the extracted directory.
When the source changes, return to
chrome://extensionsand click the extension’s Reload button.
- Open Google Voice in a browser tab and sign in.
- Open a Google Sheet containing phone numbers.
- Click a cell containing a phone number.
- The extension detects the number and sends it to Google Voice.
- Google Voice fills the dialer and starts the call.
If the extension stops responding after a navigation or browser update:
- Open the extension popup.
- Click Reconnect.
- Confirm that the Google Voice tab and the Google Sheets tab are still open.
The extension can recognize values such as:
5551234567
+15551234567
(555) 123-4567
+1 (555) 123-4567
555-123-4567
Only values that resolve to 10–15 digits are sent to Google Voice.
Google Sheets
│
│ Select a cell / update formula bar
▼
content-sheets.js
│ Extract, normalize, and de-duplicate number
▼
background.js
│ Find Google Voice tab and inject content script
▼
content-voice.js
│ Fill dialer and click Call
▼
Google Voice
| File | Purpose |
|---|---|
manifest.json |
Chrome Manifest V3 configuration, permissions, matches, and entry points |
background.js |
Service worker for tab discovery, script injection, messaging, and reconnects |
content-sheets.js |
Reads selected Sheets cells/formula bar values and extracts phone numbers |
content-voice.js |
Finds the Google Voice dialer and triggers the call action |
popup.html |
Extension popup markup and usage guidance |
popup.css |
Popup layout and visual styling |
popup.js |
Popup reconnect action |
assets/ |
Extension icons, product screenshots, and the README’s phone-outgoing illustration |
assets/demo.gif |
Product demonstration |
The extension requests only the permissions needed for its workflow:
| Permission | Why it is used |
|---|---|
activeTab |
Work with the currently active browser tab |
tabs |
Find open Google Sheets and Google Voice tabs |
scripting |
Reconnect or inject the extension’s content scripts |
alarms |
Periodically keep supported tabs connected |
Host access is limited to:
https://docs.google.com/*https://voice.google.com/*
Sheets to Voice does not:
- Upload sheet contents or phone numbers to a server.
- Store contacts, call history, or personal data.
- Use advertising, tracking, or analytics services.
- Require an API key or a separate account.
The extension reads a selected value only to identify a phone number and pass it to the open Google Voice page. Review the source before installing any unpacked extension, and use it only with data you are authorized to access.
This project is intentionally dependency-free. No package installation or build command is required.
git clone https://github.com/abmdevx/1tapdial.git
cd 1tapdialTo test a change:
- Load the repository as an unpacked extension.
- Open
chrome://extensions. - Click Reload after each source change.
- Test with both an open Google Sheets tab and an open Google Voice tab.
- Use the extension service worker’s Inspect views link and the browser DevTools console for debug messages.
The source currently logs diagnostic messages to the console while the extension is running. This is useful during development and can be reduced before a production release.
- Google Voice must be open, signed in, and available in a browser tab.
- Google Sheets and Google Voice can change their internal DOM and accessibility labels, which may require selector updates.
- Calls are subject to Google Voice availability, account permissions, browser permissions, and regional restrictions.
- The extension is designed for phone numbers containing 10–15 digits; short extensions and arbitrary identifiers are ignored.
- This repository does not currently include an automated test suite.
Contributions are welcome.
-
Fork the repository.
-
Create a focused branch:
git checkout -b improve-number-detection
-
Make and manually test your change in Chrome.
-
Keep permissions narrow and avoid sending user data outside the browser.
-
Open a pull request with:
- What changed and why.
- How the change was tested.
- Screenshots or a short recording for UI changes.
Please avoid committing credentials, real customer phone numbers, or private spreadsheet data.
This project is available under the MIT License.
The phone-outgoing illustration is provided as an SVG asset in assets/phone-outgoing-svgrepo-com.svg. See the asset’s upstream attribution and licensing details before redistributing modified artwork.
Sheets to Voice is an independent open-source project and is not affiliated with, sponsored by, or endorsed by Google, Google Sheets, or Google Voice. Use it responsibly and in accordance with the terms and policies that apply to your Google account and calling activity.

