Métodos do PluginJS
Após o script carregar, o objeto global window.PliQ fica disponível com os métodos públicos do plugin.
Resumo
| Método | Para quê | Uso |
|---|---|---|
initialize(contact) | Inicia a sessão com os dados da pessoa | Produção |
closeSession() | Encerra a sessão e fecha popups abertos | Produção |
openWidget(ref, options?) | Abre um widget de ação (com properties/tags opcionais) | Produção |
setGlobal(k, v) / setGlobals(obj) | Registra variáveis globais para placeholders {chave} | Produção |
setTags(list) / getTags() / clearTags() | Tags globais somadas a todos os widgets | Produção |
login(contact) | Login forçado: reseta e re-inicializa | Teste/dev |
relogin() | Re-login com o último contato usado | Teste/dev |
clearCache() | Encerra a sessão e limpa o localStorage | Teste/dev |
setIgnoreCache(bool) | Arma/desarma o bypass de cache | Teste/dev |
enableLogs() / disableLogs() / setLogs(bool) | Liga/desliga os logs de console | Produção ou teste |
enableDebug() / disableDebug() / setDebug(bool) | Liga/desliga o painel de debug | Teste/dev |
Em produção, o essencial são initialize (login) e closeSession (logout); use openWidget se tiver widgets de ação. Os demais são ferramentas de teste — ver Modo Debug.
PliQ.initialize(contact)
Inicializa a sessão do plugin com os dados do contato.
await window.PliQ.initialize({
name: 'João Silva',
email: 'joao@empresa.com'
});
Campos aceitos no contact:
| Campo | Obrigatório |
|---|---|
name | Sim |
email | Ao menos um identificador: email, phone ou code_contact_client |
phone (DDI + DDD) | ↑ |
code_contact_client (ID da pessoa no seu sistema) | ↑ |
enterprise | Não |
Exemplos:
// nome + email
await window.PliQ.initialize({ name: 'João Silva', email: 'joao@empresa.com' });
// nome + código do cliente no seu sistema
await window.PliQ.initialize({ name: 'João Silva', code_contact_client: 'CLI-00123' });
// nome + telefone
await window.PliQ.initialize({ name: 'João Silva', phone: '5511999999999' });
O que acontece:
- Se já existe uma sessão ativa, o plugin apenas loga e retorna (não refaz a chamada)
- Envia o contato para a API PliQ com o
PLIQ_TOKENno header - Recebe os disparos + widgets vinculados e armazena a sessão criptografada no
localStorage - Inicia o monitoramento de URL imediatamente
- A sessão expira automaticamente após 20 minutos (e re-inicializa sozinha se a pessoa continuar navegando)
PliQ.closeSession()
Encerra a sessão atual: limpa o localStorage, fecha popups abertos (pesquisa e widget), remove os botões flutuantes e para os timers.
await window.PliQ.closeSession();
PliQ.openWidget(ref, options?)
openWidget e os widgets de ação existem a partir da v7.
Abre o modal de um widget de ação explicitamente (sem depender de botão
flutuante). É o par programático do atributo data-pliq-widget — ver a página
Widgets de ação.
window.PliQ.openWidget('pesquisa-atendimento', {
properties: { origem: '{current_url}' }, // {current_url} vira a URL atual
tags: ['campanha-verao'],
});
ref— referência do widget, resolvida na ordemname→url_survey.options.properties— campos customizados (Record<string, string>) gravados na resposta.options.tags— lista de tags (string[]) gravadas na resposta.- Retorno
boolean—truese abriu (ou já estava aberto);falsese não há sessão, a referência não existe ou o widget está inativo (o motivo é logado no console).
Valores aceitam placeholders resolvidos na hora — built-ins ({current_url}…), variáveis globais (ver abaixo) e campos do contato ({email}, {name}…). Ver Widgets de ação → placeholders.
PliQ.setGlobals(vars) / PliQ.setGlobal(key, value)
As variáveis globais (e os placeholders) foram introduzidas na v7.
Registra variáveis globais usadas como placeholders {chave} nos
properties/tags de qualquer widget (flutuante ou de ação). Complementa a
config estática _pliqStt.globals do snippet.
window.PliQ.setGlobals({ plano: 'premium', tenant: 'acme' });
window.PliQ.setGlobal('carrinho_id', '8821');
window.PliQ.getGlobals(); // { plano: 'premium', tenant: 'acme', carrinho_id: '8821' }
window.PliQ.clearGlobals(); // remove todas
As globais são resolvidas na abertura do widget — basta registrá-las antes do
clique. Também há os campos do contato ({email}, {name}…) e os built-ins.
Ver Widgets de ação → placeholders.
PliQ.setTags(list) / PliQ.getTags() / PliQ.clearTags()
As tags globais foram introduzidas na v7.
Registra tags globais somadas à resposta de todos os widgets (flutuante ou
de ação), junto das tags configuradas na plataforma e das passadas em
openWidget/data-pliq-tags. setTags substitui o conjunto atual.
window.PliQ.setTags(['campanha-verao', 'time-suporte']);
window.PliQ.getTags(); // ['campanha-verao', 'time-suporte']
window.PliQ.clearTags(); // remove todas
Também aceita config estática no snippet: _pliqStt.tags = ['campanha-verao'].
Exemplo prático (login/logout do seu app)
// No login do usuário
await window.PliQ.initialize({
name: 'João Silva',
email: 'joao@exemplo.com'
});
// No logout do usuário
await window.PliQ.closeSession();
Sincronize os dois métodos com o login/logout do seu sistema — é isso que garante que cada pesquisa chegue à pessoa certa.
Métodos de teste e desenvolvimento
PliQ.login(contact)
Login forçado: reseta a sessão atual e re-inicializa com o contato informado (é o que o formulário de Login do painel de debug usa).
PliQ.relogin()
Re-login usando o último contato informado. Útil após setIgnoreCache(true) para forçar um refetch imediato.
PliQ.clearCache()
Limpa o cache local. Se houver sessão ativa, encerra a sessão primeiro (fecha popups e para timers).
PliQ.setIgnoreCache(bool)
Arma/desarma o bypass de cache para os próximos initialize. Só para testes — o servidor tem uma trava de segurança. Ver Modo Debug → Bypass de cache.
Logs e painel
// Logs de console (podem ficar em produção)
window.PliQ.enableLogs(); window.PliQ.disableLogs(); window.PliQ.setLogs(true);
// Painel visual de debug (só em testes)
window.PliQ.enableDebug(); window.PliQ.disableDebug(); window.PliQ.setDebug(true);