Перейти до основного контенту

Автоматичне додавання контактів з Google Таблиць до Grinfi

Автор: Kate Korol

Ця інструкція допоможе вам налаштувати базову інтеграцію між Google Sheets та Grinfi за допомогою Google Apps Script. Після налаштування дані нових контактів будуть автоматично передаватися до обраного списку в Grinfi одразу після додавання нового рядка в таблицю.

Передумови налаштування

Для успішного налаштування вам знадобляться:

  • API-ключ Grinfi.

  • UUID ліста: Унікальний ідентифікатор списку в системі, куди будуть зберігатися нові контакти.

  • Підготовлена Google Таблиця: Створений документ із відповідними стовпцями для введення даних: Імʼя, Прізвище, LinkedIn ID (або URL), Email тощо.

Додатково: ознайомтеся з повною документацією API Grinfi.

🟡 Примітка: Google Apps Script має ліміти: до 90 хвилин виконання на день (безкоштовний акаунт) або 6 годин (Workspace). Для масового імпорту (>100 лідів за раз) краще використовуйте CSV-імпорт у Grinfi.

Крок 1. Підготовка структури таблиці

Для коректної роботи скрипта:

  • Створюйте імʼя колонки у таблиці тільки у першому рядку

  • Присвоюйте назви колонкам в точності з наведеним списком нижче (англійською мовою, з дотриманням пробілів і великих літер)

  • Колонка "LinkedIn ID" - обовʼязкова, у неї додавайте посилання на LinkedIn-профіль контакта, або його ID.

  • Інші колонки не обовʼязкові до використання і заповнення, додавайте їх за необхідності

Список заголовків та їх значення:

Назва колонки у таблиці

Значення

First Name

Ім'я контакту

Last Name

Прізвище контакту

LinkedIn ID

LinkedIn URL/ID (обов'язкове поле)

Email

Електронна пошта

Company

Назва компанії

Position

Посада

Website

Домен компанії

Headline

Заголовок профілю

Location

Місцезнаходження

Приклад заповнення таблиці

First Name

Last Name

LinkedIn ID

Email

John

Doe

john-doe-123456


Крок 2. Налаштування Google Apps Script

  1. Створіть Grinfi API Key за цим посиланням.

  2. Знайдіть UUID ліста, у який будуть імпортуватись контакти (перейдіть на вкладку CRM → Lists, навпроти назви необхідного ліста натисніть "..." → Copy List ID)

  3. Відкрийте вашу Google Таблицю.

  4. Присвойте аркушу назву "Leads" (при використанні іншої назви аркушу - у наведеному нижче коді, в рядку var SHEET_NAME = 'Leads'; зазначте коректну назву аркушу замість Leads)

  5. На панелі інструментів перейдіть до меню Розширення (Extensions) → Apps Script.

  6. Вставте наведений нижче фрагмент коду, замінивши значення YOUR_API_KEY та YOUR_LIST_UUID на ваші актуальні дані.

    var GRINFI_API_KEY = 'Bearer YOUR_API_KEY';
    var LIST_UUID = 'YOUR_LIST_UUID';
    var SHEET_NAME = 'Leads';

    var FIELD_MAP = {
    'First Name': 'first_name',
    'Last Name': 'last_name',
    'LinkedIn ID': 'linkedin_id',
    'Email': 'email',
    'Company': 'company_name',
    'Position': 'position',
    'Website': 'domain',
    'Headline': 'headline',
    'Location': 'raw_address'
    };

    function sendLeadToGrinfi(e) {
    var sheet = e.source.getActiveSheet();

    if (sheet.getName() !== SHEET_NAME) return;

    var editedRow = e.range.getRow();

    if (editedRow <= 1) return;

    if (editedRow !== sheet.getLastRow()) return;

    var lastCol = sheet.getLastColumn();
    var headers = sheet.getRange(1, 1, 1, lastCol).getValues()[0];

    var values = sheet.getRange(editedRow, 1, 1, lastCol).getValues()[0];

    var lead = {};
    for (var i = 0; i < headers.length; i++) {
    var header = headers[i].toString().trim();
    var apiField = FIELD_MAP[header];
    if (apiField && values[i]) {
    lead[apiField] = values[i].toString().trim();
    }
    }

    if (!lead.linkedin_id) return;

    var payload = {
    lead: lead,
    list_uuid: LIST_UUID,
    update_if_exists: true,
    move_to_list: true
    };

    var options = {
    method: 'POST',
    headers: {
    'Authorization': GRINFI_API_KEY,
    'Content-Type': 'application/json'
    },
    payload: JSON.stringify(payload),
    muteHttpExceptions: true
    };

    var response = UrlFetchApp.fetch(
    'https://leadgen.grinfi.io/leads/api/leads/upsert',
    options
    );

    Logger.log('Row ' + editedRow + ': ' + response.getContentText());
    }

Крок 3. Налаштуйте тригер

Щоб скрипт автоматично відправляв дані при додаванні нового рядка до таблиці (зокрема й при вставці з інших джерел), необхідно налаштувати тригер:

1. В Apps Script відкрийте меню зліва: Triggers

2. Натисніть "+ Add Trigger"

3. Оберіть:

Function: sendLeadToGrinfi

• Event source: From spreadsheet

• Event type: On edit

4. Натисніть Save

5. Дозвольте доступ до Google Sheets (з'явиться вікно авторизації)

Крок 4. Перевірте роботу скрипта

1. Перейдіть у таблицю

2. Додайте новий рядок з даними (обов'язково заповніть стовпець LinkedIn ID)

3. Зачекайте 2–5 секунд

4. Відкрийте Grinfi → відповідний ліст, перевірте чи у списку зʼявився вказаний у таблиці контакт

Якщо контакт не з'явився:

• В Apps Script відкрийте Execution log та перевірте помилки

• Перевірте правильність: API-ключа, UUID ліста, назву аркуша

Як це працює (технічно)

1. При додаванні нового рядка спрацьовує встановлений тригер

2. Скрипт перевіряє: це правильний лист? це новий рядок? є LinkedIn ID?

3. Скрипт читає назви колонок із рядка 1 і за таблицею маппінгу (FIELD_MAP) знаходить відповідні поля API

4. Відправляє запит на Grinfi API (Якщо такого контакту немає - скрипт його створить, якщо він вже існує - оновить дані та перемістить у вказаний ліст)

5. Контакт з'являється у вказаному списку

Ви отримали відповідь на своє запитання?