Pereiti prie turinio
HRC pagalba
Dokumentacijos turinys

Pokalbių valdiklio JS API

Atnaujinta

Svetainė valdo pokalbių valdiklį per vieną funkciją HrcWidget: perduoda, kas yra lankytojas, atidaro ir uždaro langą, klauso įvykių. Kiekvienas kvietimas atrodo taip: HrcWidget('<komanda>', ...argumentai).

Įkėlimas ir eilė

Naudokite pilną įdėjimo kodą. Kvietimai, padaryti iki įkėliklio atsisiuntimo, laukia eilėje HrcWidget.q ir įvykdomi iš eilės, įskaitant funkcijas (callback). Kvietimai po įkėliklio, bet iki init, saugomi iki 100; perpildžius pirmiausia atmetamas track, niekada identify, reset ar on.

Bloga reikšmė ar nežinoma komanda niekada nemeta klaidos jūsų puslapyje: ji praleidžiama su vienu įspėjimu konsolėje. debug: true parodo daugiau.

TypeScript tipai

Tipai su visomis komandomis: https://widget.hrc.lt/v1/hrc.d.ts. Atsisiųskite failą prie savo kodo:

ts
// Atsisiųskite į projektą:
// https://widget.hrc.lt/v1/hrc.d.ts
/// <reference path="./hrc.d.ts" />

// redaktorius patikrina tipus
HrcWidget('open', { view: 'new', type: 'question' });

init

Paleidžia valdiklį. Pakartotinis init su kitu raktu išjungia seną valdiklį ir paleidžia naują.

js
HrcWidget('init', {
  // iš jūsų įdėjimo kodo
  widgetKey: 'wk_xxxxxxxxxxxxxxxxxxxx',
  // arba 'lt', 'en', 'ru', 'pl', ...
  locale: 'auto',
  // veikia kaip update
  profile: { attributes: { plan: 'pro' } },
  context: {
    appVersion: '3.8.1',
    custom: { page_type: 'checkout' },
  },
  // 'hidden' savo mygtukui
  launcher: 'default',
  zIndex: 2147483000,
  // true: rodo atmestas reikšmes
  debug: false,
});
Parinktis Reikšmė
widgetKey Valdiklio raktas iš skilties Įdėjimas. Privalomas.
locale 'auto' arba kalbos kodas, pavyzdžiui 'lt'.
identity Tas pats kaip identify.
profile Tas pats kaip update, pritaikoma atsiradus sesijai.
context Tas pats kaip setContext.
launcher 'default' arba 'hidden' (mygtukas paslėptas, open veikia).
zIndex Valdiklio sluoksnis, pagal nutylėjimą 2147483000.
debug true konsolėje paaiškina praleistas reikšmes.

identify

Atpažįsta prisijungusį naudotoją: jis mato savo pokalbius bet kuriame įrenginyje. userHash apskaičiuojamas jūsų serveryje, žr. Naudotojų atpažinimas. Kartu galite perduoti profilio laukus.

js
HrcWidget('identify', {
  // jūsų naudotojo ID, visada tekstas
  externalId: String(user.id),
  email: user.email,
  name: user.name,
  // žr. „Naudotojų atpažinimas“
  userHash: userHashFromYourServer,
  company: { id: 'acme-1', name: 'Acme', plan: 'Pro' },
  attributes: { plan: 'pro', seats: 12, trial_ends_at: '2026-12-01' },
  tags: ['vip'],
});

update

Dalinai atnaujina lankytojo profilį: vardą, telefoną, nuotrauką, įmonę ir iki 50 savų laukų. Laukai sujungiami po vieną; null arba '' laukelį pašalina. Per 500 ms padaryti kvietimai išsiunčiami kartu. Taisyklės ir ribos: Lankytojo profilis.

js
HrcWidget('update', {
  phone: '+370 600 00000',
  company: {
    name: 'Acme',
    website: 'https://acme.example',
    plan: 'Pro',
  },
  // skaičius, taip/ne, data ar tekstas
  attributes: {
    orders: 14,
    newsletter: true,
    signed_up_at: new Date('2024-03-12'),
    app_version: '3.8.1',
    // null arba '' pašalina raktą
    coupon: null,
  },
});

setTags

Masyvas prideda žymas, objektas prideda ir pašalina. Iki 20 žymų kontaktui, raidės, skaičiai ir brūkšnelis.

js
// prideda šias žymas
HrcWidget('setTags', ['vip', 'beta']);
// prideda ir pašalina
HrcWidget('setTags', { add: ['churn-risk'], remove: ['beta'] });

track

Įrašo vieną lankytojo veiksmą. Komanda šoninėje juostoje mato paskutinius 5, kontakto puslapyje visus.

js
HrcWidget('track', 'plan-upgraded', { from: 'free', to: 'pro' });
HrcWidget('track', 'checkout.failed', {
  reason: 'card_declined',
  amount: 49.9,
});

setContext

Pakeičia sesijos reikšmes, kurios siunčiamos su kiekviena kita žinute. Jos neišsaugomos profilyje. Iki 20 savų raktų, reikšmė iki 200 simbolių.

js
// Tik kitoms šio apsilankymo žinutėms
HrcWidget('setContext', {
  appVersion: '3.8.1',
  custom: { cart_id: 'c-1042', step: 'payment' },
});

open, close, toggle ir mygtukas

open atidaro langą: view yra 'home', 'new' arba 'list', type yra 'bug', 'feature' arba 'question'. Su view: 'new' parinktis message įrašo tekstą į naujo pokalbio laukelį (neišsiunčia, iki 2000 simbolių).

js
// pradinis langas
HrcWidget('open');
// lankytojo pokalbiai
HrcWidget('open', { view: 'list' });
// iš karto klaidos forma
HrcWidget('open', { view: 'new', type: 'bug' });
// tekstas rašymo lauke, neišsiųstas
HrcWidget('open', { view: 'new', message: 'Order #1042: ' });
HrcWidget('close');
HrcWidget('toggle');
// open() vis tiek veikia
HrcWidget('hideLauncher');
HrcWidget('showLauncher');

on ir off: įvykiai

js
function onUnread(event) {
  document.title = event.count ? '(' + event.count + ') Shop' : 'Shop';
}
// iš karto su dabartiniu skaičiumi
HrcWidget('on', 'unread', onUnread);
HrcWidget('on', 'ready', function (event) {
  console.log(event.isIdentified, event.locale);
});
HrcWidget('on', 'conversation-started', function (event) {
  console.log(event.type);
});
// pašalina šią funkciją
HrcWidget('off', 'unread', onUnread);
// pašalina visas ready funkcijas
HrcWidget('off', 'ready');
Įvykis Duomenys Kada
ready { isIdentified, hasConversations, unreadCount, locale } Valdiklis paleistas. Vėliau užregistruotas on('ready') gauna paskutinę reikšmę iš karto.
open { view } Kiekvieną kartą atidarius.
close {} Kiekvieną kartą uždarius.
unread { count } Iš karto su dabartine reikšme, tada po kiekvieno pasikeitimo.
message { unreadCount } Atėjo komandos atsakymas, kurio lankytojas dar neperskaitė. Teksto nėra, kad kiti puslapio skriptai neskaitytų atsakymų.
conversation-started { conversationId, type } Lankytojas pradėjo pokalbį.
identified {} identify pavyko.
identify-failed { code } identify nepavyko, pavyzdžiui IDENTITY_INVALID.

Callback, kuris meta klaidą, parašo vieną įspėjimą ir nesustabdo nei valdiklio, nei kitų callback.

setLocale, reset ir destroy

js
// pakeičia kalbą iš karto, arba 'auto'
HrcWidget('setLocale', 'pl');
// atsijungus: pamiršta lankytoją
HrcWidget('reset');
// pašalina valdiklį; vėl kvieskite init
HrcWidget('destroy');

reset pamiršta sesiją, atpažinimą ir visus dar neišsiųstus profilio pakeitimus, žymas, veiksmus ir sesijos reikšmes. Kvieskite jį, kai naudotojas atsijungia.

Vieno puslapio programos

Puslapio keitimą (pushState, popstate) įkėliklis pastebi pats, todėl žinutėse matote tikrą puslapį. React pavyzdys: Įdėjimo kodas, React ir CSP.

Neradote atsakymo? Parašykite mums