Como inscrever automaticamente um contato do HubSpot em uma campanha do Dux-Soup
Este tutorial irá guiá-lo na configuração de um fluxo de trabalho da HubSpot para acionar automaticamente uma ação “Inscrever” do Dux-Soup para um contato específico. Esse processo usa uma ação de código personalizado na HubSpot para se comunicar com segurança com a API do Dux-Soup.
Casos de uso:
- Combine e-mail com LinkedIn para divulgação multicanal no fluxo de trabalho
- Inscreva automaticamente alguém em uma sequência do HubSpot e em uma campanha do Dux-Soup
- Quando adicionado a um novo segmento, estágio de lead ou negócio, entre em contato automaticamente pelo LinkedIn.
- Envie uma solicitação de conexão ou mensagem direta para alguém quando essa pessoa preencher um formulário no seu site (obrigado por entrar em contato conosco e fazer o download, adoraríamos nos conectar).
Pré-requisitos
Antes de começar, certifique-se de que possui o seguinte:
- Uma conta HubSpot com acesso a Workflows (nível HubSpot Pro ou superior).
- Uma licença Dux-Soup Turbo ou Dux-Soup Cloud (necessária para acesso à API).
- O conector Dux-Soup HubSpot é instalado a partir do Dux-Dash (Como instalar).

- Um contato da HubSpot que tenha o campo Perfil do LinkedIn preenchido com seu respectivo perfil do LinkedIn (por exemplo, https://www.linkedin.com/in/username/) no campo “Perfil do LinkedIn”, NÃO a URL do LinkedIn ou qualquer outra informação.

Passo 1: Crie sua campanha no Dux-Soup
Primeiro, você deve criar a campanha no Dux-Soup na qual deseja inscrever os contatos.
- Acesse o seu Dux-Dash.
- Clique em “Nova campanha” e dê a ela um nome fácil de lembrar (por exemplo, visita-hs).
- Adicione as etapas que deseja na campanha (por exemplo, uma visita ao perfil, um pedido de conexão, etc.).
- Clique em [SALVAR].
- É fundamental copiar o ID da campanha. O ID deve ser copiado exatamente como está nomeado, por exemplo, “visit-hs”. Consulte a captura de tela abaixo.

Etapa 2: Obtenha suas credenciais da API Dux-Soup
Você precisa obter seu ID de usuário exclusivo e sua chave API para autenticar suas solicitações.
- No Dux-Dash, vá para a guia Opções.
Clique na extensão Dux-Soup e clique no símbolo da “engrenagem”.

- Clique na guia Conectar.
- Role para baixo até a seção Controle remoto Dux-Soup.
- Copie seu ID de usuário e sua chave. Guarde-os em um local seguro e temporário.

Se você não encontrar a guia Conectar, ative o modo Avançado e tente novamente (leia mais aqui).
Etapa 3: Crie o fluxo de trabalho do HubSpot
Acesse o HubSpot para criar o fluxo de trabalho que acionará a ação.
- No HubSpot, navegue até Automação > Fluxos de trabalho.
- Clique em “Criar fluxo de trabalho” > “Do zero”.
- Selecione “Com base em contato” e clique em “Avançar”.
- Configure o seu gatilho de inscriçãoEste é o evento que iniciará a automação.
- Acionado manualmente (isso é útil para conectar-se a outros fluxos de trabalho)
- Quando uma nova pessoa termina uma sequência
- Quando uma nova pessoa é adicionada a uma lista de segmentos
- O exemplo que estamos usando é acionado manualmente, o que significa que será acionado quando adicionarmos manualmente um contato ao fluxo de trabalho.
- Clique no ícone + para adicionar uma ação.
Etapa 4: Configure a ação de código personalizado
Adicione uma ação “Código personalizado” e configure-a com segurança.
- No painel “Escolha uma ação”, role para baixo até “Operações de dados” e selecione “Código personalizado”.
- No painel esquerdo, configure o seguinte:
- No "Segredos" seção, clique em "Escolha um segredo" > “Adicionar segredo” e insira seu Dux-Soup API Chave.
- Por exemplo, SCOTT_WRIGHT_DUX_SOUP_API_KEY
- Cole a chave API que você copiou da guia Dux-Soup Connect em Opções na Etapa 2. Normalmente, é uma sequência de números e letras.
- Clique em “Adicionar segredo” novamente.

- Mapeie a propriedade do LinkedIn. Isso informa ao código qual campo do HubSpot contém a URL do LinkedIn do contato.
- Na seção “Propriedade a incluir no código”, clique em “Adicionar propriedade”.
- Chave: ds_liprofile
- Propriedade: clique em “Selecionar uma propriedade” e escolha sua propriedade de contato da HubSpot que armazena a URL do perfil do LinkedIn. Esse deve ser o campo que contém a URL do perfil. Não use outros campos, como “URL do LinkedIn”, se eles não forem a fonte de dados correta.
- Perfil do LinkedIn (sensível a maiúsculas e minúsculas, NÃO URL do perfil do LinkedIn ou URL do LinkedIn).
- Confirme se está escrito ds_liprofile (veja abaixo).

Etapa 5: Adicione o código personalizado
- Na caixa principal “Código”, certifique-se de que a “Linguagem” esteja definida como Node.js 18.x.
- Exclua todo o código de espaço reservado na caixa.
- Copie e cole todo o script abaixo.
- Certifique-se de substituir os nomes das chaves confidenciais pelos que você criou abaixo.
- Além disso, certifique-se de substituir o nome da campanha que pretende utilizar.
// Import the required libraries. 'axios' is for making HTTP requests, 'crypto' is for the signature.
const axios = require('axios');
const crypto = require('crypto');
exports.main = async (event, callback) => {
// --- 1. Get your Secrets ---
// These names MUST exactly match the Secrets you created in Step 4.
const apiKey = process.env.SCOTT_WRIGHT_DUX_SOUP_API_KEY;
const userId = process.env.SCOTT_WRIGHT_DUX_SOUP_USER_ID;
// --- 2. Get your Contact's LinkedIn URL ---
// This 'ds_liprofile' MUST exactly match the Key you created in Step 4.
const profileUrl = event.inputFields['ds_liprofile'];
// Check if we have all the data we need
if (!profileUrl) {
console.error("LinkedIn Profile URL is missing.");
return callback({
outputFields: {
hs_execution_state: "FAILED",
status: "error",
message: "LinkedIn Profile URL is missing from contact."
}
});
}
// --- 4. Build the API Request (just like your script) ---
const apiUrl = `https://app.dux-soup.com/xapi/remote/control/${userId}/queue`;
const timestamp = Date.now();
// This payload format is based on your API Test Tool's cURL command.
const payload = {
targeturl: apiUrl,
userid: userId,
timestamp: timestamp,
params: {
profile: profileUrl,
force: true, // 'force' is included from your test tool setup
campaignid: "visit-hs" // <-- This MUST match your Campaign ID from Step 1.
},
command: "enroll"
};
// Convert the payload object to a JSON string
const payloadString = JSON.stringify(payload);
// --- 5. Generate the HMAC-SHA1 Signature ---
const hmac = crypto.createHmac('sha1', apiKey);
hmac.update(payloadString);
const signature = hmac.digest('base64');
// --- 6. Send the Request to Dux-Soup ---
try {
const response = await axios.post(apiUrl, payloadString, {
headers: {
'X-Dux-Signature': signature,
'Content-Type': 'application/json'
}
});
// Success! Send data back to HubSpot.
console.log("Successfully queued visit:", response.data);
callback({
outputFields: {
status: 'success',
message: JSON.stringify(response.data)
}
});
} catch (error) {
// Handle any errors
const errorMessage = error.response ? JSON.stringify(error.response.data) : error.message;
console.error("Error queuing visit:", errorMessage);
// Send error data back to HubSpot
callback({
outputFields: {
status: 'error',
message: errorMessage
}
});
}
};
Etapa 6: Configuração final e testes
- Personalize o ID da campanha: no código que você acabou de colar, localize a linha 47: campaignid: “visit-hs”. Altere “visit-hs” para o ID exato da campanha que você criou na Etapa 1.
- Clique em “Salvar” no canto superior direito do painel de ações.
- Agora você pode “Testar ação” no painel esquerdo selecionando um contato que tenha uma URL de perfil do LinkedIn.
- Quando estiver satisfeito, clique em “Revisar e publicar” para ativar seu fluxo de trabalho.
Resolução de problemas
- “Meu fluxo de trabalho diz ‘Sucesso’, mas nada aconteceu” A API do Dux-Soup funciona como uma fila. “Sucesso” na HubSpot significa que o comando foi enviado com sucesso. Sua extensão Dux-Soup para Chrome deve estar em execução e conectada ao LinkedIn para receber o comando e executá-lo. Verifique sua página de atividades em fila do Dux-Dash para ver o comando em espera.
- “Meu contato de teste não está se inscrevendo” Se você testou um contato (por exemplo, com uma ação de visita), o Dux-Soup pode “bloquear” esse contato e impedir que ele se inscreva. Para corrigir isso, acesse seu fluxo do funil do Dux-Dash, localize o contato, clique na caixa de seleção ao lado do nome dele e selecione “Qualificar para exclusão”. Isso redefine o contato, tornando-o elegível para inscrição.
- Usando a campanha “Padrão”. Conforme observado em seu documento, se você enviar um ID de campanha que não existe no seu Dux-Dash, o Dux-Soup inscreverá automaticamente o contato na sua campanha “Padrão”.
- O Dux-Soup não permite inscrever uma mesma pessoa na mesma campanha. Portanto, pode ser necessário criar uma nova campanha para uma pessoa ao realizar vários testes.
Notas
- Um fluxo de trabalho é para um usuário do Dux-Soup
- Quer vários usuários Dux? Crie vários fluxos de trabalho separados.
- Um fluxo de trabalho está vinculado a uma campanha específica para esse usuário.
- Deseja várias campanhas diferentes para diferentes casos de uso? Crie fluxos de trabalho separados do HubSpot para cada campanha do Dux-Soup para esse usuário do Dux-Soup.
- Use uma campanha e, quando quiser alterá-la, ajuste-a no Dux-Dash. Leia mais sobre como editar campanhas ativas aqui
- Você pode querer que seus gatilhos no HubSpot sejam de “inscrição manual”. Isso permitirá que você se inscreva facilmente a partir de outras áreas do HubSpot, como Segmentos (listas), selecionando quem você deseja na visualização de segmentos do HubSpot e, em seguida, inscrevendo-os no fluxo de trabalho do HubSpot que os inscreve na campanha Dux-Soup.
- Use este fluxo de trabalho da HubSpot para iniciar/interromper ou acionar outros fluxos de trabalho na HubSpot para diferentes finalidades.
Para perguntas sobre este fluxo de trabalho, entre em contato com Scott Wright, diretor de vendas da Dux-Soup, pelo e-mail scott@dux-soup.com.