Objetos personalizados

APPLICABLE PRODUCTS
  • Marketing Hub
    • Enterprise
  • Sales Hub
    • Enterprise
  • Service Hub
    • Enterprise
  • CMS Hub
    • Enterprise

HubSpot proporciona un conjunto de objetos estándar de CRM con cada cuenta, como contactos, empresas y acuerdos. Sin embargo, también puede crear sus propios objetos personalizados para representar y organizar los datos de su CRM en función de sus necesidades empresariales. Utilice la API de objetos personalizados para definir objetos, propiedades y asociaciones personalizadas con otros objetos de CRM. 

Para ver un video de los objetos personalizados, consulta Datos en HubSpot: Objetos personalizados y otras herramientas en la Academia de HubSpot.

A continuación, aprenda a crear y gestionar objetos personalizados a través de la API, y vea un recorrido por la creación de un objeto personalizado de ejemplo.

Nota: los objetos personalizados son específicos de cada cuenta, con un máximo de 10 objetos personalizados por cuenta.

Métodos de autentificación

Puedes crear, leer y actualizar objetos personalizados utilizando uno de los siguientes métodos de autenticación

Nota: a partir del 30 de noviembre de 2022, las claves de API de HubSpot ya no podrán usarse como un método de autenticación para acceder a las API de HubSpot. Además, a partir del 15 de julio de 2022, las cuentas sin una clave de API de HubSpot ya hayan sido generadas no podrán crear otra.

En cambio, deberás usar un token de acceso a aplicaciones privadas o utilizar OAuth para autenticar llamadas de API. Más información sobre este cambio y cómo migrar una integración de claves de API para usar una aplicación privada en su lugar.

Crear un objeto personalizado

Para crear un objeto personalizado, primero debes definir el esquema del objeto. El esquema incluye el nombre del objeto, las propiedades y las asociaciones con otros objetos de CRM. Puedes encontrar los detalles completos de la solicitud de esquema en la pestaña Esquema de objeto en la parte superior de este artículo. También puedes ver una solicitud de ejemplo en el tutorial de ejemplo a continuación.

Para crear el esquema de objeto personalizado, haz una solicitud POST a crm/v3/schemas. En el cuerpo de la solicitud, incluye definiciones para el esquema de objetos, incluidos su nombre, propiedades y asociaciones.

Al asignarle un nombre a tu objeto personalizado, ten en cuenta lo siguiente:

  • Una vez que creas un objeto, el nombre y la etiqueta del objeto no se pueden cambiar.
  • El nombre sólo puede contener letras, números, guiones bajos y guiones.
  • El primer carácter del nombre debe ser una letra.
  • Las etiquetas largas pueden estar cortadas en ciertas partes del producto.

A continuación, lee acerca de las definiciones requeridas para las propiedades y asociaciones del objeto. 

Propiedades

Las propiedades que defina en el cuerpo de la solicitud se utilizarán para almacenar información en registros de objetos personalizados individuales.

Ten en cuenta: sólo puedes tener dos propiedades de ID únicas para cada objeto personalizado en tu cuenta de HubSpot.

Usarás tus propiedades definidas para completar los siguientes campos basados en propiedades:

  • requiredProperties: las propiedades que se requieren al crear un nuevo registro de objeto personalizado.
  • searchableProperties: las propiedades que se indexan para buscar en HubSpot.
  • primaryDisplayProperty: la propiedad utilizada para asignar nombre a registros de objetos personalizados individuales.
  • secondaryDisplayProperties: las propiedades que aparecen en los registros individuales bajo primaryDisplayProperty.
    custom-object-secondary-display-properties0
    • La primera propiedad que se indica en secondaryDisplayProperties también se agregará como un cuarto filtro en la página de índice de objetos si es uno de los siguientes tipos de propiedad:
      • string
      • number
      • enumeration
      • boolean
      • datetime
        custom-object-dashboard-filter0
    • Para eliminar una propiedad de visualización de la interfaz de usuario, primero deberás eliminar la propiedad y luego volver a crearla.

Por opción predeterminada, cuando se crean propiedades a través de la solicitud de esquema, el tipo de propiedad se establece en cadena y el fieldType se establece en texto. A continuación se muestran los valores que puedes usar para crear diferentes tipos de propiedades.

Valores válidos para el tipo
type Descripción Valores fieldType válidos
enumeration Una cadena que representa un conjunto de opciones separadas por un punto y coma  booleancheckbox, checkbox, radio, select
date Un Valor con formato ISO 8601 que representa un día, mes y año específicos. date
dateTime Un Valor con formato ISO 8601 que representa un día, mes y hora específicos del día. La aplicación HubSpot no mostrará la hora del día. date
string Una cadena de texto sin formato, limitada a 65.536 caracteres. file, text, textarea
number Un valor de número que contiene dígitos numéricos y, como máximo, un decimal. number
Valores válidos para fieldType 
fieldType Descripción
booleancheckbox Una entrada que permitirá a los usuarios seleccionar Sí o No. Cuando se use en un formulario, se mostrará como una única casilla de comprobación.
checkbox Una lista de casillas de comprobación que permitirán al usuario seleccionar varias opciones de un conjunto de opciones permitidas para la propiedad.
date Un valor de fecha, que se muestra como selector de fechas.
file Permite que un archivo se cargue en un formulario. Almacenar y mostrar como un enlace de URL al archivo.
number Una cadena de numerales o números escritos en notación decimal o científica.
radio Una entrada que permitirá a los usuarios seleccionar una de un conjunto de opciones permitidas para la propiedad. Cuando se usa en un formulario, se mostrará como un conjunto de botones de radio.
select Una entrada desplegable que permitirá a los usuarios seleccionar una de un conjunto de opciones permitidas para la propiedad.
text Una cadena de texto sin formato, que se muestra en una entrada de texto de una sola línea.
textarea Una cadena de texto sin formato, que se muestra como entrada de texto de varias líneas.

Asociaciones

HubSpot asociará automáticamente un objeto personalizado con los correos electrónicos, reuniones, notas, tareas, llamadas y objetos de conversaciones. Además, puedes asociar tu objeto personalizado con otros objetos de HubSpot estándar u otros objetos personalizados.

Al crear asociaciones a través de la solicitud de creación de esquema, identifica objetos estándar usando su nombre y objetos personalizados usando su valor objectTypeId. Por ejemplo:

// Example associatedObjects array "associatedObjects": [ "CONTACT", "COMPANY", "TICKET", "DEAL", "2-3453932" ]

Recuperar objetos personalizados existentes

Para recuperar todos los objetos personalizados, haz una solicitud GET a/crm/v3/schemas.

Para recuperar un objeto personalizado específico, realiza una solicitud GET a uno de los siguientes puntos de terminación:

  • /crm/v3/schemas/{objectTypeId}
  • /crm/v3/schemas/{fullyQualifiedName}. Puedes encontrar un objeto

    fullyQualifiedName en su esquema, que se deriva de p{portal_id}_{object_name}.

Por ejemplo, la URL de tu solicitud podría verse de la siguiente manera:

https://api.hubapi.com/crm/v3/schemas/2-3465404

Actualizar objetos personalizados existentes

Para actualizar el esquema de un objeto, realiza una solicitud PATCH en https://api.hubapi.com/crm/v3/schemas/{objectTypeId}.

Una vez que se define tu objeto personalizado, el nombre y las etiquetas (singular y plural) no se pueden cambiar. Sin embargo, puedes actualizar los campos requiredProperties , searchableProperties , primaryDisplayProperty y secondaryDisplayProperties.

Puedes actualizar las propiedades de un objeto en HubSpot o usando la API de propiedades.

Actualizar asociaciones

Para agregar otras asociaciones de objetos a tu objeto personalizado, haz una solicitud POST a/crm/v3/esquemas/{objectTypeId}/asociaciones.

Sólo puedes asociar tu objeto personalizado con objetos de HubSpot estándar (por ejemplo, contacto, empresa, negocio o ticket) u otros objetos personalizados. En el campo toObjectTypeId, identifica los objetos personalizados por su valor objectTypeId y los objetos estándar por su nombre. Por ejemplo:

// Example association request body { "fromObjectTypeId": "2-3444025", "toObjectTypeId": "ticket", "name": "cat_to_ticket" }

Eliminar un objeto personalizado

Solo puedes eliminar un objeto personalizado después de eliminar todas las instancias de objetos de ese tipo. Para eliminar un objeto personalizado, haz una solicitud DELETE en/crm/v3/schemas/{objectType}.

Si necesitas crear un nuevo objeto personalizado con el mismo nombre que el objeto eliminado, debes eliminar el esquema haciendo una solicitud BORRAR a /crm/v3/schemas/{objectType}?archived=true. Solo puedes eliminar un tipo de objeto personalizado después de eliminar todas las instancias de objeto de ese tipo, asociaciones y propiedades de objeto personalizadas.

Ejemplo de objeto personalizado

Lo siguiente es un tutorial para crear un objeto personalizado de ejemplo. Para obtener detalles completos de las solicitudes que se muestran, consulte la pestaña Definición de objeto en la parte superior del artículo.

Este tutorial cubre:

  1. La creación de un esquema de objeto personalizado.
  2. La creación de un registro de objeto personalizado.
  3. La asociación de un registro de objeto personalizado con un contacto de HubSpot.
  4. La creación de una nueva definición de asociación entre el objeto personalizado y el ticket de HubSpot.
  5. La creación de una nueva definición de propiedad.
  6. La actualización del esquema de objetos (es decir, secondaryDisplayProperties) con la nueva propiedad.

Objetivo: un concesionario de automóviles llamado CarSpot quiere almacenar su inventario en HubSpot usando un objeto personalizado. Para hacer seguimiento de la propiedad del vehículo y las compras, asociarán los autos con registros de contactos. A lo largo del camino, también harán seguimiento del mantenimiento del vehículo utilizando tickets de HubSpot y propiedades personalizadas.

Creación del esquema del objeto

CarSpot necesita crear un esquema de objeto que pueda representar los siguientes atributos como propiedades: 

  1. Condición (nueva o usada): enumeración
  2. Fecha de recepción en el concesionario: fecha
  3. Fecha: número
  4. Marca: cadena
  5. Modelo: cadena
  6. VIN: cadena (valor único)
  7. Color: cadena
  8. Kilometraje: número
  9. Precio: número
  10. Notas: cadena

También definirán una asociación entre su objeto personalizado y el objeto de contactos estándar para que puedan conectar autos a compradores potenciales. 

Con su modelo de datos finalizado, crearán el esquema de objeto haciendo una solicitud POST a /crm/v3/schemas con el siguiente cuerpo de solicitud:all

// Example POST request to https://api.hubspot.com/crm/v3/schemas { "name": "car", "labels": { "singular": "Car", "plural": "Cars" }, "primaryDisplayProperty": "model", "secondaryDisplayProperties": [ "make" ], "searchableProperties": [ "year", "make", "vin", "model" ], "requiredProperties": [ "year", "make", "vin", "model" ], "properties": [ { "name": "condition", "label": "Condition", "type": "enumeration", "fieldType": "select", "options": [ { "label": "New", "value": "new" }, { "label": "Used", "value": "used" } ] }, { "name": "date_received", "label": "Date received", "type": "date", "fieldType": "date" }, { "name": "year", "label": "Year", "type": "number", "fieldType": "number" }, { "name": "make", "label": "Make", "type": "string", "fieldType": "text" }, { "name": "model", "label": "Model", "type": "string", "fieldType": "text" }, { "name": "vin", "label": "VIN", "type": "string", "hasUniqueValue": true, "fieldType": "text" }, { "name": "color", "label": "Color", "type": "string", "fieldType": "text" }, { "name": "mileage", "label": "Mileage", "type": "number", "fieldType": "number" }, { "name": "price", "label": "Price", "type": "number", "fieldType": "number" }, { "name": "notes", "label": "Notes", "type": "string", "fieldType": "text" } ], "associatedObjects": [ "CONTACT" ] }

La respuesta para esta llamada de API se vería similar a:Copiar todo

// Example response body HTTP 201 { "name": "car" "labels": { "singular": "Car", "plural": "Cars" }, "primaryDisplayProperty": "model", "secondaryDisplayProperties": [ "make" ], "searchableProperties": [ "year", "make", "vin", "model" ], "requiredProperties": [ "year", "make", "vin", "model" ], "archived": false, "restorable": true, "metaType": "PORTAL_SPECIFIC", "id": "3465404", "fullyQualifiedName": "p1234567_cars", "createdAt": "2021-10-01T15:15:07.340Z", "updatedAt": "2021-10-01T15:15:07.340Z", "objectTypeId": "2-3465404", "properties": [ { { "id": "529881", "createdAt": "2020-02-23T01:24:54.508774Z", "updatedAt": "2020-02-23T01:24:54.508774Z", "properties": [ { "updatedAt": "2020-02-23T01:24:54.665Z", "createdAt": "2020-02-23T01:24:54.665Z", "name": "condition", "label": "Condition", "type": "enumeration", "fieldType": "select", "groupName": "car_information", "options": [ { "label": "New", "value": "new", "displayOrder": -1, "hidden": false }, { "label": "Used", "value": "used", "displayOrder": -1, "hidden": false } ], "displayOrder": -1, "calculated": false, "externalOptions": false, "archived": false, "hasUniqueValue": false, "hidden": false, "modificationMetadata": { "archivable": true, "readOnlyDefinition": false, "readOnlyValue": false }, "formField": false }, { "updatedAt": "2020-02-23T01:24:54.667Z", "createdAt": "2020-02-23T01:24:54.667Z", "name": "date_received", "label": "Date received", "type": "date", "fieldType": "date", "groupName": "car_information", "displayOrder": -1, "calculated": false, "externalOptions": false, "archived": false, "hasUniqueValue": false, "hidden": false, "modificationMetadata": { "archivable": true, "readOnlyDefinition": false, "readOnlyValue": false }, "formField": false }, { "updatedAt": "2020-02-23T01:24:54.667Z", "createdAt": "2020-02-23T01:24:54.667Z", "name": "year", "label": "Year", "type": "number", "fieldType": "number", "groupName": "car_information", "displayOrder": -1, "calculated": false, "externalOptions": false, "archived": false, "hasUniqueValue": false, "hidden": false, "modificationMetadata": { "archivable": true, "readOnlyDefinition": false, "readOnlyValue": false }, "formField": false }, { "updatedAt": "2020-02-23T01:24:54.670Z", "createdAt": "2020-02-23T01:24:54.670Z", "name": "model", "label": "Model", "type": "string", "fieldType": "text", "groupName": "car_information", "displayOrder": -1, "calculated": false, "externalOptions": false, "archived": false, "hasUniqueValue": false, "hidden": false, "modificationMetadata": { "archivable": true, "readOnlyDefinition": false, "readOnlyValue": false }, "formField": false }, { "updatedAt": "2020-02-23T01:24:54.670Z", "createdAt": "2020-02-23T01:24:54.670Z", "name": "vin", "label": "VIN", "type": "string", "fieldType": "text", "groupName": "car_information", "displayOrder": -1, "calculated": false, "externalOptions": false, "archived": false, "hasUniqueValue": true, "hidden": false, "modificationMetadata": { "archivable": true, "readOnlyDefinition": false, "readOnlyValue": false }, "formField": false }, { "updatedAt": "2020-02-23T01:24:54.670Z", "createdAt": "2020-02-23T01:24:54.670Z", "name": "notes", "label": "Notes", "type": "string", "fieldType": "text", "groupName": "car_information", "displayOrder": -1, "calculated": false, "externalOptions": false, "archived": false, "hasUniqueValue": false, "hidden": false, "modificationMetadata": { "archivable": true, "readOnlyDefinition": false, "readOnlyValue": false }, "formField": false }, { "updatedAt": "2020-02-23T01:24:54.670Z", "createdAt": "2020-02-23T01:24:54.670Z", "name": "color", "label": "Color", "type": "string", "fieldType": "text", "groupName": "car_information", "displayOrder": -1, "calculated": false, "externalOptions": false, "archived": false, "hasUniqueValue": false, "hidden": false, "modificationMetadata": { "archivable": true, "readOnlyDefinition": false, "readOnlyValue": false }, "formField": false }, { "updatedAt": "2020-02-23T01:24:54.667Z", "createdAt": "2020-02-23T01:24:54.667Z", "name": "mileage", "label": "Mileage", "type": "number", "fieldType": "number", "groupName": "car_information", "displayOrder": -1, "calculated": false, "externalOptions": false, "archived": false, "hasUniqueValue": false, "hidden": false, "modificationMetadata": { "archivable": true, "readOnlyDefinition": false, "readOnlyValue": false }, "formField": false }, { "updatedAt": "2020-02-23T01:24:54.667Z", "createdAt": "2020-02-23T01:24:54.667Z", "name": "price", "label": "Price", "type": "number", "fieldType": "number", "groupName": "car_information", "displayOrder": -1, "calculated": false, "externalOptions": false, "archived": false, "hasUniqueValue": false, "hidden": false, "modificationMetadata": { "archivable": true, "readOnlyDefinition": false, "readOnlyValue": false }, "formField": false }, { "updatedAt": "2020-02-23T01:24:54.667Z", "createdAt": "2020-02-23T01:24:54.667Z", "name": "make", "label": "Make", "type": "string", "fieldType": "text", "groupName": "car_information", "displayOrder": -1, "calculated": false, "externalOptions": false, "archived": false, "hasUniqueValue": false, "hidden": false, "modificationMetadata": { "archivable": true, "readOnlyDefinition": false, "readOnlyValue": false }, "formField": false } ], "associations": [ { "id": "1", "createdAt": null, "updatedAt": null, "fromObjectTypeId": "2-529881", "toObjectTypeId": "0-1", "name": "car_to_contact" }, { "id": "2", "createdAt": null, "updatedAt": null, "fromObjectTypeId": "0-1", "toObjectTypeId": "2-529881", "name": "car_to_contact" }, { "id": "13", "createdAt": null, "updatedAt": null, "fromObjectTypeId": "2-529881", "toObjectTypeId": "0-27", "name": "car_to_task" }, { "id": "14", "createdAt": null, "updatedAt": null, "fromObjectTypeId": "0-27", "toObjectTypeId": "2-529881", "name": "car_to_task" }, { "id": "15", "createdAt": null, "updatedAt": null, "fromObjectTypeId": "2-529881", "toObjectTypeId": "0-46", "name": "car_to_note" }, { "id": "16", "createdAt": null, "updatedAt": null, "fromObjectTypeId": "0-46", "toObjectTypeId": "2-529881", "name": "car_to_note" }, { "id": "7", "createdAt": null, "updatedAt": null, "fromObjectTypeId": "2-529881", "toObjectTypeId": "0-48", "name": "car_to_call" }, { "id": "8", "createdAt": null, "updatedAt": null, "fromObjectTypeId": "0-48", "toObjectTypeId": "2-529881", "name": "car_to_call" }, { "id": "11", "createdAt": null, "updatedAt": null, "fromObjectTypeId": "2-529881", "toObjectTypeId": "0-51", "name": "car_to_conversation_session" }, { "id": "12", "createdAt": null, "updatedAt": null, "fromObjectTypeId": "0-51", "toObjectTypeId": "2-529881", "name": "car_to_conversation_session" }, { "id": "9", "createdAt": null, "updatedAt": null, "fromObjectTypeId": "2-529881", "toObjectTypeId": "0-49", "name": "car_to_email" }, { "id": "10", "createdAt": null, "updatedAt": null, "fromObjectTypeId": "0-49", "toObjectTypeId": "2-529881", "name": "car_to_email" }, { "id": "5", "createdAt": null, "updatedAt": null, "fromObjectTypeId": "2-529881", "toObjectTypeId": "0-47", "name": "car_to_meeting_event" }, { "id": "6", "createdAt": null, "updatedAt": null, "fromObjectTypeId": "0-47", "toObjectTypeId": "2-529881", "name": "car_to_meeting_event" } ] }

Después de crear el esquema del objeto, CarSpot se asegura de anotar el campo {objectTypeId} del nuevo objeto, ya que lo utilizarán para recuperar y actualizar el objeto más adelante. También pueden utilizar el valor {fullyQualifiedName} si lo prefieren.

Creación de un registro de objeto personalizado

Con el objeto personalizado creado, CarSpot ahora puede crear registros en el objeto para cada auto en su inventario

Crearán su primer auto haciendo una solicitud POST a/crm/v3/objects/2-3465404con el siguiente cuerpo de solicitud:

// Example POST request to https://api.hubspot.com/crm/v3/objects/2-3465404 { "properties": { "condition": "used", "date_received": "1582416000000", "year": "2014", "make": "Nissan", "model": "Frontier", "vin": "4Y1SL65848Z411439", "color": "White", "mileage": "80000", "price": "12000", "notes": "Excellent condition. No accidents." } }

La respuesta para esta llamada de API se vería similar a:Copiar todo

// Example response body { "id": "181308", "properties": { "color": "White", "condition": "used", "make": "Nissan", "mileage": "80000", "model": "Frontier", "vin": "4Y1SL65848Z411439", "notes": "Excellent condition. No accidents.", "price": "12000", "year": "2014", "date_received": "1582416000000" }, "createdAt": "2020-02-23T01:44:11.035Z", "updatedAt": "2020-02-23T01:44:11.035Z", "archived": false }

Con el registro creado, pueden utilizar el valor de identificación para asociar más tarde el auto con un contacto existente.

Si quisieran recuperar más tarde este registro junto con propiedades específicas, podrían hacer una petición GET a https://api.hubapi.com/crm/v3/objects/2-3465404/181308?portalId=1234567&properties=year&properties=make&properties=model

Asociación del registro de objeto personalizado a un contacto

Utilizando el ID del nuevo registro del vehículo (181308) y un ID de contacto (51), CarSpot puede asociar el registro del auto con un contacto. Crearán esta asociación haciendo una solicitud PUT a /crm/v3/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}

Usando los ID anteriores, la URL de solicitud se construirá de la siguiente manera:

https://api.hubspot.com/crm/v3/objects/2-3465404/181308/associations/contacts/51/75

Definición de una nueva asociación

CarSpot ahora quiere comenzar a hacer seguimiento de los servicios postventa para sus autos. Para ello, usamos tickets de HubSpot para registrar cualquier mantenimiento realizado.

Para permitir asociaciones entre autos y tickets, crearán una nueva asociación haciendo una solicitud POST a /crm/v3/schemas/2-3465404/asociaciones con el siguiente cuerpo de solicitud:

// Example POST request to https://api.hubspot.com/crm/v3/schemas/2-3465494/associations { "fromObjectTypeId": "2-3465404", "toObjectTypeId": "ticket", "name": "car_to_ticket" }

La respuesta para esta llamada de API se vería similar a:Copiar todo

// Example response { "id": "121", "createdAt": "2020-02-23T01:52:12.893826Z", "updatedAt": "2020-02-23T01:52:12.893826Z", "fromObjectTypeId": "2-3465404", "toObjectTypeId": "0-5", "name": "car_to_ticket" }

Al crear una nueva asociación entre dos objetos personalizados, especifique los objetos personalizados por su objectTypeId en el campo toObjectTypeId. Para los objetos estándar, puede identificarlos por su nombre o utilizar los siguientes valores:

  • Contacto: 0-1
  • Empresa: 0-2
  • Reparto: 0-3
  • Billete: 0-5

Definición de una nueva propiedad

A medida que continúan rastreando el mantenimiento, CarSpot ve una oportunidad para agrupar los servicios de mantenimiento en paquetes. Para hacer seguimiento de estos paquetes de mantenimiento en los registros individuales del vehículo, crearán una nueva propiedad de enumeración que contenga los paquetes disponibles.

Para definir una nueva propiedad, realizarán una solicitud POST a /crm/v3/properties/2-3465404 con el siguiente cuerpo de solicitud:

// Example POST request to https://api.hubspot.com/crm/v3/properties/2-3465404 { "groupName": "car_information", "name": "maintenance_package", "label": "Maintenance Package", "type": "enumeration", "fieldType": "select", "options": [ { "label": "Basic", "value": "basic" }, { "label": "Oil change only", "value": "oil_change_only" }, { "label": "Scheduled", "value": "scheduled" } ] }

La respuesta para esta llamada de API se vería similar a:Copiar todo

// Example response { "updatedAt": "2020-02-23T02:08:20.055Z", "createdAt": "2020-02-23T02:08:20.055Z", "name": "maintenance_package", "label": "Maintenance Package", "type": "enumeration", "fieldType": "select", "groupName": "car_information", "options": [ { "label": "Basic", "value": "basic", "displayOrder": -1, "hidden": false }, { "label": "Oil change only", "value": "oil_change_only", "displayOrder": -1, "hidden": false }, { "label": "Scheduled", "value": "scheduled", "displayOrder": -1, "hidden": false } ], "displayOrder": -1, "calculated": false, "externalOptions": false, "archived": false, "hasUniqueValue": false, "hidden": false, "modificationMetadata": { "archivable": true, "readOnlyDefinition": false, "readOnlyValue": false }, "formField": false }

Además, quieren que esta propiedad aparezca en la barra lateral de cada registro de automóvil para que la información esté fácilmente disponible para sus representantes de ventas y técnicos. Para ello, agregarán la propiedad a secondaryDisplayProperties haciendo una solicitud PATCH a /crm/v3/schemas/2-3465404 con el siguiente cuerpo de solicitud: 

// Example PATCH request to https://api.hubspot.com/crm/v3/schemas/2-3465404 { "secondaryDisplayProperties": [ "maintenance_package" ] }

La respuesta para esta llamada de API se vería similar a:Copiar todo

// Example response { "id": "3465404", "createdAt": "2020-02-23T01:24:54.537Z", "updatedAt": "2020-02-23T02:12:24.175874Z", "labels": { "singular": "Car", "plural": "Cars" }, "requiredProperties": [ "year", "model", "vin", "make" ], "searchableProperties": [ "year", "model", "vin", "make" ], "primaryDisplayProperty": "model", "secondaryDisplayProperties": [ "maintenance_package" ], "portalId": 1234567, "name": "car" }

Ahora, cuando un técnico abre un registro de contacto que tiene un automóvil asociado, la propiedad se mostrará en la tarjeta de objeto personalizada en la barra lateral:

Screen Shot 2020-03-06 at 11.08.41 AM

A medida que CarSpot continúe usando HubSpot, es probable que encuentren formas de refinar y expandir este objeto personalizado y más usando la API de HubSpot. Incluso podrían decidir crear páginas dinámicas usando sus datos de objetos personalizados.


¿Te resultó útil este artículo?
Con este formulario puedes enviar tu opinión sobre nuestros documentos para desarrolladores. Si tienes comentarios sobre el producto de HubSpot, puedes enviarlos al Foro de ideas.