All Collections
API & Webhooks
How to create and configure custom source using Mapsly's Google Sheets connector
How to create and configure custom source using Mapsly's Google Sheets connector

Learn how to easily connect Mapsly with your custom source

Erik avatar
Written by Erik
Updated over a week ago

This guide will help you create and configure a custom data source in Mapsly using Mapsly's connector to Google Sheets and import the initial data set to Mapsly. Then, you may use Mapsly API or Zapier to sync data with Mapsly

Step 1: Sign up for a Mapsly account

If you haven't done it already, sign up for a trial Mapsly account here.

Step 2: Create a Google Spreadsheet describing your data source

Create a new Google Spreadsheet.

2.1. Create sheets, one per object you'd like to import

Add sheets to your spreadsheet, one per object in your external system, and name them:


Here, Label is the visible name of your object, and apiName is the internal name of this object that you will be using in API calls.

For example, if you'd like to sync Leads and Accounts from your IT system to Mapsly, create sheets:


2.2. Export CSV files, one per object, and upload them into these sheets

For each of the objects (tables), you'd like to import to Mapsly, export a CSV file from your IT system and upload it into the sheets.

Make sure the first line in every sheet is the names of your exported fields. If you exported data without the field (column) names, insert a line on top, so data starts from line #2.

2.3. Add field types and API names to all fields

Make sure all your columns are named like this:



  • Label is the visible name of your field that Mapsly users will see in their Mapsly user interface,

  • type is one of the supported field types listed below,

  • apiName is the internal name of the field that you will use in API calls.

IMPORTANT! Column A in every sheet must contain the ID field of the object: a unique value across all records within this object that will serve as a record's identifier in your API calls. If it's currently in another column, move this column to the first place.

Supported field types

  • text

  • integer

  • bigint

  • float

  • boolean

  • datetime

  • date

  • picklist

  • mpicklist

In addition, you can specify the length of your fields, for example:


Picklist and multi-picklist fields


To setup picklist field names you need to use the following format:





To setup multi-picklist field names you need to use the following format:





For values you need to use the following format:


or you can also just use value:


To customize picklist values you need to add column data validation:

You can define criteria as a list from a range where you can select rows in another sheet that will store the values of the picklist:

You can also define criteria as a list of items that need to be separated by coma like this:

Example of Google Sheets Picklist

Lookup fields

To setup lookup field names you need to use the following format:




For values you need to simply use the id of the related object's record. The lookup records must be stored in another sheet and should also have id's.

To setup multi-select lookup field names you need to use the following format:




Example of Google Sheets Lookup

Step 3: Connect to Google Sheets with Mapsly

After your sheet is ready the last step left is that you will need to connect to Google Sheets using your Mapsly account. You can find detailed instructions on how to do that in this article.

Now you're ready to set up data sync using Mapsly API or Zapier.

Common issues & solutions

  • If your column has no label it will not be imported to Mapsly. Consider adding a label that should be in the first row (1:1)

  • In case of having duplicate id only the first record will be imported to Mapsly

  • Columns with duplicate names will be ignored

  • When defining range for picklist field you should not include the first row (e.g. $B$1) in range as it contains the field name

  • In case you want to use Mapsly automation you need to make sure you don't use labels with spaces, and if you do then you should specify the API name for these columns with no spaces.

Did this answer your question?