domingo, 11 de novembro de 2018

Marketing Cloud - Exibindo o primeiro nome com Ampscript

O Ampscript é a linguagem de Script utilizada na plataforma Marketing Cloud (Exacttarget). Através dela é possível criar personalizações em emails e páginas, acessar dados de outras data extensions, fazer customizações dinâmicas nas mensagens, entre outros.

Esse post foi motivado por uma pergunta que recebi de um colega aqui na empresa: "Como uso o ampscript para pegar apenas o primeiro nome de um campo que possui o nome completo?"

Para responder essa pergunta, fiz o seguinte (Nome é a coluna de nome completo da Data Extension):


%%[
  VAR @TamanhoFirstName
  SET @FirstName = Nome
  IF IndexOf(@FirstName, ' ') > 0 THEN
    SET @TamanhoFirstName = IndexOf(@FirstName, ' ')
  ELSE
    SET @TamanhoFirstName = Length(@FirstName)
  ENDIF
]%%

Olá %%=ProperCase(Trim(Substring(@FirstName, 0, @TamanhoFirstName)))=%%,


Inicialmente fiz um IF/ELSE para pegar o tamanho do Primeiro Nome e posteriormente usei algumas funções para buscar o primeiro nome e normalizá-lo. Uma função bem útil é o ProperCase que deixa a 1ª letra maiúscula e as outras minusculas.


* Precisa de um suporte ou consultoria com o Marketing Cloud? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ - Somos parceiros Gold Salesforce.

sexta-feira, 9 de novembro de 2018

Testando métodos com anotação @future no Salesforce

Ao chamar um método com a anotação @future uma nova thread é criada e enfileirada para ser executada de forma assíncrona à chamada original. Dessa forma, não há qualquer garantia que o conteúdo do método futuro será executado antes ou depois do contexto que o chamou. 

No cenário de método assíncrono surge um "problema": Como criar um método de teste unitário para esse método? Bem, a solução é mais simples do que se imagina: Basta utilizar o Test.StartTest() e o Test.StopTest() e o método assíncrono entre eles. 

A princípio mostro o método que desejo testar (coloquei uma método de espera ocupada só para comprovar a eficácia):


public class ClasseComMetodoFuturo {
    @future
    public static void metodoAssincrono(id idCaso){
        ClasseComMetodoFuturo.sleep(5000);
        
        Case caso = new Case(id = idCaso);
        Caso.Origin = 'Web';
        update caso;
    }
    
    private static void sleep(integer milliseconds){
        Long timeDiff = 0;
        DateTime firstTime = System.now();
        do{
            timeDiff = System.now().getTime() - firstTime.getTime();
        }while(timeDiff <= milliseconds);
    }
}


Agora minha classe de teste:


@isTest
public class ClasseComMetodoFuturoTest {
 public static testmethod void testandoFuture(){
        Case c = new Case();
        insert c;
        
        Test.startTest();
        ClasseComMetodoFuturo.metodoAssincrono(c.id);
        Test.stopTest();
        
        c = [SELECT id, Origin FROM Case WHERE id = :c.id];
        System.assertEquals('Web', c.Origin);
    } 
}



Faça um teste agora, removendo Test.StartTest() e o Test.StopTest(). O Resultado será:


System.AssertException: Assertion Failed: Expected: Web, Actual: null


Isso acontence pois, ao executar o Test.StopTest(), o Salesforce aguarda todas as execuções assíncronas que estão na fila de execução, pendentes para execução. Isto é, o StopTest faz com que seu método de teste aguarde do método @future, podendo assim esperar o resultado.



* Precisa de um suporte ou consultoria com seus códigos Apex na plataforma Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ - Somos parceiros Gold Salesforce.

segunda-feira, 17 de setembro de 2018

Bearer token para conexões REST para Salesforce

Quem nunca precisou de se conectar ao Salesforce, usando rest, através do Postman ou Insomnia, para criar, editar ou excluir registros? Pois bem, o objetivo dessa nota mental é exatamente gerar, de forma simples o Bearer Token (do OAuth 2.0) para utilizar a conexão já realizada através do navegador no seu Postman ou Insomnia.

Bem para reutilizar a autenticação já realizada no navegador, acesse o console do desenvolvedor e abra a janela de execução anônima através do menu Debug -> Open Execute Anonymous Window. Execute o seguinte código:


String orgId = UserInfo.getOrganizationId().substring(0, 15);
String sessionToken = UserInfo.getSessionId().substring(15);

System.debug(orgId + ' ' + sessionToken);


Bem, agora é só verificar o log gerado e pegar o token.
Veja que foi colocado um espaço entre o orgId e o sessionToken. Isso foi necessário pois se você gerar o token certinho, o Salesforce remove a informação do log por motivos de segurança. Então, remova manualmente o espaço em branco e use no seu Postman ou Insomnia:





Agora é só gerar seu JSON e fazer os posts, gets, puts, deletes, etc no Salesforce.

Essa dica, aprendi com o grande Renato Oliveira... Valeu cara!!!


* Precisa de um suporte ou consultoria com a plataforma Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ - Somos parceiros Gold Salesforce.

segunda-feira, 2 de julho de 2018

Ampscript para personalizar SMS no Marketing Cloud

Diferente da criação de e-mails no Content Builder do Salesforce Marketing Cloud, onde é possível definir a Data Extension (Extensão de dados) que será utilizada para a mesclagem das informações para personalização do e-mail, no MobileConnect, não é possível selecionar uma Data Extension para personalização dos SMS. Para esse fim, caso queira mandar um SMS personalizado, usando o nome do Assinante ou mesmo algum texto customizado por Assinante, é necessário a utilização da linguagem de Script do Salesforce Marketing Cloud, chamada Ampscript.

A única informação (que eu considero) relevante que teremos para a criação do script de personalização, para buscar dados de uma Data Extension é a variável do número de telefone do Assinante: MOBILE_NUMBER.

Dessa forma, é necessário usar a função Lookup para pesquisar informações na Data Extension desejada, passando como parâmetro MOBILE_NUMBER. Mas primeiro, veja os parâmetros da função Lookup:

Lookup(NomeDaDataExtension, NomeDaColunaQueSeDesejaRetornarValor, NomeDaColunaQueSeDesejaFiltrar, ValorQueSeDesejaFiltrar)

No exemplo a seguir vamos pesquisar na DataExtension GrupoAprovacao e desejamos retornar a informação da coluna Nome. O filtro será pela coluna Telefone e vamos usar como valor de filtro o MOBILE_NUMBER:


%%[
var @nomeAssinante
set @nomeAssinante = Lookup('GrupoAprovacao','Nome','Telefone',MOBILE_NUMBER)
]%%
Ola %%=v(@nomeAssinante)=%%, informamos que seu pedido acaba de ser enviado.

É possível realizar mais de uma consulta usando o Lookup para buscar mais de uma informação, veja:


%%[
var @nomeAssinante, @produto
set @nomeAssinante = Lookup('GrupoAprovacao','Nome','Telefone',MOBILE_NUMBER)
set @produto = Lookup('GrupoAprovacao','Produto','Telefone',MOBILE_NUMBER)
]%%
Ola %%=v(@nomeAssinante)=%%, informamos que o produto %%=v(@produto)=%% acaba de ser enviado.


Por hoje é isso... até a próxima!

* Precisa de um suporte ou consultoria nas configurações ou implantação do Salesforce Marketing Cloud? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ - Somos parceiros Gold Salesforce.

quarta-feira, 27 de junho de 2018

Transformando ID 15 caracteres para 18 caracteres - SFDC

Sabemos que os IDs de registros no Salesforce possuem 15 caracteres (ou dígitos). Porém você já deve ter percebido em algumas situações um ID com 18 caracteres entra em cena. 
Bem, o padrão da Salesforce são registros com 15 caracteres entre Números e Letras Maiúsculas e Minúsculas. Isto é, o ID dos registros no Salesforce é Case Sensitive.
Exemplo de ID de uma Conta com 15 caracteres:


001f100001Q5RgL

Porém, caso seja necessário integrar o Salesforce com outra ferramenta que não diferencie as letras maiúsculas e minúsculas na comparação, a Salesforce criou mais 3 dígitos verificadores no ID original que transforma o ID em Case Insensitive. Isto é, ignora letras maiúsculas e minusculas. Dessa forma, o exemplo acima, seria com 18 caracteres:


001f100001Q5RgLAAV

Dentro da plataforma Salesforce, as 2 versões (com 15 ou 18 caracteres) continuam Case Sensitive, porém esses 3 dígitos a mais diferenciam os IDs que poderiam vir a se repetir caso a comparação seja feita ignorando letras maiúsculas e minusculas, facilitando assim a integração com outras ferramentas. 

DICA:

  • Não tente usar os IDs (mesmo de 18) alterando o que for maiúsculo para minúsculo e vice-versa dentro do Salesforce. Não vai funcionar!
  • Não tente usar os IDs de 15 caracteres fora do Salesforce. Pode have duplicados (se for uma comparação Case Insensitive).


Agora que você já a diferença, veja como é simples criar um campo fórmula para transformar um ID de 15 para ID de 18:

Crie um campo fórmula com o tipo de retorno texto e adicione a função CaseSafeId:


CASESAFEID(Conta__r.id)


Agora é só salvar a fórmula e Voilà! Você tem o ID de 18 caracteres!



* Precisa de um suporte ou consultoria na criação de fórmulas no Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ - Somos parceiros Gold Salesforce. 


quinta-feira, 1 de março de 2018

Removendo espaços em branco de Strings

Normalmente, quando se deseja remover espaços em branco das extremidadas de uma String no Apex, da Salesforce, usamos o método .trim() no objeto string. Porém, caso deseje remover TODOS os espaços em branco da sua String, o trim não resolve. Essa nota metal é exatamente para resolver essa situação e ela é bem simples: Basta usar o replaceAll, substituindo a string \\s+ por vazio. Veja:


String strSemEspaco = 'a b    c d  e'.replaceAll('\\s+', '');



Agora veja um método de teste, como se comportaria:


String strComEspaco = 'a b    c d  e';
String strSemEspaco = 'abcde';
System.assert(strComEspaco != strSemEspaco);
strComEspaco = strComEspaco.replaceAll('\\s+', '');
strSemEspaco = strComEspaco.replaceAll('\\s+', '');
System.assert(strComEspaco == strSemEspaco);



Por hoje é isso!




* Precisa de um suporte ou consultoria nos códigos APEX da Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ - Somos parceiros gerenciado Salesforce. 

Filtrando Query SOQL com Data

O conteúdo desse post é simples... é mais um "mental note". 

Várias vezes, quando preciso abrir o Console do Desenvolvedor no Salesforce, para fazer um Query e filtrar por uma Data (ou Data/Hora) específica (nada dinâmico) não sei como é o formato de data na Query. Sempre procuro e perco alguns minutos até encontrar. Bem, com essa nota mental, não irei esquecer mais! :)

Basicamente, é necessário colocar a data no seguinte formado: YYYY-MM-DD. Exemplo:


SELECT Id, Name, StageName, CloseDate FROM Opportunity WHERE CloseDate > 2018-01-01


Já para utilizar data e hora use o seguinte formato: YYYY-MM-DDTHH:mm:SSZ. Exemplo:
 

SELECT Id, Name, StageName, CreatedDate FROM Opportunity WHERE CreatedDate > 2018-01-01T10:00:00Z





Bem rápida essa...




* Precisa de um suporte ou consultoria em Queries no Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ - Somos parceiros gerenciado Salesforce.

sexta-feira, 19 de janeiro de 2018

Automação para importação de arquivos - Marketing Cloud

Hoje iremos abordar a importação automática de arquivos (e consecutivamente dados) para o Marketing Cloud da Salesforce. 
O cenário é o seguinte:
Temos um Sistema ERP que controla os pagamentos dos nossos clientes. E temos o Marketing Cloud que enviará lembrete das cobranças aos nossos clientes. Essas duas ferramentas não possuem integração entre si.

Diante do cenário, para que criemos jornadas de cobrança ou mesmo simples lembretes, precisamos ter, diariamente, a base de dados de quem está com pagamentos pendentes e assim realizar as cobranças. 

Para esse cenário iremos propor que o ERP gere um arquivo CSV (com os dados dos devedores) e disponibilize no FTP do Marketing Cloud para que possamos utilizar a ferramenta Automation Studio do Marketing Cloud para importar os dados do CSV gerado pelo ERP e salvá-los em uma Data Extension.

A solução

O primeiro passo, é configurarmos o FTP do Marketing Cloud (caso ainda não tenha configurado). Escrevi um post mostrando como configurar o FTP para resolver outro problema. Pode conferir aqui: Erro ao carregar, descompactar ou descriptografar o arquivo - Marketing Cloud .

O passo seguinte é definir uma Data Extension que irá receber os dados dos devedores do ERP. E posteriormente alinhar com o desenvolvedor do ERP um modelo de CSV a ser criado e disponibilizado. Fiz esse:



Agora vamos criar uma automação com o Automation Studio para importar os dados do CSV, gerado pelo ERP, sempre que esse arquivo for disponibilizado no FTP do Marketing Cloud. Acessamos então o Automation Studio do Marketing Cloud:



Criamos então um nova Automação. Nessa automação, vamos definir como Origem (Starting Source) o Depósito de arquivo.




Em seguida, configuramos esse depósito de arquivo. No nosso caso vamos definir que sempre que um arquivo que comece com carga_mc, no diretório Import for manipulado, nossa automação será inciada:




Em seguida, vamos adicionar na parte de Atividades, a atividade Arquivo de importação: 




Precisamos escolher a atividade do tipo "Arquivo de importação". Como ainda não criamos uma, vamos clicar "Criar uma nova definição de importação" para criar um nova atividade de importação. No wizard de importação definimos, na 1ª etapa o nome da nossa Atividade. Na 2ª definimos o nome do arquivo CSV e suas características:




Na 3ª etapa do wizard de importação, definimos a Data Extension que receberá os dados do CSV e na 4ª, fazemos o mapeamento do CSV com a Data Extension e definimos a ação a ser feita (nesse caso, sobrescrever todos os dados da Data Extension pelos dados do CSV):




O 5º e últimos passo é só para revisar e concluir a criação da Atividade de importação.

Pronto, temos nossa automação pronta. Agora clicar em salvar, no canto superior direito e ativar!




E por fim, acompanhar a atividade em execução, quando for inserido ou atualizado o arquivo carga_mc no FTP do Marketing Cloud... e posteriormente verificar os dados sobrescritos na Data Extension.







* Precisa de um suporte ou consultoria nas configurações do Marketing Cloud da Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ - Somos parceiros gerenciado Salesforce.



terça-feira, 21 de novembro de 2017

Erro ao alterar o proprietário de um registro no Salesforce

A dica rápida de hoje é para evitar um erro de privilégios insuficientes que é gerado por um usuário sem permissão de alterar o proprietário de um registro.

Para se alterar o proprietário de um registro no Salesforce, clicamos na opção "[Alterar]" ao lado do nome do proprietário.




Porém, para alguns usuários, ao clicar em "[Alterar]" ele se depara com uma mensagem de erro de: "Privilégios insuficientes. Você não tem o nível de acesso necessário para executar a operação solicitada. Entre em contato com o proprietário do registro ou o administrador se necessitar obter acesso. Para obter mais informações, consulte Erros de privilégios insuficientes."





Visando resolver esse problema e dar a permissão necessária ao usuário que deseja alterar o proprietário de um registro, precisamos acessar o Perfil desse usuário e marcar a opção Transferir registros na seção Permissões administrativas do perfil do usuário e salvar.






É isso aí por hoje... até mais!




* Precisa de um suporte ou consultoria nas configurações de Perfis do Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ - Somos parceiros gerenciado Salesforce.

sábado, 4 de novembro de 2017

Erro ao carregar, descompactar ou descriptografar o arquivo - Marketing Cloud

Hoje vamos descobrir como resolver um problema simples mas recorrente, que acontece em todas novas instâncias do Marketing Cloud (ExactTarget) da Salesforce. 

Sempre que estamos trabalhando em uma nova instância e tentamos importar um arquivo CSV para uma Data Extension (Extensão de dados), recebemos a seguinte mensagem no wizard de importação:

Carregar erro. Erro ao carregar, descompactar ou descriptografar o arquivo



O problema ocorre por falta de um usuário do FTP do Marketing Cloud na referida instância. Para resolver essa situação é necessário ser administrador da ferramenta e seguir os passos:

1) Acessar a seção de administração do Marketing Cloud, passando o mouse sobre o seu nome no canto superior direito (está escrito Bem-vindo Nome). Ao fazer, irá abrir um menu de opções. Clique em Administração.

2) Agora acesse o menu Conta e em seguida Contas de FTP.



3) Logo após, será aberta a tela de contas/usuários do FTP. Precisamos criar um novo usuário. Para tal, clicamos em Adicionar usuário de FTP, no canto superior direito.

4) Em seguida definimos uma nova senha e clicamos em Salvar (no canto superior direito).


Pronto! Agora a carga de dados através de CSV irá funcionar tranquilamente.



* Precisa de um suporte ou consultoria nas configurações do Marketing Cloud da Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ - Somos parceiros gerenciado Salesforce.

terça-feira, 31 de outubro de 2017

Configurando Geolocalização para Leads, Contas e Contatos

Uma das coisas mais interessantes de se trabalhar com a Plataforma Salesforce é que ela está sempre se atualizando. Requisitos que outrora necessitaria um desenvolvimento, com as novas releases passam a não mais precisar. É o caso das coordenadas geográficas para os endereços de Leads, Contas e Contatos, que passaram a ter atualização da Geolocalização automaticamente, quando a Regra de integração de dados está ativada. Os campos padrão usados nas regras são:

Conta:

  • BillingAddress - Endereço de Cobrança
    • BillingLatitude
    • BillingLongitude
    • BillingGeocodeAccuracy
  • ShippingAddress - Endereço de Entrega
    • ShippingLatitude
    • ShippingLongitude
    • ShippingGeocodeAccuracy


Contato:
  • MailingAddress - Endereço de Correspondência
    • MailingLatitude
    • MailingLongitude
    • MailingGeocodeAccuracy

Lead:


  • Address - Endereço
    • Latitude
    • Longitude
    • GeocodeAccuracy


A ideia desse post é habilitar o processo que, ao inserir os dados de endereço nos objetos supracitados, o Salesforce preencha a Latitude, Longitude e a Precisão (GeocodeAccuracy), que é o resultado da busca pelo endereço (se o Salesforce conseguir encontrar o endereço ou apenas a Cidade, por exemplo). Posteriormente, tendo esses dados, é possível criar mapas personalizados, gerar rotas, criar territórios e carteiras visuais, entre outros. Porém o foco desse post é apenas preencher automaticamente a geolocalização.

Bem, para iniciar as configurações, precisamos acessar a parte de configurações do Salesforce e pesquisar por Regras de integração de dados na caixa de pesquisa.



Ao acessar a tela temos as regras para cada um dos campos:



Por padrão, todas as regras estão desativas. Vamos então acessar uma delas para visualizar as configurações.



Para editar as opções, basta clicar em Editar configurações de regra. As opções são:


  •  Atualize todos os registros depois que essa regra for ativada ou salva (recomendado): Essa opção faz com que as latitudes, longitudes e precisões sejam atualizadas caso essa opção seja marcada e essa regra seja salva ou atualizada. Essa atualização ocorre em todos os registros e por isso, pode tomar um tempo, dependendo do volume de dados.
  • Ignorar acionadores: Se essa opção for marcada, ao realizar a atualização da latitude, longitude e precisão, não irá executar nenhum acionador (trigger) do objeto.
  • Ignorar regras de fluxo de trabalho: Se essa opção for marcada, ao realizar a atualização da latitude, longitude e precisão, não irá executar nenhum processo de automação. 
  • Deixe as informações da última modificação inalteradas: Os campos de data e quem realizou a última alteração não irão ser alteradas, quando for atualizados os dados de latitude, longitude e precisão.
Obs: O ideal é deixar os valores padrão.


Se acessarmos o botão  opção de Editar mapeamento de campo podemos definir os campos que serão comparados na pesquisa do endereço para obter a geolocalização:



Se acessarmos a guia Atualizar da tela, definimos onde serão salvos os dados da geolocalização:



Conhecendo essas informações podemos salvar e Ativar (através do botão na página principal da regra).


Acompanhando a atualização da Geolocalização

Para saber o andamento da atualização da regra em um registro, podemos adicionar a lista relacionada de Regras de integração de dados, em um Layout de tela do objeto desejado:




Ao realizar uma atualização você poderá acompanhar e até solicitar uma nova atualização...

Se não tiver atualizado ainda:




Mas se já tiver atualizado:




E a Geolocalização?

Você pode adicionar o campo de geolocalização na tela, através do Layout de página... mas como um programador raiz, vou fazer uma query usando o Console do Desenvolvedor:

SELECT id, name, BillingLatitude, BillingLongitude, BillingGeocodeAccuracy FROM Account WHERE id = '0010P00001o3GKa'

E tenho como resultado os meus dados de Geolocalização...




Por hoje é só... até mais!



* Precisa de um suporte ou consultoria nas configurações de Geolocalização e mapas na sua Org Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ - Somos parceiros gerenciado Salesforce.


terça-feira, 24 de outubro de 2017

Habilitando e configurando a base de conhecimento - Knowledge

A plataforma Salesforce disponibiliza uma ferramenta bem interessante para se compartilhar conhecimento e permitir o "auto-atendimento" (nas comunidades) chamada Knowledge Base ou Base de Conhecimento. Essa ferramenta permite que sejam criados artigos, disponibilizado em diversos canais e auxilie atendentes de suporte na resolução de Casos ou clientes a encontrarem soluções de problemas por conta própria, nas Comunidades.

O primeiro passo é habilitar a opção Usuário do Knowledge no cadastro do usuário. Ao habilitar essa opção, as configurações do Knowledge ficarão disponíveis para o usuário criar as configurações do Knowledge base. Essa opção deve ser habilitada também para os usuários que serão responsáveis por criar os artigos da Base de conhecimento.




Obs.: Para habilitar o Knowledge para um usuário, é necessário uma licença para tal.

O próximo passo, estando com seu usuário configurado como Usuário do Knowledge, é pesquisar na caixa Busca rápida/pesquisa, do menu de configurações pela opção Configurações do Knowledge. Acesse essa configuração e ative o Knowledge através da opção Sim, compreendo o impacto de ativar o Salesforce Knowledge e clicando em Ativar o Salesforce Knowledge.


Após Ativar o Salesforce Knowledge, diversas opções de configuração são habilitadas para parametrizarmos no nosso Knowledge. Vamos destacar algumas que vamos configurar:

Configurar os campos que serão usados para que o Knowledge sugira artigos, baseados em informações dos Casos.



Configurar o idioma do Knowledge (já tive problemas por esse campo estar em Inglês e a Comunidade configurada em Português e vice-versa).





Categoria de dados

Agora que já temos alguns itens configurados básicos do Knowledge configurado, vamos configurar a Categoria de dados. Para tal, acessamos a caixa de pesquisa das configurações por Categoria de dados

As Categorias de Dados são uma forma de criar uma hierarquia, em árvore, de Artigos da Base de Conhecimento. Talvez seja simplista no que vou dizer a seguir, mas é como se fosse uma hierarquia de pastas no qual os Artigos do Knowledge ficarão relacionado. A diferença é que o Artigo pode ficar relacionado a várias categorias (diferente das pastas).

Vou criar três Categorias uma chamado "Todos" e outras duas (abaixo de Todos) chamadas "Microinformática" e "Sistemas" de forma que eu possa organizar minha base de conhecimento entre Artigos de Microinformática e Artigos sobre Sistemas.




Após Salvar, é necessário Ativar nossa hierarquia de Categorias. Passe o cursor do mouse sobre a categoria raiz (Todos) e clique no ícone da Chave.




Tipos de Artigo do Knowledge

O próximo passo é configurar os Tipos de Artigo do Knowledge. Os Tipos de Artigo são uma espécie mistura de Tipo de Registro com Objeto... Isto é, será possível criar um artigo de cada um dos tipos de artigo, porém é possível customizar campos para cada um dos tipos. Dessa forma é possível criar para um Artigo para "TI", que tenham os campos "Descrição do problema", "Aplicabilidade" e "Solução", por exemplo. Já outro Tipo de Artigo "RH", que teria apenas o campo "Descrição".

Obs.: Todos os Tipos de Artigo do Knowledge possuem, por padrão os campos Título, URL e resumo.

Para configurar o Tipo de Artigo do Knowledge, é necessário acessar o menu de Configurações e pesquisar por Tipo de Artigo do Knowledge na caixa de pesquisa. Ao acessar a tela, clicar em Novo tipo de artigo.



Veja que a criação é bem parecida com a criação de um Objeto. Ao salvar, na tela seguinte temas a tela onde poderemos manipular campos e layout de tela. Vou criar os seguintes campos:

  • Descrição do problema | Tipo: Área de rich text
  • Aplicabilidade | Tipo: Texto
  • Solução | Tipo: Área de rich text


Após criar os campos, configuro o Layout de tela dos Artigos de TI.




Criando um Artigo

Agora estamos aptos a criar um novo Artigo da nossa Base de Conhecimento. Podemos procurar pela guia Gerenciamento de Artigo. Na maioria dos casos ela estará como uma guia desativada. No Salesforce Classic no ícone do + no menu.



Acessando o Gerenciamento do Artigo podemos clicar em Novo e selecionar o Tipo de Artigo e o Título (do artigo).



Ao clicarmos em OK, somos levados para a tela de edição do artigo.





Na tela de cadastro do Artigo temos alguns pontos interessantes:

  1. Ações a serem realizadas no Artigo, tais como Salvar e Publicar (é necessário publicar para que ele fique disponível para os usuários);
  2. Campos nativos/padrão do Artigo;
  3. Os campos personalizados que criamos para o Tipo de Artigo do Knowledge;
  4. A categoria que podemos colocar os Artigos (nesse exemplo, Microinformática);
  5. Os canais que deseja disponibilizar o Artigo.


Após preencher os dados e Salvar, podemos publicar o Artigo no botão Publicar...




É possível publicar agora ou programar uma data de publicação. Escolha a opção desejada, clique em OK e voilà!



* Precisa de um suporte ou consultoria nas Configurações da base de conhecimento Knowledge base? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ - Somos parceiros gerenciado Salesforce.


segunda-feira, 14 de agosto de 2017

Criando uma Comunidade Salesforce multilíngue

Nesse post iremos tratar a tradução de uma Comunidade Salesforce para mais de um idioma, de forma a deixar uma mesma Comunidade multilíngue. Porém, antes de começar é necessário analisar se até onde irá nossa Comunidade para saber se realmente vale a pena criar essa Comunidade Multi-idiomas. 

O primeiro problema é: Se formos deixarmos o Chatter habilitado na Comunidade, poderemos ter pessoas escrevendo posts em inglês e pessoas que somente conhecem o português lendo. O que pode tornar a experiência pobre para o usuário. 

Outro problema: Apesar de conseguirmos traduzir todos os metadados (como campos, botões, menus, etc), não é possível, com facilidade, alterar logomarcas e "lemas" que vem junto com a logomarca (tipo a Apple que trás o "think different" ou a Chevrolet com "Find new roads") se essas estiverem em uma imagem... ou mesmo alterar imagens de fundo no cabeçalho que venham a conter texto.

Mais um problema: Você teria muito mais trabalho para selecionar moderadores da comunidade que conheçam todas as línguas que deseja moderar, o que traria algum problema pra você...

Em fim, é necessário verificar bem se vale a pena. O recomendado mesmo é trabalhar uma comunidade por idioma. 

Porém, há casos que vale a pena fazer uma mesma comunidade. Então vamos ao passo a passo de como configurar essa funcionalidade. 

Observação: Iremos fazer todo o post usando o template Customer Service Napili community.

Passo 0 - Construir sua comunidade

O passo zero (isto é, antes de se preocupar em traduzir sua comunidade) é construir sua comunidade no idioma "mãe". Apesar de não ser extremamente necessário isso, creio ser importante já ter tudo pronto em uma língua para depois preocupar em traduzir (ou enviar para alguém fazer a tradução). Digo isso para não deixar nada para trás sem traduzir, ou ter que ficar indo no Workbench de tradução (falaremos mais sobre ele a seguir) toda vez que acrescentar um novo item à Comunidade.

Passo 1 - Workbench de tradução

O primeiro passo para se ter uma comunidade traduzida é criar a tradução dos metadados para o idioma desejado. Para tal, dentro do Salesforce (não na comunidade), vamos nas Configurações e na Busca rápida, vamos pesquisar por Configurações de tradução




Vamos ativar o Workbench de tradução, clicando em Ativar. Caso já tenha ativado, a opção Configurações de tradução já irá direto para a seleção dos idiomas desejados.

Clique em Adicionar para adicionar idiomas e definir usuários tradutores.




Tendo os idiomas ativos, vamos traduzir os meta dados, acessando a opção Traduzir do menu de Configurações (logo abaixo das Configurações de tradução do Workbench de tradução).

Neste, devemos selecionar o Idioma e o Componente (Configurar componente). Os itens que abrem a seguir, variam de acordo com componente. No nosso exemplo vamos traduzir um item do menu de navegação (que não carrega nenhuma outra opção além de idioma e componente):



Veja que veio o nome da minha Comunidade (preciso clicar no + para expandir) e dos meus itens de menu. Agora basta eu dar 2 cliques na coluna da direita (onde tem a seta vermelha) e na linha desejada para inserir a tradução. Em seguida clicar em Salvar.

Vou fazer a tradução apenas do menu Tópicos. Em inglês Topics. Em espanhol Temas.

Passo 2 - Adicionar os idiomas disponíveis na Comunidade

O segundo passo é feito dentro das configurações da Comunidade. Vamos acessar o Espaço de trabalho da comunidade. E em seguida em Administração
Em administração acessamos Páginas e em seguida Ir para o Site.com Studio.



No Site.com Studio, vemos o menu lateral, expandimos a opção Configuração do site e clicamos em Idiomas. Nas configurações de Idioma podemos configurar o idioma padrão e adicionar os idiomas secundários no botão Adicionar.



Adicionamos o idioma Inglês e Espanhol.


Passo 3 - Adicionando o Seletor de idiomas (Language selector)

Esse último passo não é nem necessário, caso você não venha usar as Comunidade com modo de acesso público (sem a necessidade de login para acessar a Comunidade). Do jeito que está a Comunidade agora, ela já está multilíngue para os (3 do nosso exemplo) idiomas, sendo escolhido automaticamente pelo Salesforce de acordo com o idioma configurado no cadastro do usuário.

Agora iremos adicionar o Seletor de idiomas, que permitirá ao visitante e somente a ele (usuários logados não verão o seletor de idiomas pois eles usam o idioma padrão do seu cadastro) selecionar seu idioma favorito. 

No Criador da Comunidade, acessamos os componentes e adicionamos o seletor de idiomas onde desejarmos:




Agora como acessamos a Comunidade sem logar conseguimos ver o seletor de idiomas e ver o resultado da tradução que fizemos do menu Tópicos:


Menu da Comunidade em Português, Inglês e Espanhol (respectivamente):




É isso aí por hoje... até mais!




* Precisa de um suporte ou consultoria nas configurações das Comunidades Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ - Somos parceiros gerenciado Salesforce.