LINKEDIN COMPANY CREATE POST - Publicar em Nome de Empresa
O que é esta operação?
O LinkedIn Company Create Post é a operação responsável por criar publicações em nome de uma página de empresa/organização no LinkedIn (requer permissão de admin).
Por que esta operação existe?
Marketing corporativo e gestão de redes sociais. O Company Create Post existe para:
- Content marketing: Publicar conteúdo da marca
- Social media management: Gerenciar presença corporativa
- Automação de agência: Postar para múltiplos clientes
- Campanhas: Executar campanhas de marketing B2B
- Thought leadership: Posicionar empresa como líder de mercado
Como funciona internamente?
Quando o Company Create Post é executado, o sistema:
- Valida access token com escopo
w_organization_social - Extrai companyId dos parâmetros
- Processa conteúdo com variáveis dinâmicas
- Monta payload UGC com author como organização
- Define visibilidade como PUBLIC
- Faz POST para
/v2/ugcPosts - Retorna ID do post criado
Código interno (linkedin.executor.ts:152-180):
case 'create_post':
// Create company post
const companyPostContent = this.replaceVariables(data.content || '', context.variables);
const companyIdForPost = this.replaceVariables(data.companyId || '', context.variables);
const companyPostPayload = {
author: `urn:li:organization:${companyIdForPost}`,
lifecycleState: 'PUBLISHED',
specificContent: {
'com.linkedin.ugc.ShareContent': {
shareCommentary: {
text: companyPostContent,
},
shareMediaCategory: 'NONE',
},
},
visibility: {
'com.linkedin.ugc.MemberNetworkVisibility': 'PUBLIC',
},
};
const companyPostResponse = await axios.post(`${baseUrl}/ugcPosts`, companyPostPayload, {
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json',
'X-Restli-Protocol-Version': '2.0.0',
},
});
return companyPostResponse.data;
Quando você DEVE usar esta operação?
Use Company Create Post sempre que precisar publicar em página corporativa:
Casos de uso:
- Marketing de conteúdo B2B: Posts educacionais da empresa
- Anúncios corporativos: Novidades, eventos, vagas
- Social media automation: Agendar posts da marca
- Gestão de clientes (agência): Postar para múltiplas marcas
- Employee advocacy: Compartilhar conquistas da empresa
- Produto/Serviço: Promover lançamentos e ofertas
Parâmetros Detalhados
companyId (string, obrigatório)
O que é: ID numérico da organização/empresa.
Como obter:
- URL da página: linkedin.com/company/1234567/
- Usando Company List Managed
content (string, obrigatório)
O que é: Texto do post a ser publicado.
Limite: 3000 caracteres
Suporta: Variáveis dinâmicas e emojis
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| resource | string | Sim | Sempre "companies" |
| operation | string | Sim | Sempre "create_post" |
| companyId | string | Sim | ID da empresa/página |
| content | string | Sim | Texto do post (máx 3000 chars) |
| config.accessToken | string | Sim | Token OAuth 2.0 com w_organization_social |
| responseVariable | string | Não | Nome da variável de resposta (padrão: linkedInResult) |
Exemplo 1: Anúncio de Vaga
Objetivo: Publicar vaga de emprego na página da empresa
JSON para Importar
{
"name": "LinkedIn - Publicar Vaga na Página",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "variable_1",
"type": "variable",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Config",
"parameters": {
"name": "linkedin_token",
"value": "SEU_TOKEN"
}
}
},
{
"id": "variable_2",
"type": "variable",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Dados Vaga",
"parameters": {
"name": "vaga",
"value": {
"titulo": "Senior Full Stack Developer",
"local": "Remote",
"salario": "R$ 15-20k"
}
}
}
},
{
"id": "linkedin_1",
"type": "linkedin",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Publicar Vaga",
"resource": "companies",
"operation": "create_post",
"config": {
"accessToken": "{{linkedin_token}}"
},
"companyId": "1234567",
"content": "🚀 ESTAMOS CONTRATANDO!\n\n📌 Posição: {{vaga.titulo}}\n📍 Local: {{vaga.local}}\n💰 Salário: {{vaga.salario}}\n\nInteressado? Candidate-se pelo link na bio!\n\n#Vagas #TechJobs #Contratando",
"responseVariable": "postVaga"
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 900, "y": 100 },
"data": {
"label": "Confirmação",
"parameters": {
"message": "✅ Vaga publicada na página da empresa!\n\nID do post: {{postVaga.id}}"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1100, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "variable_1" },
{ "source": "variable_1", "target": "variable_2" },
{ "source": "variable_2", "target": "linkedin_1" },
{ "source": "linkedin_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Exemplo 2: Content Calendar Automatizado
Objetivo: Publicar série de posts ao longo da semana
JSON para Importar
{
"name": "LinkedIn Company - Content Calendar",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "variable_1",
"type": "variable",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Token",
"parameters": {
"name": "linkedin_token",
"value": "SEU_TOKEN"
}
}
},
{
"id": "linkedin_monday",
"type": "linkedin",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Post Segunda",
"resource": "companies",
"operation": "create_post",
"config": {
"accessToken": "{{linkedin_token}}"
},
"companyId": "1234567",
"content": "💪 MOTIVATION MONDAY\n\nComece a semana com energia!\n\n#MotivationMonday #Empresa"
}
},
{
"id": "delay_1",
"type": "delay",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Aguardar 2 dias",
"parameters": {
"duration": 48,
"unit": "hours"
}
}
},
{
"id": "linkedin_wednesday",
"type": "linkedin",
"position": { "x": 900, "y": 100 },
"data": {
"label": "Post Quarta",
"resource": "companies",
"operation": "create_post",
"config": {
"accessToken": "{{linkedin_token}}"
},
"companyId": "1234567",
"content": "💡 TIP TUESDAY\n\nDica da semana: ...\n\n#DicaDaSemana"
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 1100, "y": 100 },
"data": {
"label": "Concluído",
"parameters": {
"message": "✅ Content calendar executado! 2 posts publicados."
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1300, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "variable_1" },
{ "source": "variable_1", "target": "linkedin_monday" },
{ "source": "linkedin_monday", "target": "delay_1" },
{ "source": "delay_1", "target": "linkedin_wednesday" },
{ "source": "linkedin_wednesday", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Resposta do Node
{
"id": "urn:li:share:9876543210",
"activity": "urn:li:activity:9876543210",
"created": {
"actor": "urn:li:organization:1234567",
"time": 1642512000000
}
}
Boas Práticas
✅ SIM: - Verifique se é admin da página antes de publicar - Use conteúdo profissional e alinhado com marca - Espaçe posts com DELAY (2-3 posts/dia máximo) - Inclua hashtags relevantes (3-5) - Use call-to-action claro
❌ NÃO: - Não faça spam (máx 50 posts/dia por página) - Não publique sem permissão de admin - Não use linguagem informal demais - Não ignore diretrizes da marca
Dicas
💡 Horários ideais: 8h-10h, 12h-14h ou 17h-19h (horário comercial) 💡 Hashtags: Use #NomeDaMarca sempre 💡 Consistência: Mantenha tom de voz da marca 💡 Engajamento: Inclua perguntas para gerar comentários
Próximo Node
→ Company List Managed - Listar páginas gerenciadas → Post Create - Publicar post pessoal → Lead Gen List Forms - Gerenciar lead gen forms