Skip to content

Cómo automatizar la extracción de datos de Salesforce usando Python ☁️

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.

Los analistas se encuentran con frecuencia con la necesidad de automatizar el proceso de extracción de datos de los objetos de Salesforce para realizar análisis de datos o crear paneles de control localmente. Antes de la automatización, los analistas de mi organización tenían que seguir los siguientes pasos para crear informes de KPI:

  • Inicie sesión a través del sitio de Salesforce
  • Actualice manualmente los campos para varios informes.
  • Descargue cada informe como un archivo CSV
  • Realizar cálculos, manipular los datos y crear un conjunto de datos agregado
  • Finalmente, péguelo en una hoja de Google para usarlo con fines de informes.

Este proceso era manual, lento y propenso a errores. Sin embargo, no tiene por qué ser así. Puede automatizar todo el proceso con la ayuda de un simple script de Python y la API de Salesforce.

Recuperar datos de Salesforce usando Python

Para comenzar, instale un paquete de código abierto llamado Simple Salesforce . Este es un cliente API REST de Salesforce básico que permite a los usuarios descargar el informe prediseñado directamente desde Salesforce o generar un nuevo conjunto de datos consultando la API de Salesforce usando SOQL (Salesforce Object Query Language).

Configure su paquete de Python y el acceso a la API

  1. El primer paso es instalar el Pitón package , que le permite importar todos los paquetes necesarios en su archivo Python.
 pip instalar simple_salesforce
 desde simple_salesforce importar Salesforce
solicitudes de importación
importar pandas como pd
desde io import StringIO
  1. La Salesforce permite conectarse a la API (necesitará acceso a la API y sus credenciales de Salesforce). Si necesita ayuda para conectarse:
    1. Comuníquese con su administrador de Salesforce para obtener acceso a la API.
    2. Si no tiene un token de seguridad, inicie sesión en su cuenta de Salesforce y vaya a la página de configuración. Luego haga clic en Restablecer mi token de seguridad en Mi información personal , que le enviará los detalles por correo electrónico. Si no ve esta opción, comuníquese con su administrador de Salesforce.

Nota: asegúrese de proteger sus contraseñas y claves; puede establecer variables de entorno para estas credenciales dentro de su secuencia de comandos.

 sf = Salesforce (nombre de usuario = '', contraseña = '', security_token = '')

Acceda a sus datos de Salesforce

Hay dos opciones diferentes para obtener datos de Salesforce en un DataFrame en Python: una mediante la descarga de un informe de Salesforce y la otra mediante la consulta de los datos mediante SOQL.

Opción 1: descargar un informe de Salesforce
Descargue el informe personalizado de Salesforce predefinido utilizando el get() Python Requests y proporcionando su URL de instancia de Salesforce y el ID del informe que se descargará. Además, puede leer el archivo .csv como un DataFrame para una mayor manipulación de datos.

 sf_instance = 'https://oneappexchange.lightning.force.com/' # Su URL de instancia de Salesforce
reportId = '' # agregar ID de informe
export = '? isdtp = p1 & export = 1 & enc = UTF-8 & xf = csv'
sfUrl = sf_instance + reportId + export
respuesta = request.get (sfUrl, headers = sf.headers, cookies = {'sid': sf.session_id})
download_report = response.content.decode ('utf-8')
df1 = pd.read_csv (StringIO (download_report))

Opción 2: consultar los datos usando SOQL
Consulte los datos de Salesforce directamente mediante SOQL, que es similar al lenguaje de consulta estructurado (SQL) pero se aplica solo a los datos de Salesforce. Para obtener detalles adicionales sobre SOQL y sus limitaciones, consulte la documentación de SOQL .

Encontrar metadatos

  • Busque los nombres de API de campo y objeto navegando a lo siguiente: URL de instancia de organización -> Configuración -> Administrador de objetos -> Campo y relaciones.


  • Ejecute el siguiente comando para verificar todos los nombres de campo del objeto de Salesforce usando Python. El nombre de la API del objeto de Salesforce es: UserInstall__c .
 descri = sf.UserInstall__c.describe ()
[campo ['nombre'] para el campo en descri ['campos']]

Obteniendo los datos con SOQL

Simple Salesforce proporciona el método query_all para obtener datos mediante SOQL. Puede consultar más de un objeto a la vez mediante consultas de relación . Esto es útil en los casos en los que necesita fusionar datos de diferentes objetos de Salesforce en un solo conjunto de datos. Listing es otro objeto, y puede extraer el campo de este objeto usando el campo de búsqueda especificando la notación de puntos Listing__r.ProviderName__c .

 resultados = sf.query_all ("" " Seleccione Fecha de creación, Listing__r.RecordTypeSnapshot__c, Nombre, Listing__r.ProviderName__c de UserInstall__c donde CreatedDate = LAST_N_DAYS: 7 "" ")

Construyendo un DataFrame a partir de un diccionario

Los resultados de la consulta SOQL están en un formato de diccionario ordenado. Puede iterar a través de los datos anidados y generar un DataFrame (como se muestra a continuación).

 records = [dict (CreatedDate = rec ['CreatedDate'], Record_Type = rec ['Listing__r'] ['RecordTypeSnapshot__c'], Nombre = rec ['Nombre'], ProviderName = rec ['Listing__r'] ['ProviderName__c']) para rec en los resultados ['registros']]
df = pd.DataFrame (registros)

Automatización de informes y procesamiento de datos

Con sus datos como un DataFrame en Python, puede realizar tanto la ordenación de datos como las métricas agregadas juntas como desee. También puede elegir cómo generar los datos. Por ejemplo, es posible que desee exportarlo a Google Sheets utilizando la API de Google Sheet y aprovechar el paquete Pygsheets Python o ingerirlo en una tabla de base de datos. Además, puede programar el script de Python en una plataforma como Airflow para que se ejecute automáticamente a una hora programada y cree un tablero basado en este conjunto de datos agregado.

Conclusión

¡Con suerte, esta publicación le resultó útil! Este sencillo script automatiza el proceso de generación de informes y extracción de datos, lo que le ahorra a nuestro equipo horas de trabajo manual y reduce el riesgo de errores tipográficos. Para obtener más información, consulte nuestro código de muestra en GitHub .

Sobre el Autor

Rutuja Patil es gerente de análisis en el equipo de análisis de plataforma en Salesforce, donde se centra en análisis de negocios, automatización e informes mediante herramientas de BI. Rutuja tiene una maestría en sistemas de información y está certificada en Tableau.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2021/09/how-to-automate-data-extraction-from-salesforce-using-python.html

Últimas novedades 
de EGA Futura
1954
Desde hace más de 25 años potenciamos a las Empresas de Iberoamérica
🎬 Video de EGA Futura » Conceptos de Seguridad (EGA Futura ERP / Salesforce)

🎬 Video de EGA Futura » Conceptos de Seguridad (EGA Futura ERP / Salesforce)

🎬 Video de Juan Manuel Garrido » Claves para tu Productividad diaria 🙌✅

🎬 Video de EGA Futura » Facturación Electrónica en Uruguay » Conceptos básicos con EGA Futura Windows

🎬 Video de EGA Futura » Facturación Electrónica en Uruguay » Configuración de EGA Futura Windows

🎬 Video de EGA Futura » Facturación Electrónica en Uruguay » Funcionamiento con EGA Futura Windows

🎬 Video de EGA Futura » Configuración de la Plataforma EGA Futura

🎬 Video de EGA Futura » Configuración de usuario en EGA Futura

🎬 Video de EGA Futura » Como automatizar la publicación en Redes Sociales?

🎬 Video de Juan Manuel Garrido » Cómo restaurar la configuración de fábrica de EGA Futura Windows sin perder la información

🎬 Video de Juan Manuel Garrido » Factura electrónica: Prueba de Factura Electronica previa a la activacion

🎬 Video de EGA Futura » Como se registran los Beneficios de cada Empleado en la base de datos de EGA Futura

🎬 Video de EGA Futura » EGA Futura Time Clock » Reloj de Control horario y asistencia

🎬 Video de EGA Futura » Como registrar Observaciones en un Empleado dentro de EGA Futura People?

🎬 Video de EGA Futura » Cómo registrar la Educación de cada Empleado en EGA Futura People?

🎬 Video de EGA Futura » Como hacer la Desvinculación de un Empleado? (Offboarding)

🎬 Video de EGA Futura » Como registrar Habilidades o Skills de empleados dentro de EGA Futura

🎬 Video de EGA Futura » Como hacer el Onboarding o Proceso de Incorporación de un Empleado?

🎬 Video de EGA Futura » Cómo administrar Turno de trabajo dentro de EGA Futura

🎬 Video de EGA Futura » Que es un Ticket interno dentro de la Plataforma EGA Futura

🎬 Video de EGA Futura » Que son los Entrenamientos de Empleado en EGA Futura people?

🎬 Video de EGA Futura » Qué son los Epics dentro de EGA Futura

🎬 Video de EGA Futura » Qué es EGA Futura People?

🎬 Video de EGA Futura » EGA Futura People » Asistencias

🎬 Video de EGA Futura » Soporte EGA Futura » Software de Gestión Windows vs Software de Gestión Nube 🤩

🎬 Video de EGA Futura » ツ Comparando un Objeto con un Fichero

Cómo automatizar la extracción de datos de Salesforce usando Python ☁️
Cómo automatizar la extracción de datos de Salesforce usando Python ☁️