← Atpakaļ uz rakstiem

Beidz zaudēt līdus - automatizē Facebook un TikTok Lead Ads ar n8n

Šajā rakstā iziesim cauri kā var automatizēt Facebook (Meta) un TikTok Lead Ads līdus, lai tie vairs nepazustu Ads Managerī vai CSV failos, bet uzreiz nonāktu vienā vietā, piemēram, Google Sheets (un, ja vajag, vēlāk arī CRM). Iziesim cauri tehniskajiem soļiem un atsķirībai starp facebook(meta) un tiktok līdu ievākšanai.

9 min lasīšanaRR Network
Automatizācijafacebook adsmeta adstiktok adsn8nzapierlīdu ievākšana

Tu maksā par katru klikšķi, par katru iespaidu, par katru līdu. Bet cik no tiem līdiem patiešām nonāk pie tava pārdošanas speciālista laikā, kamēr klients vēl ir ieinteresēts?

Ja atbilde ir "ne visi", tad šis raksts ir tev.

Kas ir n8n un kāpēc tas ir aktuāls tieši šobrīd

n8n (izrunā "n-eight-n") ir atvērtā koda automatizācijas platforma, kas ļauj savienot jebkuras aplikācijas un API vizuālā darba vidē, bez nepieciešamības rakstīt pilnu kodu no nulles. Platforma strādā uz "mezglu" (node) principa: katrs mezgls veic vienu darbību (API pieprasījums, datu transformācija, nosacījuma pārbaude), un tu tos savieno secīgā plūsmā.

Pēdējo divu gadu laikā n8n ir kļuvis par vienu no populārākajiem automatizācijas rīkiem Eiropā. Kopiena ir pārsniegusi 200 000 lietotāju, platformā ir pieejami vairāk nekā 400 iebūvēti savienojumi, un workflow bibliotēkā ir vairāk nekā 2600 gatavu veidņu tikai mārketinga kategorijai vien.

Galvenā priekšrocība salīdzinājumā ar Zapier vai Make: n8n var uzstādīt uz savas infrastruktūras (self-hosted). Tas nozīmē, ka tavi dati paliek tavā serverī, kas ir būtiski ES un Baltijas uzņēmumiem, kas strādā ar GDPR. Turklāt n8n self-hosted versijā nav ierobežojumu pēc izpildīto darbplūsmu skaita - tu maksā par serveri, nevis par katru izpildi.

Problēma: līdi, kas pazūd starp platformu un pārdošanu

Iedomājies situāciju. Tavs uzņēmums palaiž Facebook un TikTok reklāmas kampaņas ar Lead Ads formām. Līdi sāk ienākt. Bet tad:

  1. Kādam no komandas ir jāielogojas Meta Ads Manager vai TikTok Ads platformā
  2. Jālejupielādē CSV fails ar jaunajiem līdiem
  3. Jāsakārto dati (lauku nosaukumi atšķiras starp formām un valodām)
  4. Jāiekopē dati Google Sheets vai CRM sistēmā
  5. Jāpaziņo pārdošanas komandai

Tas notiek reizi dienā, ja paveicas. Pa to laiku klients jau ir aizmirsis, ka viņš aizpildīja formu, vai arī viņam jau ir piezvanījis konkurents.

Ja strādā sales, tad zini, ka sazināšanās ar līdu pirmo 5 minūšu laikā krietni uzlabo iespēju, ka potenciālais klients atbildēs. Ar 20-50 līdiem dienā un vairākām formām dažādās valodās (latviešu, angļu, krievu) manuālā pieeja vienkārši nestrādā.

Risinājums: automatizē līdu uztveršanu, normalizē datus, un nogādā tos tavas komandas darba tabulā vai CRM sistēmā automātiski.

Divas platformas, divi pieejas veidi


Pirms sākam būvēt, ir svarīgi saprast vienu fundamentālu atšķirību starp Facebook un TikTok - kā no tiem var izgūt info par jauniem līdiem.

Facebook Lead Ads: reāllaika webhook

Facebook izmanto webhook pieeju. Tas nozīmē, ka brīdī, kad lietotājs aizpilda Lead Ads formu, Facebook nosūta HTTP pieprasījumu uz tavu serveri ar informāciju par jauno līdu. Tavs n8n workflow saņem šo paziņojumu un nekavējoties apstrādā datus.

Praksē tas izskatās šādi: līds aizpilda formu → Facebook nosūta webhook → n8n saņem notikumu → izsauc Graph API, lai iegūtu pilnus datus → ieraksta Google Sheets. Viss process aizņem dažas sekundes.

TikTok Lead Ads: regulāra aptauja (polling)

TikTok (vismaz šobrīd) nenodrošina webhook funkcionalitāti līdu formām. Tā vietā tev ir regulāri jāsūta pieprasījumi uz TikTok Business API, katru reizi pārbaudot, vai no iedotā saraksta nav kāds jauns līds parādījies.

Praksē: n8n workflow izpildās ik pēc noteikta intervāla (piemēram, 5 minūtes) → izsauc TikTok API → saņem līdu sarakstu → filtrē jau apstrādātos → ieraksta jaunos Google Sheets.

Ko tas maina?

Šīs atšķirības dēļ abas darbplūsmas izskatīsies nedaudz atšķirīgi:

  • Facebook: "webhooks" aktivizējas ar katru jaunu līdu automātiski, diezgan vienkārši.
  • TikTok: tev ir nepieciešama deduplikācijas loģika (lai neapstrādātu to pašu līdu divas reizes) un jāizvēlas aptaujas intervāls.

Abas plūsmas beidzas vienādi — dati nonāk tavā Google Sheets vai CRM. Bet ceļš ir atšķirīgs, un to ir svarīgi saprast pirms sāc būvēt.

Facebook Lead Ads → Google Sheets Darbplūsma

Priekšnosacījumi:

  • n8n instance (self-hosted vai cloud versija)
  • Facebook lapa ar administratora tiesībām
  • Facebook Developer konts
  • Google konts ar Google Sheets piekļuvi

1. solis: Izveido Facebook App

  1. Atver developers.facebook.com un piesakies ar savu Facebook kontu.
  1. Noklikšķini "My Apps""Create App".
  1. Izvēlies "Other" kā lietošanas gadījumu, tad "Business" kā aplikācijas tipu.
  1. Ievadi aplikācijas nosaukumu (piemēram, "Mana Lead Ads automatizācija") un kontaktēpastu.
  1. Kad aplikācija ir izveidota, kreisajā panelī atrodi "Add Product" un pievieno "Webhooks".
  1. Tajā pašā panelī pievieno arī "Facebook Login" — tas būs nepieciešams piekļuves tokena iegūšanai.

2. solis: Iegūsti piekļuves tokenu

Tev ir nepieciešams ilgtermiņa (long-lived) piekļuves tokens ar šādām atļaujām:

  • pages_show_list
  • pages_manage_ads
  • leads_retrieval
  • pages_read_engagement

Kā to izdarīt:

  1. Atver Graph API Explorer (developers.facebook.com/tools/explorer).
  2. Augšējā labajā stūrī izvēlies savu aplikāciju.
  3. Noklikšķini "Generate Access Token" un piešķir nepieciešamās atļaujas.
  4. Iegūto tokenu apmaini pret ilgtermiņa tokenu, izmantojot šādu URL:
https://graph.facebook.com/v24.0/oauth/access_token?grant_type=fb_exchange_token&client_id={APP_ID}&client_secret={APP_SECRET}&fb_exchange_token={SHORT_LIVED_TOKEN}
  1. Pēc tam iegūsti lapas tokenu:
https://graph.facebook.com/v24.0/me/accounts?access_token={LONG_LIVED_TOKEN}

Saglabā lapas piekļuves tokenu jo tas būs nepieciešams n8n darbplūsmā.

3. solis: Uzstādi Webhook mezglu iekš n8n

  1. n8n redaktorā izveido jaunu darbplūsmu.
  2. Pievieno Webhook mezglu ar šādiem iestatījumiem:
  • HTTP Method: POST un GET (ieslēdz "Multiple Methods"), tā opcija ir pieejama iekšā mezgla "settings"
  • Path: facebook-leads (vai cits nosaukums pēc izvēles)
  • Response Mode: "Respond to Webhook Node" (svarīgi jo Facebook gaidīs specifisku atbildi pēc pirmā izsaukuma)
  1. Saglabā darbplūsmu un kopē Webhook URL (Production URL, ne Test URL).

4. solis: Reģistrē Webhook Facebook platformā

  1. Atgriezies Facebook Developer portālā, savā aplikācijā.
  2. Atver Webhooks sadaļu.
  3. Izvēlies objektu "Page" un noklikšķini "Subscribe".
  4. Ievadi:
  • Callback URL: tavs n8n Webhook Production URL
  • Verify Token: jebkāda teksta virkne, ko tu pats izvēlies (piemēram, mans_verifikacijas_tokens)
  1. Facebook nosūtīs GET pieprasījumu uz tavu Webhook ar hub.verify_token parametru. Tev ir jāatgriež hub.challenge vērtība.

Lai to izdarītu, pievieno n8n darbplūsmai šādu loģiku:

IF mezgls - Tas pārbauda, vai pieprasījumā ir hub.verify_token:

Condition: {{ $json.query['hub.verify_token'] }} exists

True ceļšRespond to Webhook mezgls, kas atgriež:

Response Body: {{ $json.query['hub.challenge'] }}

False ceļš (tas ir faktiskais līda notikums) → turpina uz datu apstrādi.

  1. Pēc veiksmīgas verifikācijas, atver Subscriptions un pievieno savu Facebook lapu. Aktivizē "leadgen" , lai nolasītos tieši līdi.

5. solis: Iegūsti pilnus līda datus

Webhook pieprasījums satur tikai leadgen_id, nevis faktiskos formas datus. Tāpēc ir nepieciešams papildu API izsaukums.

Pievieno HTTP Request mezglu:

  • URL: https://graph.facebook.com/v24.0/{{ $json.body.entry[0].changes[0].value.leadgen_id }}
  • Method: GET
  • Query parametri:
    • access_token: tavs lapas piekļuves tokens
    • fields: id,created_time,field_data,ad_id,form_id,campaign_id,ad_name,campaign_name,adset_name

Pievieno arī otro Respond to Webhook mezglu False ceļā, kas atgriež HTTP 200 statusu (lai Facebook zina, ka pieprasījums ir saņemts).

6. solis: Normalizē daudzvalodu formu laukus

Šis ir solis, ko lielākā daļa pamācību izlaiž.

Ja tu vadi kampaņas vairākās valodās (latviešu + angļu vai + krievu), viens un tas pats jautājums formā var būt ar dažādiem lauku nosaukumiem. Piemēram, "Where do you plan to build?" un "Kur plānojat būvēt?" būtu jānonāk vienā un tajā pašā kolonnā.

Pievieno Code mezglu pēc šāda principa:

const lead = $input.first().json;

const fieldPatterns = {
  full_name: ['full name', 'vārds uzvārds'],
  email: ['email', 'e-pasts'],
  phone: ['phone number', 'tālruņa numurs'],
  city: [
    'LAUKA NOSAUKUMS KRIEVU VALODĀ',
    'LAUKA NOSAUKUMS LATVIEŠU VALODĀ',
  ],
  timeline: [
    'LAUKA NOSAUKUMS KRIEVU VALODĀ',
    'LAUKA NOSAUKUMS ANGĻU VALODĀ'
  ],
  size: [
    'LAUKA NOSAUKUMS KRIEVU VALODĀ',
    'cLAUKA NOSAUKUMS ANGĻU VALODĀ'
  ]
};

function normalizeFieldName(rawName) {
  const cleaned = rawName
    .toLowerCase()
    .replace(/_/g, ' ')
    .replace(/[?:()]/g, '')
    .trim();

  for (const [standard, patterns] of Object.entries(fieldPatterns)) {
    for (const pattern of patterns) {
      if (cleaned.includes(pattern)) return standard;
    }
  }
  return null;
}

const standardFields = {};

(lead.field_data || []).forEach(field => {
  const value = (field.values && field.values[0]) ? field.values[0] : '';
  const normalized = normalizeFieldName(field.name);
  if (normalized) standardFields[normalized] = value;
});

return [{
  json: {
    lead_id: lead.id,
    created_time: lead.created_time,
    ad_name: lead.ad_name || '',
    campaign_name: lead.campaign_name || '',
    full_name: standardFields.full_name || '',
    email: standardFields.email || '',
    phone: standardFields.phone || '',
    city: standardFields.city || '',
    timeline: standardFields.timeline || '',
    size: standardFields.size || ''
  }
}];


Pievieno savus lauku nosaukumus atbilstoši tavai formas struktūrai. Svarīgi ir tas, ka fieldPatterns objektā tu vari pievienot neierobežotu skaitu valodu variantu katram laukam. Var teorētiski arī salikt kopā šādā veidā laukus starp dažādām formām, ja gribi lai tie lauki uzrādītos tajā pašā kolonnā.

7. solis: Ieraksti Google Sheets

Pievieno Google Sheets mezglu:

  • Operation: Append Row
  • Savieno ar savu Google kontu
  • Izvēlies mērķa izklājlapu un lapu
  • Sakarto kolonnu nosaukumus atbilstoši Code mezgla izvadei: lead_id, created_time, ad_name, campaign_name, full_name, email, phone, city, timeline, size

Aktivizē darbplūsmu. Tagad katrs jauns līds no Facebook Lead Ads automātiski parādīsies tavā Google Sheets izklājlapā dažu sekunžu laikā.

TikTok Lead Ads → Google Sheets darbplūsma

Priekšnosacījumi

  • n8n instance (self-hosted vai cloud)
  • TikTok Business konts ar aktīvām Lead Ads kampaņām
  • TikTok Developer konts
  • Google konts ar Google Sheets piekļuvi

1. solis: Izveido TikTok Developer aplikāciju

  1. Atver developers.tiktok.com un piesakies.
  2. Noklikšķini "Manage Apps""Create App".
  3. Izvēlies "Custom App" tipu.
  4. Ievadi aplikācijas nosaukumu un aprakstu.
  5. Sadaļā "Products" pievieno "Lead Generation". Tas ir nepieciešams, lai piekļūtu līdu datiem caur API.
  6. Konfigurē "Data Permissions" un pieprasi šādas atļaujas:
  • Lead Generation Read (līdu datu lasīšana)
  • Ad Account Read (reklāmas konta informācija)
  1. Iesniedz aplikāciju apstiprināšanai. TikTok parasti apstiprina dažu darba dienu laikā.

2. solis: Iegūsti piekļuves tokenu un ID

Pēc aplikācijas apstiprināšanas:

  1. Atver savu aplikāciju TikTok Developer portālā.
  2. Sadaļā "Tools""Generate Access Token" izveido tokenu ar Lead Generation atļaujām.
  3. Pieraksti:
  • Access Token - autentifikācijai API pieprasījumos
  • Advertiser ID - tavs reklāmdevēja konts (atrodams arī TikTok Ads Manager URL)
  1. Lai iegūtu Page ID katrai Lead Ads formai:
  • Atver TikTok Ads Manager → AssetsInstant Forms
  • Katrai formai ir unikāls ID - To var atrast formas iestatījumos vai caur API

3. solis: Uzstādi Schedule Trigger

Tā kā TikTok nepiedāvā webhook, mēs izmantosim regulāru aptauju.

  1. Izveido jaunu darbplūsmu n8n.
  2. Pievieno Schedule Trigger mezglu:
  • Intervāls: Every 5 Minutes (labs kompromiss starp ātrumu un API lietojumu)

4. solis: Definē formu sarakstu

Ja tev ir vairākas Lead Ads formas (dažādām kampaņām, valodām, piedāvājumiem), pievieno Code mezglu, kas izvada katras formas page_id:

return [
  { json: { page_id: 'TAVA_FORMAS_ID_1', form_name: 'Galvenā forma (LV)' } },
  { json: { page_id: 'TAVA_FORMAS_ID_2', form_name: 'Īsā forma (EN)' } },
  { json: { page_id: 'TAVA_FORMAS_ID_3', form_name: 'Pilnā forma (RU)' } }
];

Aizstāj page_id vērtības ar saviem faktiskajiem formu ID. Šis mezgls izvada vairākus elementus, un n8n automātiski izpildīs nākamo mezglu katram no tiem.

5. solis: Izsauc TikTok Business API

Pievieno HTTP Request mezglu:

  • URL: https://business-api.tiktok.com/open_api/v1.3/lead/get/
  • Method: GET
  • Query parametri:
    • advertiser_id: tavs reklāmdevēja ID
    • lead_source: INSTANT_FORM
    • page_id: {{ $json.page_id }}
    • start_time: {{ $now.minus({days: 7}).toFormat('yyyy-MM-dd HH:mm:ss') }}
    • end_time: {{ $now.toFormat('yyyy-MM-dd HH:mm:ss') }}
    • page_size: 100
  • Headers:
    • Access-Token: tavs TikTok piekļuves tokens

6. solis: Deduplikācija un datu apstrāde

Šis ir vissvarīgākais solis polling arhitektūrā. Bez deduplikācijas katrs API izsaukums atgriezīs līdus, ko tu jau esi apstrādājis.

Pievieno Code mezglu:

const seenLeads = $getWorkflowStaticData('global');
if (!seenLeads.ids) seenLeads.ids = [];

const results = [];

for (const item of $input.all()) {
  const response = item.json;

  if (response.code !== 0) continue;

  let leads = [];
  if (response.data?.lead_list && Array.isArray(response.data.lead_list)) {
    leads = response.data.lead_list;
  } else if (response.data?.lead_data && response.data?.meta_data) {
    leads = [{ lead_data: response.data.lead_data, meta_data: response.data.meta_data }];
  }

  for (const lead of leads) {
    const meta = lead.meta_data || {};
    const data = lead.lead_data || {};
    const leadId = meta.lead_id;

    // Izlaist testa līdus un jau apstrādātos
    if (!leadId || leadId === "0") continue;
    if (seenLeads.ids.includes(leadId)) continue;

    // Atzīmēt kā apstrādātu
    seenLeads.ids.push(leadId);
    if (seenLeads.ids.length > 2000) {
      seenLeads.ids = seenLeads.ids.slice(-2000);
    }

    // Konvertēt laiku uz UTC+02:00 (Baltijas laiks)
    let formattedDate = meta.create_time || '';
    try {
      const date = new Date(meta.create_time + ' UTC');
      date.setHours(date.getHours() + 2);
      formattedDate = date.toISOString().replace('T', ' ').substring(0, 19);
    } catch (e) {}

    results.push({
      json: {
        date: formattedDate,
        ad_name: meta.ad_name || '',
        form_name: meta.page_id || '',
        name: data.name || '',
        phone: (data.phone_number || '').replace(/^\+/, ''),
        email: data.email || '',
        // Pievieno savus pielāgotos laukus šeit
      }
    });
  }
}

return results;

Galvenie mehānismi šajā kodā:

  • $getWorkflowStaticData('global'). Tā ir n8n iebūvēta funkcija, kas saglabā datus starp darbplūsmas izpildēm. Mēs to izmantojam, lai atcerētos, kurus līdus jau esam apstrādājuši.
  • 2000 ID limits - lai neaizņemtu neierobežotu atmiņas apjomu. Vecāki ID automātiski tiek noņemti.
  • Testa līdu filtrēšana - TikTok sūta līdus ar ID "0", kad testē formu. Tos ignorējam.
  • Laika zonas konversija - TikTok API atgriež laikus UTC, bet Baltijas valstīs mēs strādājam ar UTC+02:00.

7. solis: Ieraksti Google Sheets

Pievieno Google Sheets mezglu - Tas būs identisks Facebook variantam:

  • Operation: Append Row
  • Savieno ar savu Google kontu
  • Sakarto kolonnas: date, ad_name, form_name, name, phone, email (un pielāgotie lauki)

Aktivizē darbplūsmu. Tagad ik pēc 5 minūtēm n8n pārbaudīs, vai ir jauni TikTok līdi, un automātiski tos pievienos tavai izklājlapai.


Lejupielādē gatavās veidnes

Lai tev nav jābūvē viss no nulles, esam sagatavojuši divas n8n darbplūsmu veidnes, ko vari importēt savā n8n instancē.

Veidne 1: Facebook Lead Ads → Google Sheets Ietver webhook ar hub challenge apstrādi, Graph API izsaukumu, daudzvalodu lauku normalizāciju, un Google Sheets ierakstu.

[Lejupielādēt Facebook veidni →]

Veidne 2: TikTok Lead Ads → Google Sheets Ietver Schedule Trigger, vairāku formu atbalstu, deduplikācijas loģiku, laika zonas konversiju, un Google Sheets ierakstu.

[Lejupielādēt TikTok veidni →]

Pēc importēšanas tev būs jānorāda:

  • Savi API piekļuves tokeni (Facebook vai TikTok)
  • Google Sheets savienojums un mērķa izklājlapa
  • Formu ID un lauku nosaukumi atbilstoši tavām kampaņām

Ko darīt tālāk

Google Sheets ir labs sākumpunkts, bet tas nebūt nav viss foršākais veids kā sekot līdzi saviem līdiem. Kad pamata plūsma strādā, ir vairāki loģiski nākamie soļi:

Tiešs savienojums ar CRM - Tā vietā, lai dati nonāktu izklājlapā, nosūti tos tieši uz savu CRM sistēmu (HubSpot, Pipedrive, Twenty vai citu), kur pārdošanas komanda var nekavējoties sākt strādāt ar līdu.

Paziņojumi reālā laikā - Pievieno Slack vai Telegram mezglu, lai komanda saņem ziņu brīdī, kad ienāk jauns līds. Īpaši noderīgi augstvērtīgiem līdiem.

AI kvalifikācija - Pievieno LLM (piemēram, Claude vai OpenAI) soli, kas novērtē līda kvalitāti, pamatojoties uz formas atbildēm, pirms tas nonāk pie pārdošanas speciālista.

Daudzkanālu apvienošana - Savieno Facebook, TikTok un Google Ads līdus vienā plūsmā ar avota atribūciju, lai varētu tiešā veidā redzēt visus līdus un arī salīdzināt starp viņiem.

WhatsApp automatizācija - Uzstādi automātisku pirmo ziņu caur WhatsApp Business API, lai līds saņem atbildi dažu sekunžu laikā pēc formas aizpildīšanas.


RR-Network palīdz Baltijas MVU automatizēt biznesa procesus ar n8n, AI un pielāgotām integrācijām. Ja vēlies, lai šīs darbplūsmas tiek uzstādītas tavā infrastruktūrā — piesakies bezmaksas 30 minūšu konsultācijai.

Pēdējoreiz atjaunināts: 2026. gada 6. marts

Tu vari pagaidīt.

Bet ja šodien komanda atkal tērē stundas manuālam darbam - tas ir šodienas zaudējums.

Vai vari atļauties vēl vienu mēnesi bez skaidrības?

Labāk piezvanīt? +371 287 80 969