skip to content
Back to homeSign up

Leads from a Google Sheet

Connect the Google Sheet your ads write leads into, set what each column becomes, and see each lead arrive as a contact within minutes.

Version 1.4 · Last updated ·

How it works

Some ad tools write each new lead into a Google Sheet: Meta Lead Ads does, for one. Connect that sheet here, and every new row arrives in your Contacts within minutes, ready to be answered by your agent or your team.

  • Your sheet stays private. Nothing is shared or published.
  • A small script that we write for you goes into the sheet, in your own Google account. It sends the sheet’s new rows to your workspace, signed, so that nobody else can send rows in its name.
  • The script only reads the sheet. It never changes it.
  • You decide what each column becomes. Nothing is guessed.

Open it from Integrations, on the Google Sheets card, or go straight to it.

Add a sheet

  1. Under add a Google Sheet, give the sheet a Name.

    What you call it here, for example the ad campaign it is for.

  2. Press Write the script.

    The script for your sheet appears, under put the script in your sheet.

  3. Press Copy the script.

    The script holds your sheet’s secret, and it is shown this once. If you lose it, New secret and script writes a new one.

  4. In Google Sheets, open your sheet, then Extensions and Apps Script.

  5. Delete what is in the editor, paste the script, and save.

  6. Choose install in the list at the top, and press Run.

    Google asks you to allow it: it reads this spreadsheet and sends its rows to your workspace.

  7. Back in xconversions, press Done, it’s in the sheet.

    The sheet’s card says waiting for the sheet until the script has run, then shows its columns.

Set what each column becomes

Rows wait until you say what each column becomes. Press Set the columns on the sheet’s card. Each column of your sheet has a list:

On the screenWhat it does
NameThe contact’s name.
Phone numberThe contact’s WhatsApp number. One column must be this: a row with no number is skipped.
EmailThe contact’s email address.
Lead dateThe day the lead came in. A date is read day first, or as year, month and day.
A fieldOne of the contact’s fields: type its name in Field name. Tick and as a tag to make the value a tag as well.
A tagThe column’s value becomes a tag on the contact.
NothingThe column is not kept.

The columns’ names suggest a choice for each, in English, Spanish, French and Arabic. Check them: only what you save counts.

On the screenWhat it does
Tags on every contactTags to put on every contact from this sheet, separated by commas.
Country of numbers written without oneThe country a number belongs to when the sheet writes it without its country code.
Time zone of the sheet’s datesThe time zone the sheet’s dates are written in.

Press Save the columns. Rows that were waiting are taken at once.

What arrives in your contacts

  • A new number becomes a new contact, with what the columns give.
  • A number you already have completes that contact: only its empty details are filled in, and tags are added. Nothing you or your team wrote is changed.
  • The contact says where it came from: the Google Sheets lead source, its name and the day.
  • A contact from a sheet may be messaged. Somebody who asked you to stop stays stopped.
  • A row the sheet sends twice adds nothing the second time.

A sheet’s card

Each sheet has a card: its name, the spreadsheet and the tab it reads, and what it is doing, in words.

On the screenWhat it does
receiving leadsWorking: new rows arrive by themselves.
waiting for the sheetThe script has not run in the sheet yet.
pausedYou paused it. Nothing is taken, and the sheet keeps its rows for when you resume.
a run didn’t go throughSome rows could not be taken. We have been told. Press Try again once it is fixed.
paused: not included in your planYour plan does not include Google Sheets now. The rows wait in the sheet, and arrive once it does.

Under it, what the sheet brought in: added, completed, already here and skipped, when it last sent rows, and when the script last checked in.

  • When your sheet’s columns change, its rows wait and the card says so. Set the columns again.
  • When a newer script is available, the card says so: New secret and script gives it to you. Paste it in place of the old one and run install again.
  • Rows that were skipped, or taken without something, are listed under the card with the day, the row, the phone and why: no phone number, a number that does not exist, an email that is not an address, a date that does not read as a day.

Pause, renew or delete a sheet

On the screenWhat it does
PauseStops taking rows. The sheet keeps them, and sends them when you press Resume.
New secret and scriptMakes a new secret. The script in the sheet stops at once, until you paste the new script and run install again. Use it if the script may have been seen by somebody else.
DeleteThe sheet stops sending. The contacts it brought in stay, with their tags and fields.

When something goes wrong

The script checks in several times a day. If a sheet goes quiet for a day, the workspace’s owner is emailed, once, and again when it is back. When more than half of a run’s rows are skipped, the owner is emailed too, once, until the columns are saved again.

Good to know

  • Who can do this: your workspace’s admins.
  • Google Sheets comes with some plans. Without it, the screen says so, with the way to the plans.
  • The rows a sheet sends are kept only until they are taken.
  • Every change is written in the activity log.

Questions

Does the sheet have to be shared or public?

No. It stays private in your Google account. The script sends its rows from inside it.

Will rows already in the sheet be sent?

The script sends every row it has not sent yet. They arrive once you have set the columns.

Can I connect several sheets?

Yes. Add each one: each has its own script and its own columns.

A lead has no phone number. What happens?

The row is skipped, and listed under the card with the reason.

Still stuck?

A person on our team answers. In the app, open the help button in the corner of any screen. From here, write to us.