> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.es/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Enroll service account

> Inscribe una cuenta de servicio en una secuencia usando los detalles de inscripción especificados. Este punto de conexión es útil para automatizar el proceso de añadir cuentas de servicio a secuencias, lo que puede ayudar a optimizar los workflows y garantizar estrategias de interacción coherentes. Ten en cuenta que los permisos para este punto de conexión requieren acceso a nivel de usuario y no funcionarán para aplicaciones existentes con acceso a nivel de portal.

export const ScopesList = ({scopes = [], description = "Esta API requiere uno de los siguientes ámbitos:"}) => {
  if (!scopes || scopes.length === 0) {
    return null;
  }
  const sortedScopes = scopes.sort((a, b) => a.localeCompare(b));
  return <div>
      <div className="text-sm mb-2">{description}</div>
      <div>
        {sortedScopes.map((scope, index) => <div key={index}>
            <code>
              <span className="text-xs">{scope}</span>
            </code>
          </div>)}
      </div>
    </div>;
};

export const SupportedProducts = ({marketing, sales, service, cms, marketingLevel, salesLevel, serviceLevel, cmsLevel}) => {
  const translations = {
    header: "Productos compatibles",
    description: "Se requiere uno de los siguientes productos o productos de ediciones superiores.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Gratuito",
      starter: "Starter",
      professional: "Pro",
      enterprise: "Enterprise"
    }
  };
  const translateTier = tier => {
    if (!tier) return '';
    const lowerTier = tier.toLowerCase();
    return translations.tiers[lowerTier] || tier;
  };
  const products = [{
    name: marketing ? translations.productNames.marketing : '',
    level: translateTier(marketingLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/marketing-bolt.svg",
    alt: "Marketing Hub"
  }, {
    name: sales ? translations.productNames.sales : '',
    level: translateTier(salesLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/sales-star.svg",
    alt: "Sales Hub"
  }, {
    name: service ? translations.productNames.service : '',
    level: translateTier(serviceLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/service-heart.svg",
    alt: "Service Hub"
  }, {
    name: cms ? translations.productNames.cms : '',
    level: translateTier(cmsLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/content-play.svg",
    alt: "Content Hub"
  }].filter(product => product.name && product.level);
  if (products.length === 0) return null;
  return <div>
      <div className="text-sm mb-2">{translations.description}</div>
      <div className={`grid ${products.length === 1 ? 'grid-cols-1' : 'grid-cols-2'} gap-1.5`}>
        {products.map((product, index) => <div key={index} style={{
    display: 'flex',
    alignItems: 'center'
  }}>
            <img src={product.icon} alt={product.alt} className="w-3.5 h-3.5 mr-1.5 mt-2.5 mb-2.5 flex-shrink-0 align-middle" />
            <span className="font-medium mr-1 text-sm">{product.name} -</span>
            <span className="text-sm">{product.level}</span>
          </div>)}
      </div>
    </div>;
};

<AccordionGroup>
  <Accordion title="Supported products" defaultOpen="true" icon="cubes">
    <SupportedProducts sales={true} service={true} salesLevel="PROFESSIONAL" serviceLevel="PROFESSIONAL" />
  </Accordion>

  <Accordion title="Required Scopes" icon="key">
    <ScopesList
      scopes={[
  'automation.sequences.enrollments.write'
]}
    />
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml specs/2026-09/automation-sequences-v2026-09.json POST /automation/sequences/2026-09/serviceaccounts/enrollments
openapi: 3.0.1
info:
  title: Automation Sequences
  description: Basepom for all HubSpot Projects
  version: 2026-09
  x-hubspot-product-tier-requirements:
    marketing: FREE
    sales: FREE
    service: FREE
    cms: FREE
    commerce: FREE
    crmHub: FREE
    dataHub: FREE
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Basic
  - name: Enrollment
paths:
  /automation/sequences/2026-09/serviceaccounts/enrollments:
    post:
      tags:
        - Enrollment
      summary: Inscribir cuenta de servicio
      description: >-
        Inscribe una cuenta de servicio en una secuencia usando los detalles de
        inscripción especificados. Este punto de conexión es útil para
        automatizar el proceso de añadir cuentas de servicio a secuencias, lo
        que puede ayudar a optimizar los workflows y garantizar estrategias de
        interacción coherentes. Ten en cuenta que los permisos para este punto
        de conexión requieren acceso a nivel de usuario y no funcionarán para
        aplicaciones existentes con acceso a nivel de portal.
      operationId: post-/automation/sequences/2026-09/serviceaccounts/enrollments
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicSequenceEnrollmentRequest'
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicSequenceEnrollmentLiteResponse'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - automation.sequences.enrollments.write
components:
  schemas:
    PublicSequenceEnrollmentRequest:
      required:
        - contactId
        - senderEmail
        - sequenceId
      type: object
      properties:
        contactId:
          type: string
          description: >-
            El identificador único del contacto que se va a inscribir en la
            secuencia. Es una cadena.
        senderAliasAddress:
          type: string
          description: >-
            Una dirección de correo electrónico alias opcional que se puede usar
            como dirección del remitente. Es una cadena.
        senderEmail:
          type: string
          description: >-
            La dirección de correo electrónico del remitente responsable de la
            inscripción a la secuencia. Es una cadena.
        sequenceId:
          type: string
          description: >-
            El identificador único de la secuencia en la que se inscribirá el
            contacto. Es una cadena.
    PublicSequenceEnrollmentLiteResponse:
      required:
        - enrolledAt
        - id
        - toEmail
        - updatedAt
      type: object
      properties:
        enrolledAt:
          type: string
          description: >-
            La fecha y hora en que el contacto se inscribió en la secuencia, en
            formato ISO 8601.
          format: date-time
        id:
          type: string
          description: El identificador único de la inscripción en la secuencia.
        toEmail:
          type: string
          description: >-
            La dirección de correo electrónico del contacto inscrito en la
            secuencia.
        updatedAt:
          type: string
          description: >-
            La fecha y hora en que la inscripción a la secuencia se actualizó
            por última vez, en formato ISO 8601.
          format: date-time
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: >-
            La categoría de error, que indica el tipo general de error que
            ocurrió.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Contexto sobre la condición de error, representado como un objeto
            con propiedades adicionales que son secuencias de cadenas.
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Un identificador único para la solicitud. Incluye este valor en
            cualquier informe de error o ticket de asistencia. Tiene formato
            UUID.
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: >-
            Más información sobre el error, representada como un conjunto de
            objetos ErrorDetail.
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Un mapa de nombres de enlaces a URI asociadas que contienen
            documentación sobre el error o los pasos recomendados para
            solucionarlo.
        message:
          type: string
          description: >-
            Un mensaje legible en el que se describa el error y los pasos para
            solucionarlo, si procede.
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Una categoría específica que contiene detalles más concretos acerca
            del error.
      description: >-
        Representa una respuesta de error que devuelve la API cuando una
        operación falla. Este componente se usa en varios puntos de terminación
        para dar información detallada sobre el error que se encontró.
      example:
        message: Invalid input (details will vary based on the error)
        correlationId: aeb5f871-7f07-4993-9211-075dc63e7cbf
        category: VALIDATION_ERROR
        links:
          knowledge-base: https://www.hubspot.com/products/service/knowledge-base
    ErrorDetail:
      required:
        - message
      type: object
      properties:
        code:
          type: string
          description: >-
            El código de estado asociado con el detalle del error, que indica el
            tipo de error encontrado.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Contexto sobre la condición de error, proporcionado como un objeto
            con propiedades adicionales. Esto puede incluir detalles específicos
            como ámbitos faltantes.
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: >-
            El nombre del campo o parámetro donde se encontró el error. Este
            proporciona contexto sobre dónde ocurrió el error.
        message:
          type: string
          description: >-
            Un mensaje legible que describe el error, junto con los pasos de
            solución cuando corresponda. Este es un campo obligatorio.
        subCategory:
          type: string
          description: >-
            Una categoría específica que contiene más detalles sobre el error,
            lo que ayuda a clasificarlo aún más.
      description: >-
        Representa información detallada sobre un error que ocurrió en la API.
        Este componente se usa para dar contexto adicional y detalles
        específicos sobre los errores, normalmente como parte de una respuesta
        de error.
  responses:
    Error:
      description: An error occurred.
      content:
        '*/*':
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://app.hubspot.com/oauth/authorize
          tokenUrl: https://api.hubapi.com/oauth/v1/token
          scopes:
            automation.sequences.enrollments.write: ''
            automation.sequences.read: ''
            automation.sequences.write: ''
            sequences-public-delete: ''

````