Lectura desde entidades de HubSpot - AWS Glue

Lectura desde entidades de HubSpot

Requisito previo

Un objeto de HubSpot desde el cual le gustaría leer. Necesitará el nombre del objeto, como contacto o tarea. En la siguiente tabla se muestran las entidades admitidas.

Entidades compatibles como origen:

Entidad Versión de la API Se puede filtrar Admite límite Admite Ordenar por Admite Seleccionar * Admite particiones
Campañas v1 No No No
Empresas v3
Contactos v3
Listas de contactos v1 No No No
Acuerdos v3
Canalización de CRM (Canalizaciones de acuerdos) v1 No No No No
Eventos de correo electrónico v1 No No No
Calls v3
Notas v3
Correos electrónicos v3
Reuniones v3
Tareas v3
Correos v3
Objetos personalizados v3
Formularios v2 No No No No
Propietarios v3 No No No
Productos v3
Tickets v3
Flujos de trabajo v3 No No No No
Associations v4 No No No
Etiquetas de asociaciones v4 No No No No

Ejemplo:

hubspot_read = glueContext.create_dynamic_frame.from_options( connection_type="hubspot", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "contact", "API_VERSION": "v3" }

Detalles de la entidad y el campo de HubSpot:

API de HubSpot v4:

Entidad Versión de la API Campo Tipo de datos Operadores admitidos
Etiqueta de asociación v4 categoría Cadena N/A
typeId Entero N/A
etiqueta Cadena N/A
Associations desde Struct N/A
id Cadena "="
a Enumeración N/A
nota

En el caso del objeto Associations, para buscar asociaciones entre dos objetos, es necesario proporcionar el “ID de origen” (el ID del primer objeto) mediante un filtro obligatorio al crear un trabajo de AWS Glue. En ese caso, si quiere buscar asociaciones para varios ID de origen, tiene que proporcionar varios ID en la cláusula where. Por ejemplo: para buscar Associations de los ID de contacto “1” y “151”, debe proporcionar un filtro como where id=1 AND id=151.

API de HubSpot v3:

Entidad Campo Tipo de datos Operadores admitidos
Propietario firstName Cadena N/A
lastName Cadena N/A
createdAt DateTime N/A
archived Booleano N/A
teams Enumeración N/A
id Cadena N/A
userId Entero N/A
email Cadena N/A
updatedAt DateTime N/A
Flujo de trabajo name Cadena N/A
id Entero N/A
type Cadena N/A
enabled Booleano N/A
insertedAt Largo N/A
updatedAt Largo N/A
contactListIds Struct N/A
personaTagIds Enumeración N/A

Para las siguientes entidades, HubSpot proporciona puntos de conexión para obtener los metadatos de forma dinámica, de modo que la compatibilidad del operador se capture en el nivel del tipo de datos de cada entidad.

nota

DML_STATUS es un campo virtual que se agrega a cada registro en tiempo de ejecución para determinar su estado (CREADO/ACTUALIZADO).

Entidad Tipo de datos Operadores admitidos
Contacto Entero "=, !=, <, >, >=, <="
Largo "=, !=, <, >, >=, <="
Cadena “=, !=, LIKE”
Date N/A
DateTime “between”
Booleano "="
Enumeración N/A
Struct N/A
Empresa Entero "=, !=, <, >, >=, <="
Largo "=, !=, <, >, >=, <="
Cadena “=, !=, LIKE”
Date N/A
DateTime “between”
Booleano "="
Enumeración N/A
Struct N/A
Acuerdo Entero "=, !=, <, >, >=, <="
Largo "=, !=, <, >, >=, <="
Cadena “=, !=, LIKE”
Date N/A
DateTime “between”
Booleano "="
Enumeración N/A
Struct N/A
Ticket Entero "=, !=, <, >, >=, <="
Largo "=, !=, <, >, >=, <="
Cadena “=, !=, LIKE”
Date N/A
DateTime “between”
Booleano "="
Enumeración N/A
Struct N/A
Producto Entero "=, !=, <, >, >=, <="
Largo "=, !=, <, >, >=, <="
Cadena “=, !=, LIKE”
Date N/A
DateTime “between”
Booleano "="
Enumeración N/A
Struct N/A
Objeto personalizado Entero "=, !=, <, >, >=, <="
Largo "=, !=, <, >, >=, <="
Cadena “=, !=, LIKE”
Date N/A
DateTime “between”
Booleano "="
Enumeración N/A
Struct N/A
Llame a Entero "=, !=, <, >, >=, <="
Largo "=, !=, <, >, >=, <="
Cadena “=, !=, LIKE”
Date N/A
DateTime “between”
Booleano "="
Enumeración N/A
Struct N/A
Correo electrónico Entero "=, !=, <, >, >=, <="
Largo "=, !=, <, >, >=, <="
Cadena “=, !=, LIKE”
Date N/A
DateTime “between”
Booleano "="
Enumeración N/A
Struct N/A
Reunión Entero "=, !=, <, >, >=, <="
Largo "=, !=, <, >, >=, <="
Cadena “=, !=, LIKE”
Date N/A
DateTime “between”
Booleano "="
Enumeración N/A
Struct N/A
Nota Entero "=, !=, <, >, >=, <="
Largo "=, !=, <, >, >=, <="
Cadena “=, !=, LIKE”
Date N/A
DateTime “between”
Booleano "="
Enumeración N/A
Struct N/A
Tarea Entero "=, !=, <, >, >=, <="
Largo "=, !=, <, >, >=, <="
Cadena “=, !=, LIKE”
Date N/A
DateTime “between”
Booleano "="
Enumeración N/A
Struct N/A
Correo Entero "=, !=, <, >, >=, <="
Largo "=, !=, <, >, >=, <="
Cadena “=, !=, LIKE”
Date N/A
DateTime “between”
Booleano "="
Enumeración N/A
Struct N/A

API de HubSpot v2:

Entidad Campo Tipo de datos Operadores admitidos
Formulario portalId Entero N/A
guid Cadena N/A
name Cadena N/A
method Cadena N/A
cssClass Cadena N/A
redireccionamiento Cadena N/A
submitText Cadena N/A
notifyRecipients Cadena N/A
createdAt Largo N/A
updatedAt Largo N/A
ignoreCurrentValues Booleano N/A
deletable Booleano N/A
inlineMessage Booleano N/A
captchaEnabled Booleano N/A
cloneable Booleano N/A
formFieldGroups Enumeración N/A
editable Booleano N/A
deletedAt Entero N/A
themeName Cadena N/A
parentId Entero N/A
estilo Cadena N/A
isPublished Booleano N/A
publishAt Entero N/A
unpublishAt Entero N/A
publishedAt Entero N/A
kickbackEmailWorkflowId Cadena N/A
kickbackEmailsJson Entero N/A
customUid Cadena N/A
createMarketableContact Booleano N/A
editVersion Entero N/A
thankYouMessageJson Cadena N/A
themeColor Cadena N/A
alwaysCreateNewCompany Booleano N/A
internalUpdatedAt Largo N/A
ID de unidad de negocio Entero N/A
portableKey Cadena N/A
paymentSessionTemplateIds Enumeración N/A
selectedExternalOptions Enumeración N/A

API de HubSpot v1:

Entidad Campo Tipo de datos Operadores admitidos
Campaña id Entero N/A
IdAplicación Entero N/A
appName Cadena N/A
lastUpdatedTime Largo N/A
Contact_List dynamic Booleano N/A
name Cadena N/A
portalId Entero N/A
createdAt Largo N/A
listId Entero N/A
updatedAt Largo N/A
ListType Cadena N/A
filters Enumeración N/A
authorId Entero N/A
metaData Struct N/A
archived Booleano N/A
ilsFilterBranch Cadena N/A
filterIds Enumeración N/A
limitExempt Booleano N/A
interno Booleano N/A
readOnly Booleano N/A
parentId Entero N/A
Email_Event id Cadena N/A
type Cadena N/A
destinatario Cadena N/A
portalId Entero N/A
IdAplicación Entero N/A
appName Cadena N/A
emailCampaignId Largo N/A
attempt Entero N/A
created Largo N/A
sentBy Struct N/A
smtpId Cadena N/A
Respuesta Cadena N/A
subject Cadena N/A
cc Enumeración N/A
bcc Enumeración N/A
replyTo Enumeración N/A
desde Cadena N/A
dropReason Cadena N/A
dropMessage Cadena N/A
navegador Struct N/A
userAgent Cadena N/A
duración Largo N/A
location Struct N/A
filteredEvent Booleano N/A
deviceType Cadena N/A
suppressedReason Cadena N/A
suppressedMessage Cadena N/A
CRM_Pipeline pipelineId Cadena N/A
createdAt Largo N/A
updatedAt Largo N/A
objectType Cadena N/A
etiqueta Cadena N/A
displayOrder Entero N/A
active Booleano N/A
escenarios Enumeración N/A
objectTypeId Cadena N/A
predeterminado Booleano N/A

Consultas de particionamiento

Puede proporcionar las opciones adicionales de Spark PARTITION_FIELD, LOWER_BOUND, UPPER_BOUND y NUM_PARTITIONS si quiere utilizar la simultaneidad en Spark. Con estos parámetros, la consulta original se dividiría en un número NUM_PARTITIONS de subconsultas que las tareas de Spark pueden ejecutar simultáneamente.

  • PARTITION_FIELD: el nombre del campo que se utilizará para particionar la consulta.

  • LOWER_BOUND: un valor de límite inferior inclusivo del campo de partición elegido.

    Para el campo DateTime, aceptamos el valor en formato ISO.

    Ejemplos de valor válido:

    “2024-01-01T10:00:00.115Z"
  • UPPER_BOUND: un valor límite superior exclusivo del campo de partición elegido.

  • NUM_PARTITIONS: el número de particiones.

En la tabla siguiente, se describen los detalles de compatibilidad de campos de particiones de entidades:

Nombre de la entidad Campos de partición Tipo de datos
contact hs_object_id Largo
createdate, lastmodifieddate DateTime
company hs_object_id Largo
createdate, hs_lastmodifieddate DateTime
deal hs_object_id Largo
createdate, hs_createdate, hs_lastmodifieddate DateTime
ticket hs_object_id Largo
createdate, hs_lastmodifieddate DateTime
producto hs_object_id Largo
createdate, hs_lastmodifieddate DateTime
custom_object hs_object_id Largo
createdate, hs_lastmodifieddate DateTime
call hs_object_id Largo
createdate, hs_lastmodifieddate DateTime
email hs_object_id Largo
createdate, hs_lastmodifieddate DateTime
reunión hs_object_id Largo
createdate, hs_lastmodifieddate DateTime
note hs_object_id Largo
createdate, hs_lastmodifieddate DateTime
tarea hs_object_id Largo
createdate, hs_lastmodifieddate DateTime
postal_mail hs_object_id Largo
createdate, hs_lastmodifieddate DateTime

Ejemplo:

hubspot_read = glueContext.create_dynamic_frame.from_options( connection_type="hubspot", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "company", "API_VERSION": "v3", "PARTITION_FIELD": "hs_object_id" "LOWER_BOUND": "50" "UPPER_BOUND": "16726619290" "NUM_PARTITIONS": "10" }