This guide shows how to integrate Google Sheets with Grinfi using Google Apps Script, so that each new row added to your spreadsheet creates or updates a lead in a specific Grinfi list — no manual input needed.
🔗 What You’ll Need
Grinfi API Key
List UUID (list_uuid) – the Grinfi list where the lead should be added
A Google Sheet with columns like:
First Name
Last Name
LinkedIn ID or Profile URL
Email
📘 Full API documentation is available here:
📄 Example Sheet Structure
First Name | Last Name | LinkedIn ID | |
John | Doe | john-doe-123456 |
⚙️ Setting Up Google Apps Script
Open your Google Sheet
Go to Extensions → Apps Script
Replace the contents with the following code (and insert your actual API key and list UUID):
const GRINFI_API_KEY = 'Bearer YOUR_API_KEY';
const LIST_UUID = 'YOUR_LIST_UUID';
function onEdit(e) {
const sheet = e.source.getActiveSheet();
const editedRow = e.range.getRow();
if (editedRow !== sheet.getLastRow()) return;
const row = sheet.getRange(editedRow, 1, 1, 4).getValues()[0];
const [firstName, lastName, linkedinId, email] = row;
if (!linkedinId) return;
const payload = {
lead: {
linkedin_id: linkedinId,
first_name: firstName,
last_name: lastName,
email: email
},
list_uuid: LIST_UUID,
update_if_exists: true,
move_to_list: true
};
const options = {
method: 'POST',
headers: {
'Authorization': GRINFI_API_KEY,
'Content-Type': 'application/json'
},
payload: JSON.stringify(payload),
muteHttpExceptions: true
};
const url = 'https://leadgen.grinfi.io/leads/api/leads/upsert';
const response = UrlFetchApp.fetch(url, options);
Logger.log(response.getContentText());
}
🔄 How It Works
Every time a new row is added to your Google Sheet, the script triggers and sends the data to Grinfi.
If the lead already exists — it is updated.
If it’s new — it is created and added to the specified list.
📝 Notes
The linkedin_id field is required.
You can expand the payload to include more fields like company_name, position, or location if your sheet has them.
💬 Need Help?
Check out the Grinfi API docs or contact our support team — we’re happy to help.