Última modificación: 28 de agosto de 2025
Las funciones en HubL son similares a los filtros porque los dos aceptan parámetros y generan un valor. Sin embargo, no es necesario aplicar todas las funciones al valor inicial de una plantilla, ya que estas interactúan con otras áreas de tu entorno en HubSpot. Si mantienes un sitio web antiguo, también puedes consultar la lista de funciones de HubL obsoletas. A continuación, encontrarás más información sobre cada función de HubL y su sintaxis.

append

Agrega un solo elemento al final de una lista.
{% set numbers_under_5 = [1,2,3] %}
{% do numbers_under_5.append(4) %}
{{numbers_under_5}}
ParámetroTipoDescripción
itemCualquieraElemento que se agregará a la lista.

blog_all_posts_url

La función blog_all_posts_url da como resultado la URL completa de la página de índice de todas las publicaciones del blog especificado. El siguiente ejemplo muestra cómo se puede utilizar esta función como la etiqueta href de un ancla.
<a href="https://developers.hubspot.es/docs{{ blog_all_posts_url("default") }}">All Marketing blog posts</a>
ParámetroTipoDescripción
selected_blogID del blog o “default”Especifica qué blog utilizar. El ID del blog se obtiene del campo del blog en el módulo.

blog_author_url

La función blog_author_url da como resultado la URL completa de la página del autor del blog especificado. El siguiente ejemplo muestra cómo se puede utilizar esta función como la etiqueta href de un ancla. Que se puede combinar con blog_authors como se muestra en los ejemplos de esa función.
<a href="https://developers.hubspot.es/docs{{ blog_author_url("default", "brian-halligan") }}">Brian Halligan</a>
ParámetroTipoDescripción
selected_blogID del blog o el blog “default”Especifica en qué blog existe la página del autor. Puedes especificar un blog por su ID o utilizar la variable "default" para seleccionar el blog predeterminado. El ID del blog está dado por el campo de blog del módulo.
author_slugCadena o variable de HubLEspecifica el autor al que se va a enlazar. Puedes utilizar la variable content.blog_post_author.slug o un nombre con guión en minúsculas, por ejemplo: "jane-doe".

blog_authors

La función blog_authors da como resultado una secuencia de objetos con los datos del autor para el blog especificado, en orden ascendente según el slug. Esta secuencia se puede almacenar en una variable e iterarla a fin de crear filtros personalizados para las publicaciones del autor. Se puede obtener el número de artículos publicados de cada autor usando el parámetro author.live_posts.
Nota: esta función tiene un límite de 250 autores. Esta función también tiene un límite de 10 llamadas por página.
La primera línea del ejemplo siguiente demuestra cómo la función da como resultado una secuencia de objetos de autor. El resto del ejemplo muestra un caso en el que se guarda una secuencia en una variable y luego se itera con los objetos de autor, imprimiendo el conjunto de enlaces a las páginas de los autores. En el ejemplo se asume que el blog tiene 4 autores.
{{ blog_authors("default", 250) }}

{% set my_authors = blog_authors("default", 250) %}
<ul>
{% for author in my_authors %}
<li><a href="https://developers.hubspot.es/docs{{ blog_author_url(group.id, author.slug) }}">{{ author }}</a></li>
{% endfor %}
</ul>
ParámetroTipoDescripción
selected_blogID del blog o “default”Especifica qué blog utilizar, ya sea un blog específico por su ID o el blog predeterminado con "default". El ID del blog está dado por el campo de blog del módulo.
limitEnteroEstablece el límite del número de autores que se pueden obtener.

blog_by_id

La función blog_by_id da como resultado un blog con su ID. El siguiente código de ejemplo muestra esta función en uso, que genera una lista de elementos con los hipervínculos.
Nota: esta función tiene un límite de 10 llamadas por página.
{% set my_blog = blog_by_id(47104297) %}
<ul>
<li>
<a href="https://developers.hubspot.es/docs{{ my_blog.absolute_url }}">{{my_blog.html_title}}</a>
</li>
</ul>
ParámetroTipoDescripción
selected_blogID del blog o “default”Especifica qué blog utilizar, ya sea un blog específico por su ID o el blog predeterminado con "default". El ID del blog está dado por el campo de blog del módulo.
La función blog_page_link genera la URL de una vista por páginas de la lista de blogs. La función toma un parámetro numérico, que permite generar enlaces para la página actual, la siguiente, la anterior o una página específica. Esta función se utiliza generalmente en el atributo href de las etiquetas de ancla de la paginación y debe ser utilizada en la plantilla del listado de blogs. Los siguientes ejemplos muestran esta función en uso como etiqueta href de un ancla. El primer ejemplo muestra la página actual. El segundo ejemplo toma el número 7 como el parámetro para especificar la séptima página. El tercer ejemplo utiliza la variable next_page_num para generar un enlace relativo al número de página actual (también puedes utilizar la variable last_page_num para la página anterior). El último ejemplo utiliza la variable current_page_num y un operador + para crear un enlace que esté 4 páginas más adelante de la página actual.
<a href="https://developers.hubspot.es/docs{{ blog_page_link(current_page_num) }}">Current page</a>
<a href="https://developers.hubspot.es/docs{{ blog_page_link(7) }}">Page 7</a>
<a href="https://developers.hubspot.es/docs{{ blog_page_link(next_page_num) }}">Next</a>
<a href="https://developers.hubspot.es/docs{{ blog_page_link(current_page_num + 4) }}">Page Plus 4</a>
ParámetroTipoDescripción
pageNúmero o variable de HubLNúmero de página utilizado para generar la URL o la variable de HubL del número de página.
Esta función convierte un número determinado de publicaciones populares en una secuencia. Esta secuencia se puede guardar en una variable e iterarla mediante un bucle “for”, creando un listado personalizado de las publicaciones más populares. Los resultados de esta función se almacenan en caché durante seis horas. Para obtener publicaciones de blog usando HubL de una manera que evite el almacenamiento en caché, podrías usar blog_recent_tag_posts en su lugar. En el siguiente código de ejemplo, la primera línea muestra cómo la función da como resultado una secuencia. La secuencia se guarda como una variable que luego se usa en un bucle “for”. Toda variable de una publicación de blog debe usar el nombre de cada elemento del bucle en lugar de content.. En el ejemplo, se utiliza pop_post.name. Esta técnica se puede utilizar en plantillas de blog y páginas de sitio web.
Nota: esta función tiene un límite de 200 publicaciones. Esta función también tiene un límite de 10 llamadas por página.
{% set pop_posts = blog_popular_posts("default", 5, ["marketing-tips", "sales-tips"], "popular_past_month", "AND") %}
{% for pop_post in pop_posts %}
<div class="post-title">{{ pop_post.name }}</div>
{% endfor %}
ParámetroTipoDescripción
selected_blogID del blog o “default”Especifica qué blog utilizar, ya sea un blog específico por su ID o el blog predeterminado con "default".
limitEnteroEspecifica el número de publicaciones que se agregarán a la secuencia, hasta un límite de 200. Si no se especifica, el valor predeterminado es 10.
tag_slugMatrizLista opcional de etiquetas para filtrar las publicaciones.
time_frameCadenaPeríodo de tiempo opcional de las analíticas para filtrar las publicaciones. Por opción predeterminada es "popular_past_year". Debe ser una entre estas:
  • "popular_all_time"
  • "popular_past_year"
  • "popular_past_six_months"
  • "popular_past_month"
Este parámetro es obligatorio cuando se incluye el parámetro logical_operator.
logical_operatorCadenaCuando tag_slug contiene varias etiquetas, utiliza este operador para filtrar los resultados con la lógica AND u OR. Por opción predeterminada, esta función utiliza la lógica OR para devolver publicaciones con cualquiera de las etiquetas especificadas. Al incluir este parámetro, time_frame es obligatorio.

blog_post_archive_url

La función blog_post_archive_url da como resultado una URL completa que enlaza a la página de índice de los archivos según los valores de fecha dados en el blog especificado. Esta función tiene dos parámetros obligatorios y dos opcionales. El primer parámetro es el ID de un blog o simplemente la palabra clave "default". El segundo es el año de las publicaciones archivadas que deseas mostrar. Los parámetros opcionales incluyen el mes y el día de las publicaciones archivadas que deseas mostrar, respectivamente. El siguiente ejemplo muestra cómo se puede utilizar esta función como la etiqueta href de un ancla.
<a href="https://developers.hubspot.es/docs{{ blog_post_archive_url("default", 2017, 7, 5) }}">Posts from July 5th, 2017</a>
ParámetroTipoDescripción
selected_blogID del blog o “default”Especifica qué blog utilizar, ya sea un blog específico por su ID o el blog predeterminado con "default".
yearEnteroEl año.
monthEnteroEl mes opcional.
dayEnteroEl día opcional.

blog_recent_author_posts

La función blog_recent_author_posts da como resultado una secuencia de objetos de publicaciones de blog del autor especificado, ordenados según el más reciente. Esta secuencia de publicaciones se pueden almacenar en una variable e iterar con un bucle “for”, creando un listado de publicaciones personalizado de un autor en particular. La función toma tres parámetros. El primer parámetro especifica de qué blog se recogen las publicaciones de un autor. El valor debe ser el parámetro "default" o el ID de un blog en particular (disponible en la URL del panel de blogs). El segundo parámetro especifica el autor a utilizar. Este parámetro puede utilizar content.blog_post_author.slug para usar el autor de la publicación actual o aceptar un nombre con guion en minúsculas como "brian-halligan". El tercer parámetro especifica cuántos posts se obtendrán. La primera línea del ejemplo de abajo demuestra cómo la función devuelve una secuencia con las publicaciones de un autor. En este ejemplo, en lugar de especificar el nombre de un autor, se utiliza el autor actual de la publicación. La secuencia se guarda en una variable y se repite en bucle. Toda variable de una publicación de blog debe usar el nombre de cada elemento del bucle en lugar de content.. En el ejemplo, se utiliza author_post.name. Esta técnica se puede utilizar en las plantillas de blogs y páginas.
Nota: Esta función tiene un límite de 200 publicaciones y 10 llamadas por página.
{{ blog_recent_author_posts("default", content.blog_post_author.slug, 5 ) }}
{% set author_posts = blog_recent_author_posts("default", content.blog_post_author.slug, 5) %}
{% for author_post in author_posts %}
<div class="post-title">{{ author_post.name }}</div>
{% endfor %}
ParámetroTipoDescripción
selected_blogID del blog o blog “default”Especifica qué blog utilizar. El ID del blog está dado por el campo de blog del módulo.
author_slugCadenaEspecifica el autor que se usará en el filtro.
limitEnteroEspecifica el número de publicaciones que se agregarán a la secuencia, hasta un límite de 200.

blog_recent_posts

La función blog_recent_posts da como resultado una secuencia de objetos de publicaciones para el blog especificado, ordenados según el más reciente. Esta secuencia de publicaciones se puede guardar en una variable e iterar mediante un bucle “for”, creando un listado personalizado de publicaciones de tus publicaciones más populares. La función toma dos parámetros. El primer parámetro especifica de qué blog se recogen los posts populares. El valor debe ser el parámetro "default" o el ID de un blog en particular (disponible en la URL del panel de blogs). El segundo parámetro especifica cuántos posts se obtendrán. La primera línea del ejemplo de abajo demuestra cómo la función devuelve una secuencia. La secuencia se guarda en una variable y se repite en bucle. Toda variable de una publicación de blog debe usar el nombre de cada elemento del bucle en lugar de content.. En el ejemplo, se utiliza rec_post.name. Esta técnica se puede utilizar no sólo en las plantillas de los blogs, sino también en otras páginas.
Nota: Esta función tiene un límite de 200 publicaciones y 10 llamadas por página.
{{ blog_recent_posts("default", 5) }}
{% set rec_posts = blog_recent_posts("default", 5) %}
{% for rec_post in rec_posts %}
<div class="post-title">{{ rec_post.name }}</div>
{% endfor %}
ParámetroTipoDescripción
selected_blogID del blog o “default”Especifica qué blog utilizar, ya sea un blog específico por su ID o el blog predeterminado con "default". El ID del blog está dado por el campo de blog del módulo.
limitEnteroEspecifica el número de publicaciones que se agregarán a la secuencia, máximo 200.

blog_recent_tag_posts

La función blog_recent_tag_posts da como resultado una secuencia de objetos de publicaciones de blog correspondiente a una o varias etiquetas especificadas, ordenadas según la más reciente. Esta secuencia de publicaciones se puede guardar en una variable e iterar con un bucle “for”, creando un listado de publicaciones personalizado según una o varias etiquetas en particular. En el código de ejemplo a continuación:
  • La primera línea muestra cómo la función devuelve una secuencia de publicaciones por etiqueta.
  • La segunda línea muestra cómo guardar la función en una variable de secuencia. El resto del código utiliza un bucle “for” para repetir el ciclo de los valores de la variable. Toda variable de una publicación de blog debe usar el nombre de cada elemento del bucle en lugar de content.. En el ejemplo, se utiliza tag_post.name. Puedes usar esta técnica tanto en páginas de blog como en páginas de sitio web.
Encuentra más información sobre cómo crear una lista de publicaciones de blog relacionadas.
Nota: Esta función tiene un límite de 100 publicaciones y 10 llamadas por página.
{{ blog_recent_tag_posts("default", "marketing-tips", 5) }}
{% set tag_posts = blog_recent_tag_posts("default", ["marketing", "fun", "inbound"], 3, "AND") %}
{% for tag_post in tag_posts %}
<div class="post-title">{{ tag_post.name }}</div>
{% endfor %}
ParámetroTipoDescripción
selected_blogID del blog o “default”Especifica qué blog utilizar, ya sea un blog específico por su ID o el blog predeterminado con "default". El ID del blog está dado por el campo de blog del módulo.
tag_slugCadenaEspecifica la etiqueta que se utilizará en el filtro. Puedes incluir hasta 10 etiquetas, separadas por comas. Las etiquetas con varias palabras deben estar en minúsculas con los espacios reemplazados por guiones.
limitEnteroEspecifica el número de publicaciones que se agregarán a la secuencia. Este parámetro es obligatorio cuando se incluye el parámetro logical_operator.
logical_operatorCadenaCuando tag_slug contiene varias etiquetas, utiliza este operador para filtrar los resultados con la lógica AND u OR. Por opción predeterminada, esta función utiliza la lógica OR para devolver publicaciones con cualquiera de las etiquetas especificadas. Al incluir este parámetro, limit es obligatorio.

blog_tag_url

La función blog_tag_url da como resultado una URL completa enlazada a la página de índice del blog cuya etiqueta se ha especificado. Esta función acepta dos parámetros. El primer parámetro especifica en qué blog se encuentra la página de índice de la etiqueta. El segundo parámetro especifica la etiqueta que se debe enlazar. Este parámetro puede utilizar topic.slug para una etiqueta específica de content.topic_list o acepta un nombre con guion en minúsculas como "marketing-tips". El siguiente ejemplo muestra cómo se puede utilizar esta función como etiqueta href de un ancla.
<a href="https://developers.hubspot.es/docs{{ blog_tag_url("default", "inbound-marketing") }}">Inbound Marketing</a>
ParámetroTipoDescripción
selected_blogID del blog o “default”Especifica qué blog utilizar, ya sea un blog específico por su ID o el blog predeterminado con "default".
tag_slugCadenaEspecifica la etiqueta a la que se va a enlazar.

blog_tags

La función blog_tags da como resultado una secuencia de las 250 etiquetas con la mayor cantidad de artículos en el blog (en función del número de publicaciones asociadas) para el blog especificado, ordenadas según el número de publicaciones. Esta secuencia se puede almacenar en una variable e iterar para crear filtros personalizados para las etiquetas de las publicaciones. Se puede ver el número de publicaciones de cada etiqueta con tag.live_posts. Esta función acepta dos parámetros. El primer parámetro especifica de qué blog se van a obtener las etiquetas. El segundo parámetro establece un límite en el número de etiquetas obtenidas. La primera línea del ejemplo de abajo muestra cómo la función devuelve una secuencia de objetos de etiqueta. El resto del ejemplo muestra un caso en el que se guarda una secuencia en una variable y luego se itera en todos los objetos de etiqueta, imprimiendo un conjunto de enlaces a etiquetas. En el ejemplo se asume que el blog tiene 4 etiquetas.
Nota: Esta función tiene un límite de 250 etiquetas.
{{ blog_tags("default", 250) }}

{% set my_tags = blog_tags("default", 250) %}
<ul>
{% for item in my_tags %}
<li><a href="https://developers.hubspot.es/docs{{ blog_tag_url(group.id, item.slug) }}">{{ item }}</a></li>
{% endfor %}
</ul>
ParámetroTipoDescripción
selected_blogID del blog o blog “default”Especifica qué blog utilizar. El ID del blog está dado por el campo de blog del módulo.
limitEnteroLa cantidad máxima de etiquetas que saldrán en los resultados.

blog_total_post_count

Esta función da como resultado el número total de artículos publicados en el blog especificado. Si no se especifica ningún parámetro, contará las publicaciones del blog especificado por defecto. Como alternativa, puedes especificar el parámetro "default" o el ID de un blog diferente para hacer el conteo. El ID del blog está disponible en la URL del panel de control para cada blog.
Nota: esta función tiene un límite de 10 llamadas por página.
{{ blog_total_post_count }}
{{ blog_total_post_count(359485112) }}
ParámetroTipoDescripción
selected_blogID del blog o “default”Especifica en qué blog hacer el conteo. El ID del blog está dado por el campo de blog del módulo.

clear

Elimina todos los elementos de una lista. A diferencia de pop(), no entrega ningún resultado.
{% set words = ["phone","home"] %}
{% do words.clear() %}
{{words}}

color_contrast

Esta función valida el contraste de color con base en los estándares de las Web Content Accessibility Guidelines (WCAG). Tendrás que incluir dos colores como argumentos, y puedes incluir un argumento opcional para especificar la calificación (AA o AAA). El resultado serán los parámetros true o false en función de si los colores cumplen o superan los estándares.
{{color_contrast('#FFFFFF','#273749')}}
{{color_contrast('rgb(255, 255, 255)','rgb(229, 237, 245)','AAA')}}
<p {% if color_contrast('rgb(12,31,1)', '#F0F', 'AA') %}style="color: #FF0000;"{% else %}style="color: #00FF00"{% endif %}>Hey there</p>
ParámetroTipoDescripción
color_1ColorEl primer color que se va a comparar. Acepta:
  • Códigos hexadecimales de 6 dígitos (#FFFFFF)
  • Códigos hexadecimales de 3 dígitos (#F0A)
  • Códigos de color RGB (rgb(12,31,1))
También puede usar una variable que almacene un código de color hexadecimal o RGB, por ejemplo, theme.primary_color.color
color_2ColorEl segundo color que se va a comparar con el primero.
ratingCadenaEl estándar de las WCAG que se utilizará para la calificación. Puede ser AA (predeterminado) o AAA.

color_variant

Esta función aclara u oscurece un valor hexadecimal o una variable de color en un grado específico. El primer parámetro es el color hexadecimal (por ejemplo (“#FFDDFF”) o una variable que almacene un valor hexadecimal. El segundo parámetro es el grado en el que se debe ajustar, de 0 a 255. Esta función se puede utilizar en archivos CSS para crear variaciones de color. Otro buen ejemplo es utilizarla con un parámetro de color de un módulo de color, para permitir a los usuarios especificar un color primario que genere automáticamente variaciones de color. En el ejemplo de abajo, el color hexadecimal #3A539B se almacena en una variable llamada base_color. El color se modifica en -80 dando como resultado un azul más oscuro (#00034B).
{% set base_color ="#3A539B" %}
{{ color_variant(base_color, -80) }}
ParámetroTipoDescripción
base_colorCadena de color hexadecimalEl color inicial que se modificará. Por ejemplo, #F7F7F7.
brightness_offsetEnteroUn número positivo o negativo que se utiliza para aclarar u oscurecer el color de base.

content_by_id

La función content_by_id da como resultado una landing page, una página de sitio web o una publicación de blog según el ID. El único parámetro aceptado por esta función es un ID de contenido numérico. El siguiente código de ejemplo muestra esta función en uso, que genera una lista de elementos con los hipervínculos.
Nota: esta función tiene un límite de 10 llamadas por página.
{% set my_content = content_by_id(4715624297) %}
<ul>
<li>
<a href="https://developers.hubspot.es/docs{{ my_content.absolute_url }}">{{my_content.title}}</a>
</li>
</ul>
ParámetroTipoDescripción
idIDEl ID del contenido que se buscará.

content_by_ids

Dada una lista de varios ID de contenido, da como resultado un dict (diccionario) de páginas de destino, páginas de sitio web o publicaciones de blog que coinciden con esos ID. Esta función toma un parámetro, una lista de ID de páginas o publicaciones de blog para buscar, colocadas en orden. Se pueden pasar hasta 100 objetos de contenido. El siguiente código de ejemplo muestra esta función en uso para generar una lista de elementos con sus hipervínculos.
Nota: esta función tiene un límite de 10 llamadas por página.
{% set contents = content_by_ids([4715624297, 4712623297, 5215624284]) %}
<ul>
{% for content in contents %}
<li>
<a href="https://developers.hubspot.es/docs{{ content.absolute_url }}">{{content.title}}</a>
</li>
{% endfor %}
</ul>
ParámetroTipoDescripción
idsListaUna lista de ID de páginas o publicaciones de blog para buscar. Se pueden pasar hasta 100 objetos de contenido.

copy

Da como resultado una copia superficial de la lista. Equivalente a a[:]. Una copia superficial construye un nuevo objeto compuesto y luego (en la medida de lo posible) inserta en él referencias a los objetos que se encuentran en el original.
{% set a = ["ham"] %}
{% set b = a.copy() %}
a: {{a}}

b: {{b}}

After Append
{% do a.append("swiss") %}
a: {{a}}

b: {{b}}

count

Da como resultado el número de veces que una variable existe en una lista.
{% set attendees = ["Jack","Jon","Jerry","Jessica"] %}
{% set jon_count = attendees.count("Jon") %}
There are {{jon_count}} Jon's in the list.
<p>After append:</p>
{% do attendees.append("Jon") %}
{% set jon_count_after_append = attendees.count("Jon") %}
There are now {{jon_count_after_append}} Jon's in the list.

crm_associations

Obtiene una lista de registros del CRM asociados a otro registro mediante su ID de registro, la categoría de asociación y el ID que define la asociación. Esta función devuelve un objeto con los siguientes atributos: has_more, total, offset y results.
  • has_more indica que hay más resultados disponibles además de este bloque (total > offset).
  • total es el número total de resultados disponibles.
  • offset es el desplazamiento que se utilizará para el siguiente bloque de resultados.
  • results devuelve una lista de los objetos asociados especificados que coinciden con los parámetros de la función.
Nota: Por razones de seguridad, de los tipos de objetos estándar de HubSpot solo los objetos producto y evento de marketing se pueden obtener desde una página de acceso público. Cualquier otro tipo de objeto estándar debe alojarse en una página que esté protegida por contraseña o que requiera un inicio de sesión por membresía en el CMS. Los objetos personalizados no tienen esta misma restricción.
{% set associated_contacts = crm_associations(847943847, "HUBSPOT_DEFINED", 2, "limit=3&years_at_company__gt=2&orderBy=email", "firstname,email", false) %}
{{ associated_contacts }}
Nota: Esta función se puede llamar un máximo de 10 veces por página. Cada llamada de la función crm_associations puede dar como resultado como máximo 100 objetos. El límite por opción predeterminada es de 10 objetos.
ParámetroTipoDescripción
idIDID del registro a partir del que se deben buscar asociaciones.
association categoryCadenaLa categoría de la definición de la asociación. Los valores posibles son HUBSPOT_DEFINED, USER_DEFINED y INTEGRATOR_DEFINED. Este parámetro puede omitirse en el caso de los tipos de asociación integrados definidos por HubSpot.
association type idEnteroEl ID de la definición de la asociación que se va a utilizar. Para saber los objetos estándar de HubSpot compatibles, consulta ID del tipo de asociación que vas a usar. De otro modo, el ID de la asociación se puede encontrar en la API del esquema de objetos del CRM.
queryCadenaEl id del registro, o una cadena de consulta, delimitada por &. Todas las expresiones se suman con AND. Los operadores admitidos son:
  • eq (predeterminado)
  • neq
  • lt
  • lte
  • gt
  • gte
  • is_null
  • not_null
  • in
  • nin
  • contains (aplicable para propiedades con varios valores o propiedades de cadena, por ejemplo, “firstname__contains=Tim”).
Las consultas pueden incluir los siguientes parámetros:
  • limit: el número máximo de resultados obtenidos en la respuesta, por ejemplo, limit=50.
  • offset: para distribuir los resultados en páginas si el número de resultados devueltos es superior al parámetro límite, por ejemplo, offset=51.
  • orderBy: ordena los resultados por una propiedad específica, por ejemplo, orderBy=email.
propertiesCadenaOpcional. Una lista separada con comas de las propiedades que saldrán en los resultados. Por defecto, el resultado es un pequeño conjunto de propiedades comunes. Siempre se devuelve la propiedad ID. Se puede encontrar una lista completa de propiedades utilizando los endpoints para obtener todas las propiedades de los contactos y obtener todas las propiedades de las empresas.
formattingBooleanoOpcional. Da formato a los valores, como las fechas y la divisa, de acuerdo con la configuración del portal. Omite o pasa el parámetro false con las cadenas sin procesar.

crm_object

Obtiene un único registro del CRM por consulta o por ID. Los registros aparecerán en un dicc. de propiedades y valores. Esta función también se puede utilizar con objetos personalizados y de integraciones.
Nota: Por razones de seguridad, de los tipos de objetos estándar de HubSpot solo los objetos producto y evento de marketing se pueden obtener desde una página de acceso público. Cualquier otro tipo de objeto estándar debe alojarse en una página que esté protegida por contraseña o que requiera un inicio de sesión por membresía en el CMS. Los objetos personalizados no tienen esta misma restricción.
¿Cuál es la diferencia entre los parámetros in y contains?in entrega resultados si el valor de la propiedad coincide con alguno de los valores dados. Por otro lado, contains entrega resultados si los valores de las propiedades en una selección múltiple tienen todos los valores especificados.
<!-- by query -->
{% set contact = crm_object("contact", "email=contact@company.com", "firstname,lastname", false) %}
<!-- by id -->
{% set contact = crm_object("contact", 123) %}
{{ contact.firstname }}
{{ contact.lastname }}
Nota: Esta función solo se puede llamar un máximo de 10 veces en una misma página.
ParámetroTipoDescripción
object_typeCadenaEl nombre del tipo de objeto. Los nombres de los tipos de objetos distinguen entre mayúsculas y minúsculas. Encuentra más información sobre los tipos de objetos admitidos. Para encontrar los nombres de los tipos de objetos específicos de la cuenta y de integraciones disponibles en tu cuenta, utiliza la API del esquema de objetos del CRM para obtener las definiciones de los tipos y encontrar el nombre de la propiedad. Contiene el nombre del tipo de objeto interno que se debe usar para la función. En el caso de los tipos de objeto de integraciones y específicos de la cuenta con el mismo nombre que los objetos de la aplicación debes usar el nombre completamente calificado (FQN, por sus siglas en inglés) de los objetos.
queryCadenaOpcional. El id del registro, o una cadena de consulta, delimitada con&. Todas las expresiones se suman con AND. Los operadores admitidos son:
  • eq (predeterminado)
  • neq
  • lt
  • lte
  • gt
  • gte
  • is_null
  • not_null
  • in
  • nin
  • contains (aplicable para propiedades con varios valores o propiedades de cadena, por ejemplo, “firstname__contains=Tim”).
Las consultas pueden incluir los siguientes parámetros:
  • limit: el número máximo de resultados obtenidos en la respuesta. por ejemplo, limit=50.
  • offset: para distribuir los resultados en páginas si el número de resultados devueltos es superior al parámetro límite, por ejemplo, offset=51.
  • orderBy: ordena los resultados por una propiedad específica, por ejemplo, orderBy=email.
propertiesCadenaOpcional. Una lista separada con comas de las propiedades que saldrán en los resultados. Por defecto, el resultado es un pequeño conjunto de propiedades comunes. Siempre se devuelve la propiedad ID. Se puede encontrar una lista completa de propiedades utilizando los endpoints para obtener todas las propiedades de los contactos y obtener todas las propiedades de las empresas.
formattingBooleanoOpcional. Da formato a los valores, como las fechas y la divisa, de acuerdo con la configuración del portal. Pasa el parámetro false con las cadenas sin procesar.
Nota: Cuando creas una consulta, los valores range, distinct ndistinct y startswith son palabras clave reservadas. Para consultar una propiedad que usa uno de esos nombres, deberás usar el siguiente formato: range__eq= (en lugar de range=).

crm_objects

Obtiene una lista de registros para un tipo de objeto específico del CRM de HubSpot. Esta función devuelve un objeto con los siguientes atributos: has_more, total, offset y results.
  • has_more indica que hay más resultados disponibles además de este bloque (total > offset).
  • total es el número total de resultados disponibles.
  • offset es el desplazamiento que se utilizará para el siguiente bloque de resultados.
  • results devuelve una lista de los objetos especificados que coinciden con los parámetros de la función.
Los resultados se pueden ordenar utilizando al menos un parámetro de orden en la consulta. Por ejemplo, crm_objects("contact", "firstname=Bob&order=lastname&order=createdate") ordenará los contactos con el nombre "Bob" según el apellido y luego según el parámetro createdate. Para invertir el orden, agrega el signo - al nombre de la propiedad así: order=-createdate. La función de objetos del CRM también puede utilizarse con objetos personalizados y de integraciones.
Nota: Por razones de seguridad, de los tipos de objetos estándar de HubSpot solo los objetos producto y evento de marketing se pueden obtener desde una página de acceso público. Cualquier otro tipo de objeto estándar debe alojarse en una página que esté protegida por contraseña o que requiera un inicio de sesión por membresía en el CMS. Los objetos personalizados no tienen esta misma restricción.
{% set objects = crm_objects("contact", "firstname__not_null=&limit=3", "firstname,lastname") %}
{{ objects }}
Nota: Esta función se puede llamar un máximo de 10 veces por página. Cada llamada de la función crm_objects puede dar como resultado como máximo 100 objetos. El límite por opción predeterminada es de 10 objetos.
ParámetroTipoDescripción
object_typeCadenaEl tipo de objeto por su nombre. Los nombres de los tipos de objetos distinguen entre mayúsculas y minúsculas. Se aceptan el singular y el plural en el caso de los tipos de objetos estándar (por ejemplo, contacto, contactos). Encuentra más información sobre los tipos de objetos admitidos. Para encontrar los nombres de los tipos de objetos específicos de la cuenta y de integraciones disponibles en tu cuenta, utiliza la API del esquema de objetos del CRM para obtener las definiciones de los tipos y las propiedades del nombre. En el caso de los tipos de objetos específicos de integraciones y de la cuenta con el mismo nombre que los objetos propios de la aplicación, utiliza el nombre completo cualificado (FQN, por sus siglas en inglés) de los objetos.
queryCadenaOpcional. El ID del registro o una cadena de consulta, delimitada con &. Todas las expresiones se suman con AND. Los operadores admitidos son:
  • eq (predeterminado)
  • neq
  • lt
  • lte
  • gt
  • gte
  • is_null
  • not_null
  • in
  • nin
  • contains (aplicable para propiedades con varios valores o propiedades de cadena, por ejemplo, “firstname__contains=Tim”).
Ejemplo:"email=contact@company.com"
propertiesCadenaOpcional. Una lista separada con comas de las propiedades que saldrán en los resultados. Por defecto, el resultado es un pequeño conjunto de propiedades comunes. Siempre se devuelve el ID de la propiedad. Puedes encontrar una lista completa de las propiedades utilizando los endpoints para obtener todas las propiedades de los contactos y obtener todas las propiedades de las empresas. El ID del registro siempre se incluye en las propiedades del objeto que salen en los resultados, incluso cuando no se agrega explícitamente en la lista de propiedades.
formattingBooleanoOpcional. Da formato a los valores, como las fechas y la divisa, de acuerdo con la configuración del portal. Pasa el parámetro false con las cadenas sin procesar.
Nota: Cuando creas una consulta, los valores range, distinct ndistinct y startswith son palabras clave reservadas. Para consultar una propiedad que usa uno de esos nombres, deberás usar el siguiente formato: range__eq= (en lugar de range=).

crm_property_definition

Permite obtener la definición de la propiedad para un tipo de objeto y un nombre de propiedad dados. Los tipos de objetos admitidos son los objetos estándar de HubSpot (por ejemplo, los contactos), los objetos específicos del portal y los objetos de integraciones.
{{ crm_property_definition("house_listing", "agent_name") }}
ParámetroTipoDescripción
object_typeCadenaEl nombre del tipo de objeto. Los nombres de los tipos de objetos distinguen entre mayúsculas y minúsculas. Encuentra más información sobre los tipos de objetos admitidos. Para encontrar los nombres de los tipos de objetos específicos de la cuenta y de integraciones disponibles en tu cuenta, utiliza la API del esquema de objetos del CRM para obtener las definiciones de los tipos y encontrar el nombre de la propiedad. Contiene el nombre del tipo de objeto interno que se debe usar para functionFor. En el caso de los tipos de objeto de integraciones y específicos de la cuenta con el mismo nombre que los objetos de la aplicación debes usar el nombre completamente calificado (FQN, por sus siglas en inglés) de los objetos.
property_nameCadenaEl nombre de la propiedad que sirve para obtener la definición y que no distingue entre mayúsculas y minúsculas.

crm_property_definitions

Permite obtener las definiciones de las propiedades para un tipo de objeto y un conjunto de nombres de propiedades dados. Los tipos de objetos admitidos son los objetos estándar de HubSpot (por ejemplo, los contactos), los objetos específicos del portal y los objetos de integraciones.
{{ crm_property_definitions("house_listing", "agent_name,address") }}
ParámetroTipoDescripción
object_typeCadenaEl nombre del tipo de objeto. Los nombres de los tipos de objetos distinguen entre mayúsculas y minúsculas. Encuentra más información sobre los tipos de objetos admitidos. Para encontrar los nombres de los tipos de objetos específicos de la cuenta y de integraciones disponibles en tu cuenta, utiliza la API del esquema de objetos del CRM para obtener las definiciones de los tipos y encontrar el nombre de la propiedad. Contiene el nombre del tipo de objeto interno que se debe usar para functionFor. En el caso de los tipos de objeto de integraciones y específicos de la cuenta con el mismo nombre que los objetos de la aplicación debes usar el nombre completamente calificado (FQN, por sus siglas en inglés) de los objetos.
property_nameCadenaOpcional. Los nombres de las propiedades que sirven para obtener la definición, separados por comas, sin distinción entre mayúsculas y minúsculas. Si está vacío, se extraerán las definiciones de todas las propiedades.

cta

Debido a que los módulos de CTA tienen muchos parámetros con variaciones en el código de programación, puedes utilizar la función CTA para generar fácilmente una CTA particular en una plantilla, página o correo electrónico. Esta es la función que utiliza el editor de texto enriquecido cuando se agrega una CTA mediante el editor.
Nota: Esta función tiene un límite de 10 llamadas por página.
{{ cta("ccd39b7c-ae18-4c4e-98ee-547069bfbc5b")  }}
{{ cta("ccd39b7c-ae18-4c4e-98ee-547069bfbc5b", "justifycenter") }}
ParámetroTipoDescripción
guidCadenaEl ID de la CTA que se renderiza. Se puede encontrar en la URL de la pantalla de datos de la CTA.
align_optEnumeraciónAjusta la alineación de la CTA. Los valores incluyen: justifyleft, justifycenter, justifyright, justifyfull.

extend

Permite ampliar una lista agregando todos los elementos de un bloque iterable. En otras palabras, inserta todos los elementos de una lista en otra lista.
{% set vehicles = ["boat","car","bicycle"] %}
{% set more_vehicles = ["airplane","motorcycle"] %}
{% do vehicles.extend(more_vehicles) %}
{{vehicles}}

file_by_id

Esta función entrega los metadatos de un archivo según el ID. Acepta un único parámetro, el ID numérico del fichero que se busca. Para obtener varios archivos a la vez, utiliza la función files_by_ids en su lugar.
Nota: Esta función está limitada a 10 llamadas por página.
{% set file = file_by_id(123) %}
{{ file.friendlyUrl }}
ParámetroTipoDescripción
file_idNúmeroEl ID del archivo que se busca.

files_by_ids

Entrega los metadatos de varios archivos según el ID. Acepta una serie de ID de archivo.
Nota: Esta función está limitada a 10 llamadas por página y puede aceptar hasta 100 ID de archivo.
{% set files = files_by_ids([123,456])%}
{% for file in files %}
URL:{{file.friendlyUrl}}
<br>
{% endfor %}
ParámetroTipoDescripción
file_idNúmeroLos ID de los archivos que se buscan, separados por comas (hasta 100).
Por ejemplo, puedes usar esta función para repetir los archivos que se han subido para un contacto. Para volver sobre los resultados, deberás usar el filtro split de HubL, ya que la propiedad del CRM será una cadena separada con punto y coma.
{% set objects = crm_objects("contact", "email=bh@hubspot.com", "file").results %}

{% for item in objects %}

<!-- Need to use split filter as CRM property returns a string that is semi-colon separated -->
{% set fileIDs = item.file|split(";") %}

{% set files = files_by_ids(fileIDs) %}

 {% for file in files %}
 <div>
 File name: {{file.name}}
 <br>
 Friendly Url: {{file.friendlyUrl }}
 <br>
 Url: {{file.url }}
 <hr><br>
 </div>
 {% endfor %}
{% endfor %}

flag_content_for_access_check

Cuando una publicación de blog está configurada para el acceso por autorregistro, los visitantes deberán registrarse o iniciar sesión para ver el contenido completo de la publicación. Los recursos de blog predeterminados de HubSpot incluyen esta función automáticamente y también un indicador con el icono de un candado para las publicaciones que requieren autorregistro para acceder. Obtén más información sobre cómo crear soluciones personalizadas utilizando esta función y su API correspondiente. Esta función comprueba si el visitante actual puede acceder a una publicación de blog. Cuando se llama, la función se reemplaza con el siguiente atributo: hs-member-content-access=<true/false> A value of true indicates that the blog post requires the visitor to log in to view the full content.
{% for content in contents %}
<article {{ flag_content_for_access_check(content.id) }} >
...
</article>
{% endfor %}
ParámetroTipoDescripción
IDIDEl ID del contenido que se cotejará con la persona que ha iniciado sesión en ese momento.
Devuelve los enlaces de las cuentas de redes sociales fijadas en la configuración de la cuenta. Se utiliza en el módulo predeterminado follow_me.
{% set fm = follow_me_links() %}
{{ fm }}

format_address

Le da formato a una dirección según la configuración regional del contexto.
{{ format_address('en-us', { address: "25 First Street", address2: "2nd Floor", city: "Cambridge", state: "MA", country: "United States", zip: "02141"}) }}
ParámetroTipoDescripción
localeCadenaLa configuración regional que determinará el formato de la dirección.
addressCadenaLa dirección del lugar.
address2CadenaLa segunda línea de la dirección, como el número de piso o apartamento.
cityCadenaLa ciudad de la dirección.
stateCadenaEl estado de la dirección.
countryCadenaEl país de la dirección.
zipCadenaEl código postal de la dirección.

format_company_name

Permite darle formato al nombre de una empresa agregando sufijos honoríficos japoneses cuando corresponda.
{{ format_company_name("companyName", addJapaneseHonorifics) }}
ParámetroTipoDescripción
companyNameCadenaEl nombre de la empresa.
useHonorificIfApplicableBooleanoCuando se establece en true y el idioma del contexto es japonés, se agregará el sufijo honorífico para la empresa cuando corresponda.

format_name

Permite dar formato al nombre de una persona colocando el apellido antes del primer nombre y agrega sufijos honoríficos japoneses cuando corresponda.
{{ format_name("firstName", "surname", addJapaneseHonorifics) }}
ParámetroTipoDescripciónPredeterminado
firstNameCadenaEl nombre de la persona.
surnameCadenaEl apellido de la persona.False
useHonorificIfApplicableBooleanoCuando se establece en true y el idioma del contexto es japonés, se agregará un sufijo honorífico japonés cuando corresponda.

format_datetime

Permite darle formato a los componentes de fecha y hora de un objeto de fecha, similar al filtro de HubL format_datetime. Esta función reemplaza a la función obsoleta datetimeformat.
{{ format_datetime(content.publish_date, "short", "America/New_York", "en") }}
ParámetroTipoDescripción
formatCadenaEl formato que se utilizará. Puede ser uno de los siguientes:
  • short
  • medium
  • long
  • full
  • un patrón personalizado basado en las normas Unicode LDML
timeZoneCadenaLa zona horaria de la fecha del resultado en formato IANA TZDB.
localeCadenaLa configuración regional que se utilizará en los formatos adaptados a la configuración regional.

geo_distance

Esta función contiene 4 parámetros y calcula la altura elipsoidal 2D entre dos puntos de la Tierra. Utiliza esta función como una consulta de filtro para obtener los datos de HubDB.
{% for row in hubdb_table_rows(1234567, "geo_distance(loc,1.233,-5.678,mi)__gt=500") %}
{{row.name}} <br>
{% endfor %}
ParámetroTipoDescripción
point1UbicaciónUbicación desde una columna de HubDB.
point2_latLatitudLatitud del punto 2.
point2_longLongitudLongitud del punto 2.
unitsCadenaUnidades de medida del valor resultante. Las opciones son FT para pies, MI para millas, M para metros o KM para kilómetros.

get_asset_url

Esta función devuelve la URL pública de la plantilla o el archivo de programación especificado. El parámetro de esta función es la ruta del recurso en el administrador de diseño. Las URL de los archivos incluidas en el código se actualizan cada vez que se publican; por lo tanto, al utilizar esta función te aseguras de utilizar siempre la última versión del archivo. Puedes generar automáticamente esta función en la aplicación, bien haciendo clic con el botón derecho en un archivo y seleccionando Copiar URL pública, o bien haciendo clic en Acciones y seleccionando luego Copiar URL pública. En el siguiente ejemplo se obtiene la URL de un archivo Javascript creado en el administrador de diseño que se puede incluir como atributo src de una etiqueta <script>.
Copia de una URL pública
{{ get_asset_url("/custom/styles/style.css") }}
ParámetroTipoDescripción
pathCadenaLa ruta del archivo del administrador de diseño a la plantilla o el archivo.

get_public_template_url_by_id

Esta función, al igual que get_public_template_url, devuelve la URL pública de la plantilla o el archivo de programación especificado. La única diferencia es que el parámetro de esta función es el ID de la plantilla (disponible en la URL de la plantilla o el archivo de programación), en lugar de la ruta del administrador de diseño.
{{ get_public_template_url_by_id("2778457004")  }}
ParámetroTipoDescripción
template_idIDEl número de ID de la plantilla de archivo.

hubdb_table

HubDB es una característica disponible en Content Hub Pro y Enterprise. La función hubdb_table se puede utilizar para obtener información sobre una tabla, incluyendo su nombre, columnas, última actualización, etcétera. Los siguientes datos pueden obtenerse llamando los atributos correspondientes:
  • ID: el ID de la tabla.
  • name: el nombre de la tabla.
  • columns: una lista de la información de las columnas.
  • created_at: la marca de tiempo de cuando se creó esta tabla por primera vez.
  • published_at: la marca de tiempo de cuando se publicó esta tabla.
  • updated_at: la marca de tiempo de cuando esta tabla fue actualizada por última vez.
  • row_count: el número de filas de la tabla.
{% set table_info = hubdb_table(1548215) %}
{{ table_info.row_count }}
Nota: esta función tiene un límite de 10 llamadas por página.
ParámetroTipoDescripción
table_idCadenaEl ID o el nombre de la tabla.

hubdb_table_column

HubDB es una característica disponible en Content Hub Pro y Enterprise. La función hubdb_table_column se puede utilizar para obtener información sobre una columna de la tabla, como la etiqueta, el tipo y las opciones. Esta función acepta dos parámetros. Esta información sobre la columna puede obtenerse llamando los atributos correspondientes:
  • ID: el ID de la columna.
  • name: el nombre de la columna.
  • label: la etiqueta que se utilizará para la columna.
  • type: el tipo de la columna.
  • options: en el caso de las columnas de tipo select, un mapa del parámetro optionId con la información sobre las opciones.
  • foreignIds: en el caso de las columnas de tipo "foreignId", una lista de los atributos foreignIds (con las propiedades id y name).
Además de los atributos anteriores, también se puede llamar el método getOptionByName("&lt;option name&gt;") mediante el cual se obtendrá la información de la opción por su nombre en el caso de las columnas de tipo "select".
Los nombres de las columnas no distinguen entre mayúsculas y minúsculas, por ejemplo, tanto HS_ID como hs_id son válidos.
{% set column_info = hubdb_table_column(123456, 6)  %}
{{ column_info.label }}
ParámetroTipoDescripción
table_idCadenaEl ID o el nombre de la tabla.
columnCadenaEl ID o el nombre de la columna.

hubdb_table_row

HubDB es una característica disponible en Content Hub Pro y Enterprise. La función hubdb_table_row se puede utilizar para extraer una sola fila de una tabla HubDB. Desde esta fila, se puede extraer la información de cada celda de la tabla llamando el atributo correspondiente:
  • hs_id: el identificador único global de esta fila.
  • hs_created_at: una marca de tiempo que representa cuándo se creó la fila.
  • hs_path: cuando se utiliza con páginas dinámicas, esta cadena es el último segmento de la ruta de la URL de la página.
  • hs_name: cuando se utiliza con páginas dinámicas, es el título de la página.
  • <column name> or [“<column name>”]: obtiene el valor de la columna de la fila por el name de la columna.
Los nombres de las columnas no distinguen entre mayúsculas y minúsculas, por ejemplo, tanto HS_ID como hs_id son válidos.
{% set row = hubdb_table_row(1548264, 6726439331)  %}
{{ row.role  }}
Nota: esta función tiene un límite de 10 llamadas por página.
ParámetroTipoDescripción
table_idCadenaEl ID o el nombre de la tabla.
row_idEnteroEl ID de la fila de la tabla.

hubdb_table_rows

HubDB es una característica disponible en Content Hub Pro y Enterprise. La función hubdb_table_rows se puede utilizar para obtener una lista de las filas de una tabla HubDB con el fin de iterarlas. Una sola llamada de hubdb_table_rows() está limitada a 10 escaneos de tabla por página. Por opción predeterminada, esta función devolverá un máximo de 1000 filas. Para obtener más filas, especifica el parámetro limit en la consulta, como se muestra en el código más abajo.
Nota: Si usas un filtro aleatorio con esta función, la página se renderizará previamente con regularidad. Esto significa que el contenido filtrado no se actualizará cada vez que se descargue la página.
{% for row in hubdb_table_rows(1546258, "years_at_company__gt=3&orderBy=count&limit=1500") %}
the value for row {{ row.hs_id }} is {{ row.name }}
{% endfor %}
ParámetroTipoDescripción
table_idCadenaEl ID o el nombre de la tabla que se consulta.
queryCadenaUna consulta con el mismo formato que la cadena de una consulta de URL. Si no pasa, el resultado muestra todas las filas. Encuentra más información sobre los filtros disponibles para consultar las filas de las tablas de HubDB. Puedes invertir el orden agregando un guion - al nombre de la columna: orderBy=-bar. Puedes incluir este parámetro varias veces para ordenar los resultados con base en varias columnas. Además de ordenar según una columna, también puedes incluir las siguientes funciones:
  • geo_distance(location_column_name, latitude, longitude): toma el nombre de una columna de ubicación y las coordenadas, y muestra las filas ordenadas según la distancia entre el valor de la ubicación en la columna especificada y las coordenadas proporcionadas.
  • length(column_name): toma el nombre de una columna, y muestra las filas ordenadas según la longitud del valor en la columna (calculada como una cadena)
  • random(): muestra las filas en orden aleatorio.
Estas funciones también admiten la inversión del orden. Por ejemplo, orderBy=-geo_distance(location_column,42.37,-71.07) muestra primero los elementos que están más lejos.
Nota: Cuando creas una consulta, los valores range, distinct ndistinct y startswith son palabras clave reservadas. Para consultar una propiedad que usa uno de esos nombres, deberás usar el siguiente formato: range__eq= (en lugar de range=).

include_default_custom_css

Esta función genera una etiqueta de enlace que hace referencia al archivo CSS primario (default_custom_style.min.css). Este archivo está diseñado para ser un archivo CSS global que se puede agregar a todas las plantillas. Para renderizar, la función requiere el valor de parámetro booleano True.
{{ include_default_custom_css(True) }}

index

Muestra la ubicación del primer elemento coincidente en una serie basada en 0. Esta función acepta 3 parámetros y el primero es obligatorio. El primer parámetro es el elemento que estás tratando de encontrar en la serie. El segundo (start) y el tercero (end) permiten encontrar ese elemento en una porción de la serie.
{% set shapes = ["triangle","square","trapezoid","triangle"] %}
triangle index: {{shapes.index("triangle")}} <br>
trapezoid index: {{shapes.index("trapezoid")}}
<hr>
adjusted start and end <br>
triangle index: {{shapes.index("triangle",1,5)}}

insert

Coloca un elemento en una lista en el índice específico proporcionado. Esta función acepta dos parámetros:
  • Index: la posición en la que se va a insertar un elemento.
  • Element: el elemento que se va a insertar.
{% set even_numbers = [2,4,8,10]  %}
{% do even_numbers.insert(2,6) %}
{{even_numbers}}

locale_name

Muestra una representación comprensible para humanos de un código de idioma, opcionalmente traducida a un idioma de destino.
{{ locale_name("es") }}
{{ locale_name("es", "en") }}
ParámetroTipoDescripción
language_codeCadenaEl código de idioma.
target_language_codeCadenaEl idioma al que se traducirá el resultado.

load_translations

Descarga las traducciones desde la ruta _locales de una carpeta determinada y muestra un mapa de los valores. Obtén más información sobre la inclusión de traducciones de los campos en los módulos y temas personalizados.
{% set template_translations = load_translations('../_locales', 'fr', 'en') %}
{{ partial_footer_address }}
ParámetroTipoDescripción
pathCadenaLa ruta de archivo al directorio _locales de las traducciones.
language_codeCadenaEl código de idioma.
language_code_fallbackCadenaEl código de idioma alternativo si el parámetro language_code especificado no está presente.
Muestra la estructura de enlaces anidados de un menú avanzado. Los nodos del menú tienen varias propiedades que se pueden utilizar en los objetos que salen en los resultados. Si pasas null a la función de menú, ésta devolverá una pylist vacía. También puedes especificar un menú por su nombre. En la mayoría de los casos es más seguro utilizar el ID del menú, ya que el cambio de nombre de un menú no afectará al ID. Si se diseña para el mercado es mejor establecer el parámetro "default" como opción predeterminada si no hay resultado para el menú, es decir null.
Nota: esta función tiene un límite de 10 llamadas por página.
{% set node = menu(987) %}
{% for child in node.children %}
{{ child.label }}<br>
{% endfor %}

{% set default_node = menu("default") %}
{% for child in default_node.children %}
{{ child.label }}<br>
{% endfor %}
Al utilizar la función menu() para generar un menú, eres totalmente responsable de asegurarte de que tu menú sea accesible.
ParámetroTipoDescripción
menu_idIDObligatorio. El ID del menú convertido en un número.
root_typeEnumeraciónTipo de raíz del menú ("site_root", "top_parent", "parent", "page_name" "page_id" "breadcrumb").
  • "site_root" indica elementos estáticos - Muestra siempre las páginas de nivel superior en el menú.
  • "top_parent" indica elementos dinámicos según la sección - Muestra páginas en el menú que están relacionadas con la sección que se está viendo.
  • "parent" indica elementos dinámicos según la página - Muestra páginas en el menú que están relacionadas con la página que se está viendo.
  • "breadcrumb" indica un menú que muestra la ruta de navegación (usa un flujo horizontal).
root_keyCadenaClave raíz (ID o nombre) cuando se utiliza "page_name" o "page_id".

module_asset_url

Obtiene la URL de un recurso enlazado a un módulo personalizado mediante Archivos enlazados > Otros archivos.
{{ module_asset_url("smile.jpg") }}
ParámetroTipoDescripción
nameCadenaEl nombre del recurso.

namespace

Crea un objeto namespace que puede contener atributos arbitrarios. Se puede iniciar desde un diccionario o con argumentos de palabras clave.
{% set ns = namespace({"name": "item name", "price":"100"}, b=false) %}
{{ns.name}}, {{ns.b}}
ParámetroTipoDescripción
dictionaryMapaEl diccionario con el que se va a iniciar.
kwargsCadenaArgumentos de palabras clave que se pondrán en el diccionario namespace.

oembed

Muestra el diccionario de datos OEmbed para la solicitud especificada. Solo funciona con los correos electrónicos.
{{ oembed({ url: "https://www.youtube.com/watch?v=KqpFNtbEOh8"}) }}
ParámetroTipoDescripción
requestCadenaSolicita el objeto, {url: string, max_width: long, max_height: long}.

personalization_token

Muestra el valor de un contacto o de una propiedad relacionada con un contacto, o un valor predeterminado.
Hi {{ personalization_token("contact.firstname", "there") }}!
ParámetroTipoDescripción
expressionCadenaUna expresión para el objeto y la propiedad que se renderiza.
defaultCadenaOpcional. Un valor predeterminado que se utiliza si la expresión no ofrece ningún valor.

pop

Elimina el elemento del índice de la lista. También muestra el elemento eliminado si se imprime.
{% set even_numbers = [2,3,4,6,8,9,10]  %}
{% do even_numbers.pop(1) %}
{{even_numbers.pop(4)}}
{{even_numbers}}

postal_location

La función postal_location da como resultado el par de ubicación latitud/longitud de un código postal y un código de país determinados (restringido a EE. UU., CA y GB).
{{ postal_location("02139") }}
{% set location = postal_location("02139", "US") %}
{{ location.latitude }}
{{ location.longitude }}
Nota: esta función tiene un límite de 10 llamadas por página.
ParámetroTipoDescripción
postal_codeCadenaCódigo postal de la ubicación.
country_codeCadenaCódigo de país para el código postal. Si no se proporciona, se intentará deducir el país a partir del código postal.

put

Da resultados similares a la función update, que actualiza un objeto dict con los elementos de otro objeto dict o de un elemento iterable de pares clave-valor, con la diferencia que put admite nombres de variables en objetos dicc.
{% set dict_var = {"authorName": "Tim Robinson"} %}
{% set key = "key" %}
{% set value = "value" %}
{% do dict_var.put(key, value) %}
{{ dict_var }}

range

Muestra una lista que contiene una progresión aritmética de números enteros. Con un parámetro, range mostrará una lista desde 0 hasta lo indicado en value, sin incluirlo. Con dos parámetros, el rango comenzará en el primer valor y se incrementará en 1 hasta el segundo value, sin incluirlo. El tercer parámetro especifica el incremento gradual. Todos los valores pueden ser negativos. Los rangos imposibles devolverán una lista vacía. Los rangos pueden generar un máximo de 1000 valores. El rango se puede utilizar dentro de un bucle “for” para especificar el número de iteraciones que deben ejecutarse.
{{ range(11) }}
{{ range(5, 11) }}
{{ range(0, 11, 2) }}

{% for number in range(11) %}
{{ number }}
{% endfor %}

require_css

Esta función pone en cola un archivo CSS para renderizarlo en el elemento head. Todas las etiquetas link del CSS se agrupan y se muestran antes que cualquier etiqueta JavaScript. El código HubL se sustituye por una línea vacía y luego se agrega una etiqueta link a {{ standard_header_includes }}. Este método requiere una URL absoluta; se puede solicitar el contenido del CMS con una URL relativa conocida mediante el uso de la función get_asset_url(). Para poner en cola un estilo inline para que se muestre con la etiqueta head mediante un elemento con la etiqueta style, utiliza la etiqueta {% require_css %} and {% end_require_css %} en su lugar con las etiquetas style y CSS. El segundo parámetro es un diccionario de opciones para modificar la etiqueta generada. Admite el parámetro async (verdadero o falso) una técnica descrita en web.dev y cualquier otro par clave-valor se agregará como atributo HTML a la etiqueta de estilo.
{{ standard_header_includes }}
<!-- more html -->
{{ require_css("http://example.com/path/to/file.css") }}
{{ require_css(get_asset_url("/relative/path/to/file.css")) }}

<!-- you can tell the browser to load the file asynchronously -->
{{ require_css(get_asset_url("./style.css"), { async: true }) }}

require_js

Especifica si un script debe ser puesto en cola para ser renderizado en el encabezado o en el pie de página (como opción por defecto). Especifica la ubicación del renderizado incluyendo el parámetro head o footer. El código HubL será sustituido por una línea vacía, y se incluirá en el encabezado o en el pie de página. Para poner en cola un script en línea para que se muestre en el pie de página a través de un elemento script, encierra las etiquetas <script> con las funciones {% require_js %} y {% end_require_js %}. También puedes incluir opciones de renderizado adicionales en esta función. Se agregarán como atributos HTML en la etiqueta del script. Las opciones de renderización incluyen:
  • position: head/footer
  • defer: true/false
  • async: true/false
  • type: string
{{ standard_header_includes }}
<!-- more html -->

{{ require_js("http://example.com/path/to/footer-file.js", "footer") }}
{{ require_js("http://example.com/path/to/head-file.js", "head") }}

<!-- you can add async or defer attributes to the tags that are added. -->
{{ require_js(get_asset_url("./path/to/file.js"), { position: "footer", async: true }) }}
{{ require_js(get_asset_url("./jquery-latest.js"), { position: "footer", defer:true }) }}

{{ standard_footer_includes }}

resize_image_url

Convierte la URL de la imagen almacenada en el administrador en archivos a una URL que redimensionará la imagen si así se requiere. La función acepta un parámetro obligatorio y cinco opcionales. Se debe pasar al menos un parámetro opcional. Requerido
  • URL: cadena, la URL de una imagen alojada en HubSpot.
Opcionales
  • width: número, la nueva anchura de la imagen en pixeles.
  • height: número, la nueva altura de la imagen en pixeles.
  • length: número, la nueva longitud del lado mayor, en pixeles.
  • upscale: booleano, utiliza las dimensiones de la imagen redimensionada incluso si superan la imagen original (las imágenes pueden aparecer borrosas).
  • upsize: booleano, muestra la imagen redimensionada aunque sea mayor que la original en bytes.
Nota: las imágenes que son mayores a 4096 pixeles en altura o ancho no se redimensionarán automáticamente. En lugar de eso, tendrás que cambiar el tamaño de la imagen manualmente.
{{ resize_image_url("http://your.hubspot.site/hubfs/img.jpg", 0, 0, 300) }}
ParámetroTipoDescripción
urlCadenaURL de una imagen alojada en HubSpot.
widthEntero (px)El nuevo ancho de la imagen, en pixeles.
heightEntero (px)La nueva altura de la imagen, en pixeles.
lengthEntero (px)La nueva longitud del lado más largo, en pixeles.
upscaleBooleanoUtiliza las dimensiones de la imagen redimensionada incluso si superan la imagen original (las imágenes pueden aparecer borrosas). El valor por opción predeterminada es false.
upsizeBooleanoMuestra la imagen redimensionada aunque sea mayor que la original en bytes. El valor por opción predeterminada es false.

reverse

Invierte el orden de los elementos de una lista. No toma ningún parámetro. Para invertir un objeto o devolver un elemento iterable para repetir la lista a la inversa, utiliza |reverse
{% set numbers = [1,2,3,4] %}
{% do numbers.reverse() %}
{{numbers}}

set_response_code

Establece el código de respuesta como el código especificado. 404 es el único código admitido por ahora. Cuando se utiliza, la página mostrará un error 404.
{{ set_response_code(404) }}
ParámetroTipoDescripción
codeEnteroel código de la respuesta del HTTP. Actualmente, 404 es el único código admitido.

super

Esta función imprime el contenido de la plantilla principal en una plantilla secundaria utilizando la etiqueta extends. Por ejemplo, en el ejemplo de código de abajo, se ha creado una plantilla HTML básica con un bloque HubL llamado sidebar y se ha guardado como parent.html. Se creará un segundo archivo de plantilla que ampliará ese archivo principal. Normalmente, el valor de la etiqueta <h3> se imprimiría en el bloque de la barra lateral del HTML principal. Pero al usar super, el contenido del bloque de la barra lateral de la plantilla principal se combina con el contenido de la plantilla secundaria.
{% extends "custom/page/web_page_basic/parent.html" %}

{% block sidebar %}
<h3>Table Of Contents</h3>
{{ super() }}
{% endblock %}

today

Muestra el inicio del día de hoy (12:00am). Como alternativa, puedes agregar un parámetro para cambiar la zona horaria de la zona UTC predeterminada.
{{ today() }}
{{ today("America/New_York") }}
{{ unixtimestamp(today("America/New_York").plusDays(1)) }}

to_local_time

Convierte una marca de tiempo UNIX a la hora local, con base en la configuración de los informes en HubSpot. A continuación, puedes aplicar un filtro datetimeformat para darle formato a la fecha.
{{ to_local_time(eastern_dt) }}
ParámetroTipoDescripción
dateFecha y horaMarca de tiempo UNIX para convertir a la hora local.

topic_cluster_by_content_id

Devuelve un objeto dicc. de HubL que representa el grupo de temas asociado a un contenido (determinado por el ID del contenido que se proporcionó), e incluye los metadatos de la página pilar asociada, el tema central y los temas secundarios. Se puede usar para “enlazar automáticamente” un contenido con su página pilar asociada [si existe]. Los metadatos disponibles se encuentran con las etiquetas: attachableContent (los metadatos del contenido actual), topic (los metadatos del tema asociado al contenido actual), coreTopic (los metadatos del tema central del conjunto asociado) y pillarPage (los metadatos de la página pilar asociada). Utiliza {{ topicCluster|pprint }} para que se muestren todas las propiedades y atributos disponibles.
{{ topic_cluster_by_content_id(content.id) }}
{%- if content.id -%}
{%- set topicCluster = topic_cluster_by_content_id(content.id) -%}
{%- if topicCluster.pillarPage.url.value and topicCluster.pillarPage.publishState == "PUBLISHED" -%}
<div>Topic: <a href="https://developers.hubspot.es/docs{{ topicCluster.pillarPage.url.value }}">{{ topicCluster.coreTopic.phrase }}</a></div>
{%- endif -%}
{%- endif -%}
Nota: esta función tiene un límite de 10 llamadas por página.
ParámetroTipoDescripción
content_idIDEl ID de la página que se busca.

truncate

La función de truncamiento actúa del mismo modo que el filtro truncar pero utiliza la sintaxis de una función en lugar de la de un filtro. El primer parámetro especifica la cadena. El segundo parámetro especifica el punto en el que se debe truncar. El último parámetro especifica los caracteres que se agregarán cuando se produzca el truncamiento.
Nota: Debido a que esta función depende de los espacios entre las palabras para acortar las cadenas, es posible que no funcione como se espera con idiomas sin espacios entre caracteres, como el japonés.
{{ truncate("string to truncate at a certain length", 19, false, "...") }}

{% set longString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sodales ultricies velit sit amet ornare." %}
{{ truncate(longString, 40, false, "...") }}
ParámetroTipoDescripción
string_to_truncateCadenaLa cadena que se trunca.
lengthEnteroEspecifica el punto en el que se debe truncar el texto (incluye los caracteres HTML).
killwordsBooleanoSi es verdadero, la cadena cortará el texto, independientemente de si está en medio de una palabra.
endCadenaLos caracteres que se agregarán para indicar dónde se ha truncado el texto.

type

Esta función acepta un argumento y muestra el tipo de objeto. El valor devuelto es uno de los siguientes: "bool", "datetime", "dict", "float", "int", "list", "long", "null", "str" o "tuple".
{{ type("Blog") }}
{% set my_type = type("Blog") %}
<p>{{my_type}}</p>

unixtimestamp

Esta función da como resultado una marca de tiempo UNIX cuando se proporciona un objeto datetime.
{{ unixtimestamp(d) }}

update

Actualiza el objeto dict con los elementos de otro objeto dict o de un elemento iterable de pares clave-valor. Utiliza esta función para combinar o fusionar objetos.
{% set dict_var = {"authorName": "Douglas Judy", "authorTitle": "Mastermind" } %}
{% do dict_var.update({"authorFriend": "Jake"}) %}
{% do dict_var.update({"authorLocation": "unknown"}) %}
{{ dict_var }}