RetrieveMscrmRecords
Descrição
A função RetrieveMscrmRecords recupera dados de entidades do Microsoft Dynamics CRM diretamente via AMPscript. Você define a entidade, os campos que quer trazer e um filtro simples (campo, operador e valor) para buscar os registros desejados. É útil quando sua operação no Brasil integra o SFMC com o Dynamics CRM - por exemplo, para puxar dados de contatos ou oportunidades e personalizar e-mails de régua de relacionamento.
Sintaxe
RetrieveMscrmRecords(entityName, fieldsToRetrieve, queryFieldName, queryFieldOperator, queryFieldValue)
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| entityName | string | Sim | Nome da entidade do Microsoft Dynamics CRM da qual você quer recuperar registros (ex: contact, account, lead). |
| fieldsToRetrieve | string | Sim | Lista de campos a serem retornados, separados por vírgula. |
| queryFieldName | string | Sim | Nome do campo usado como filtro na consulta. |
| queryFieldOperator | string | Sim | Operador usado no filtro da consulta. |
| queryFieldValue | string | Sim | Valor a ser comparado no filtro. |
Exemplo básico
Recuperando o ID, primeiro nome e sobrenome de contatos no Dynamics CRM cujo sobrenome é "Santos".
%%[
SET @registros = RetrieveMscrmRecords(
"contact",
"contactid,firstname,lastname",
"lastname",
"=",
"Santos"
)
SET @totalRegistros = RowCount(@registros)
IF @totalRegistros > 0 THEN
SET @linha = Row(@registros, 1)
SET @contactId = Field(@linha, "contactid")
SET @primeiroNome = Field(@linha, "firstname")
SET @sobrenome = Field(@linha, "lastname")
]%%
Contato encontrado: %%=v(@primeiroNome)=%% %%=v(@sobrenome)=%%
ID: %%=v(@contactId)=%%
%%[ ELSE ]%%
Nenhum contato encontrado com sobrenome Santos.
%%[ ENDIF ]%%
Saída:
Contato encontrado: Maria Santos
ID: 3a8b2c4d-1234-5678-9abc-def012345678
Exemplo avançado
Cenário de régua de relacionamento: você precisa buscar todos os contatos de uma cidade específica no Dynamics CRM para personalizar um e-mail de campanha regional da Lojas Vitória.
%%[
SET @contatos = RetrieveMscrmRecords(
"contact",
"contactid,firstname,lastname,emailaddress1,address1_city",
"address1_city",
"=",
"São Paulo"
)
SET @total = RowCount(@contatos)
IF @total > 0 THEN
FOR @i = 1 TO @total DO
SET @linha = Row(@contatos, @i)
SET @nome = Field(@linha, "firstname")
SET @sobrenome = Field(@linha, "lastname")
SET @email = Field(@linha, "emailaddress1")
SET @cidade = Field(@linha, "address1_city")
]%%
<tr>
<td>%%=v(@nome)=%% %%=v(@sobrenome)=%%</td>
<td>%%=v(@email)=%%</td>
<td>%%=v(@cidade)=%%</td>
</tr>
%%[
NEXT @i
ELSE
]%%
<p>Nenhum contato encontrado em São Paulo.</p>
%%[ ENDIF ]%%
Saída:
Maria Santos maria.santos@email.com.br São Paulo
João Silva joao.silva@email.com.br São Paulo
Ana Lima ana.lima@email.com.br São Paulo
Observações
- O resultado retornado é um rowset. Para iterar sobre os registros, use RowCount, Row e Field - exatamente como faria com resultados de LookupRows.
⚠️ Atenção: Essa função depende da integração entre o Marketing Cloud e o Microsoft Dynamics CRM estar configurada corretamente na sua conta. Sem o conector ativo, a chamada vai falhar.
💡 Dica: Use nomes de entidade e campos exatamente como estão definidos no schema do seu Dynamics CRM. Nomes com capitalização ou grafia incorreta podem resultar em erro na consulta.
Funções relacionadas
- RetrieveMscrmRecordsFetchXml - para consultas mais complexas usando FetchXML
- CreateMscrmRecord - para criar registros no Dynamics CRM
- UpdateMscrmRecords - para atualizar registros existentes
- UpsertMscrmRecord - para inserir ou atualizar registros
- DescribeMscrmEntities - para listar as entidades disponíveis
- DescribeMscrmEntityAttributes - para descobrir os campos de uma entidade
- RowCount - para contar registros no rowset retornado
- Row - para acessar uma linha específica do rowset
- Field - para extrair o valor de um campo de uma linha