Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .

El enlace a la publicación original, lo encontrarás al final de este artículo.

Con el lanzamiento de Spring '22, muchas características nuevas ahora están disponibles en la API de Pardot. Desde nuevos objetos hasta nuevas capacidades, esta publicación de blog destacará cómo usarlos. Asegúrese de consultar la Documentación para desarrolladores de Salesforce para la API de Pardot para obtener más información.

Uno de los mayores cambios es que se han agregado muchos más objetos a la API de Pardot. Esto permite escribir integraciones más diversas de una manera más fácil. A continuación se muestra la lista de nuevos objetos agregados en Spring '22. ¡Esto eleva el número total de objetos en Pardot API v5 a 30!

  • Contenido dinámico
  • Variación de contenido dinámico
  • Correo electrónico
  • Plantilla de correo electrónico
  • Actividad externa
  • Controlador de formulario
  • Campo de controlador de formulario
  • Página de destino
  • Etapa del ciclo de vida
  • Lista de correo electrónico
  • Membresía de la lista
  • Oportunidad
  • Perspectiva
  • Visitante

Continúe leyendo para ver un ejemplo de algunas de las nuevas capacidades.

Asignación de prospectos a una lista

Se agregaron puntos finales de administración de listas a Pardot API v5, lo que permite recuperar prospectos relacionados con una lista, agregar un prospecto a una lista o eliminar el prospecto de una lista.

Los ejemplos a continuación ilustran el uso de puntos finales con Python 3; sin embargo, la API de Pardot usa métodos RESTful HTTP que puede usar cualquier lenguaje de programación o utilidad, como Postman o cURL. Para seguir los ejemplos, será necesario instalar la biblioteca Python Requests; consulte el sitio web de Solicitudes sobre instalación y uso.

La API de Pardot utiliza Salesforce OAuth para la autenticación y estos ejemplos asumen que Salesforce OAuth, incluida una aplicación conectada, ya está configurado. Consulte la Guía de autenticación dentro de la documentación de la API de Pardot para obtener instrucciones sobre cómo configurar la autenticación.

El objetivo de este ejemplo es agregar todos los prospectos con una dirección de correo electrónico dada a una lista con un nombre dado. Para que esto funcione, enviamos una solicitud al extremo de Consulta de prospecto y al extremo de Consulta de lista para encontrar los ID asociados con el correo electrónico y el nombre. A continuación, enviamos una solicitud al extremo de consulta de membresía de la lista para ver si el cliente potencial ya existe en la lista. Si el cliente potencial no está en la lista, enviamos una solicitud al extremo Crear membresía de la lista para agregar el cliente potencial a la lista.

Primero, debemos configurar algunas variables globales sobre nuestra aplicación conectada Salesforce y el usuario, para que podamos autenticarnos. La función auxiliar get_access_token llama a Salesforce OAuth para recuperar el token de acceso. Asegúrese de actualizar las variables globales con los valores de su cuenta y organización.

 solicitudes de importación
importar json pardot_host = 'pi.demo.pardot.com'
ID de cliente = '3MVG9My4SLBrZj220D3wrrRZXdCLWFFSWrK32_qK3fkeMLiJmS8hQiBS9L'
secreto del cliente = '5F419BF9EE64DBC7CB3E95966EDC1E548604D9CD51E4E36ED6C039'
nombre de usuario = 'email@email.com'
contraseña = 'secreto'
businessUnitId = '0UvB0000008i6XGIAY' # Autenticarse con Salesforce OAuth y recuperar un token de acceso
def get_access_token(): authData = { 'grant_type': 'contraseña', 'id_cliente': id_cliente, 'secret_cliente': secreto_cliente, 'nombre de usuario': nombre de usuario, 'contraseña': contraseña } r = solicitudes.post('https://login.salesforce.com/services/oauth2/token', data=authData) cuerpo = r.json() access_token = cuerpo['access_token'] devolver token_de_acceso

Una vez que tengamos un token de acceso, podemos comenzar a usar la API de Pardot para encontrar el ID del cliente potencial, que se usará más adelante para buscar y crear la lista de miembros. Según la configuración de la cuenta de Pardot, puede haber uno, varios o ningún cliente potencial con la dirección de correo electrónico proporcionada, por lo que este código utiliza una matriz para almacenar los ID de clientes potenciales.

 def find_prospects_by_email(access_token, email): prospect_ids = [] next_page_token = '' mientras que next_page_token no es Ninguno: params = { 'campos': 'id, correo electrónico' } si len(next_page_token) > 0: params['nextPageToken'] = next_page_token encabezados = { 'Autorización': 'Portador' + access_token, 'Pardot-Business-Unit-Id': businessUnitId } r = solicitudes.get(f"https://{pardot_host}/api/v5/objects/prospects", params=params, headers=headers) si r.status_code != 200: print('Error al recuperar prospectos' + str(r.status_code) + 'n' + str(r.content)) dejar de fumar (1) cuerpo = r.json() para prospecto en cuerpo['valores']: si prospecto ['correo electrónico'] == correo electrónico: prospect_ids.append(cliente potencial['id']) next_page_token = cuerpo['nextPageToken'] si len(prospect_ids) == 0: print('Error al encontrar prospecto con correo electrónico' + str(correo electrónico)) salir(2) devolver prospect_ids

Tenga en cuenta que este código usa el parámetro nextPageToken , una nueva función en la versión 5 de la API de Pardot que simplifica el proceso de recuperación de más de una página de datos. El nextPageToken es más rápido que usar el offset , ya que el token de la página almacena información que se usa en los servidores para encontrar los registros correctos rápidamente.

Ahora que tenemos los ID de prospectos, necesitamos encontrar el ID de List. Este código también usa nextPageParameter para navegar eficientemente a través de las listas para encontrar uno con el nombre dado. ¡Todos los nuevos objetos en Pardot API v5 ofrecen el nextPageParameter !

 def find_list_id_by_name(access_token, nombre): next_page_token = '' mientras que next_page_token no es Ninguno: params = { 'campos': 'id, nombre, es dinámico' } si len(next_page_token) > 0: params['nextPageToken'] = next_page_token encabezados = { 'Autorización': 'Portador' + access_token, 'Pardot-Business-Unit-Id': businessUnitId } r = solicitudes.get(f"https://{pardot_host}/api/v5/objects/lists", params=params, headers=headers) si r.status_code != 200: print('Error al recuperar listas' + str(r.status_code) + 'n' + str(r.content)) dejar de fumar (1) cuerpo = r.json() para la lista en el cuerpo ['valores']: si lista['nombre'] == nombre: si lista['esDinámico']: print('No se pueden agregar miembros a una lista dinámica') dejar de fumar (3) lista de retorno['id'] next_page_token = cuerpo['nextPageToken'] print('Error al encontrar la lista con el nombre' + str(nombre)) salir(2)

El Id. del cliente potencial y el Id. de la lista se pueden usar para determinar si el cliente potencial tiene una lista de miembros. De manera similar al código anterior, usaremos el punto final de consulta en Membresía de la lista para determinar si el cliente potencial ya está asignado a la lista.

 def find_list_membership_by_list_and_prospect(access_token, list_id, prospect_id): next_page_token = '' mientras que next_page_token no es Ninguno: parámetros = { 'campos': 'id,prospectId', 'listId': list_id } si len(next_page_token) > 0: params['nextPageToken'] = next_page_token encabezados = { 'Autorización': 'Portador' + access_token, 'Pardot-Business-Unit-Id': businessUnitId } r = solicitudes.get(f"https://{pardot_host}/api/v5/objects/list-memberships", params=params, headers=headers) si r.status_code != 200: print('Error al recuperar miembros de la lista' + str(r.status_code) + 'n' + str(r.content)) dejar de fumar (1) cuerpo = r.json() para list_membership en body['values']: if list_membership['prospectId'] == prospect_id: volver list_membership['id'] next_page_token = cuerpo['nextPageToken'] volver Ninguno

Para finalizar la tarea de agregar el cliente potencial a la lista, podemos vincular todas las funciones anteriores para crear la membresía de la lista si no se encuentra.

 def create_list_membership(access_token, list_id, prospect_id): parámetros = {'campos': 'id'} datos = { 'prospectId': prospect_id, 'listId': list_id } encabezados = { 'Autorización': 'Portador' + access_token, 'Pardot-Business-Unit-Id': businessUnitId } r = solicitudes.post(f"https://{pardot_host}/api/v5/objects/list-memberships", params=params, json=data, headers=headers) si r.status_code != 201: print('Error al crear la membresía de la lista' + str(r.status_code) + 'n' + str(r.content)) dejar de fumar (1) cuerpo = r.json() devolver cuerpo['id'] token_de_acceso = obtener_token_de_acceso()
prospect_ids = find_prospects_by_email(access_token, 'codey@salesforce.com')
list_id = find_list_id_by_name(access_token, 'Pioneros')
para prospect_id en prospect_ids: list_membership_id = find_list_membership_by_list_and_prospect(access_token, list_id, prospect_id) si list_membership_id no es Ninguno: print('La membresía de la lista ya existe para el cliente potencial' + str(prospect_id)) demás: list_membership_id = create_list_membership(access_token, list_id, prospect_id) print('Creado nuevo prospecto de membresía de lista ' + str(prospect_id) + ': ' + str(list_membership_id))

Cuando ejecutamos este código, todos los prospectos asociados con el correo electrónico "codey@salesforce.com" se asignarán a la lista de "Trailblazers". Si no se encuentran prospectos o la lista no existe, se devuelve un error.

Conclusión

Con la disponibilidad general de Spring '22, muchos objetos y capacidades nuevos ahora están disponibles en la API de Pardot. Los ejemplos anteriores demuestran la facilidad con la que se pueden recuperar y procesar los datos utilizando los nuevos puntos finales en la API de Pardot. Asegúrese de consultar la Documentación para desarrolladores de Salesforce para la API de Pardot para ver otras cosas excelentes que se pueden lograr con la API de Pardot.

Sobre el Autor

Jared Pearson es ingeniero en Salesforce. Ha estado ayudando a los clientes a utilizar las tecnologías de Salesforce para crear funciones interesantes durante más de 10 años.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2022/03/whats-new-in-spring-22-for-the-pardot-api.html

Entradas recomendadas