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

# Lister les modèles d’automatisation

> Répertorie les modèles d’automatisation intégrés.

Les valeurs `template_id` sont acceptées par l’endpoint de création ; si
`tools.mcp_servers` est omis lors de la création, les
`required_mcps` du modèle s’appliquent.

<div id="permissions">
  ## Autorisations
</div>

Nécessite un utilisateur de service disposant de l’autorisation `ViewOrgAutomations` au niveau de l’organisation.

<div id="usage">
  ## Utilisation
</div>

Répertorie les modèles d’automatisation intégrés. Les valeurs `template_id` sont acceptées par l’endpoint de création comme marqueur de provenance ; si `tools.mcp_servers` est omis lors de la création, les `required_mcps` du modèle s’appliquent.


## OpenAPI

````yaml fr/v3-openapi.yaml GET /v3/organizations/{org_id}/automations/templates
openapi: 3.1.0
info:
  description: API Devin v3 avec authentification par compte de service et RBAC
  title: Devin API v3
  version: 3.0.0
servers: []
security:
  - bearerAuth: []
paths:
  /v3/organizations/{org_id}/automations/templates:
    get:
      tags:
        - automations
      summary: Lister les modèles d’automatisation
      description: "Répertorie les modèles d’automatisation intégrés.\n\nLes valeurs `template_id` sont acceptées par l’endpoint de création\_; si\n`tools.mcp_servers` est omis lors de la création, les\n`required_mcps` du modèle s’appliquent."
      operationId: >-
        handle_list_automation_templates_v3_organizations__org_id__automations_templates_get
      parameters:
        - description: "ID d’organisation (préfixe\_: org-)"
          in: path
          name: org_id
          required: true
          schema:
            example: org-abc123def456
            title: Org Id
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutomationTemplatesResponse'
          description: Réponse réussie
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Non autorisé
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Interdit
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Introuvable
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Conflit
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Contenu non traitable
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Trop de requêtes
components:
  schemas:
    AutomationTemplatesResponse:
      additionalProperties: false
      properties:
        templates:
          items:
            $ref: '#/components/schemas/AutomationTemplateResponse'
          title: Templates
          type: array
      required:
        - templates
      title: AutomationTemplatesResponse
      type: object
    ProblemDetail:
      description: "Corps d’erreur RFC 9457 application/problem+json pour l’API v3.\n\ndetail est conservé de l’ancien corps {\"detail\": ...} pour assurer la rétrocompatibilité\_; les\nautres membres sont ajoutés de manière additive. errors contient les échecs de validation\nau niveau des champs (422 uniquement)."
      properties:
        detail:
          anyOf:
            - type: string
            - type: 'null'
          description: Explication en langage clair, spécifique à cette occurrence.
          title: Detail
        errors:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          description: Erreurs de validation par champ (réponses 422 uniquement).
          title: Errors
        instance:
          anyOf:
            - type: string
            - type: 'null'
          description: Une référence d’URI (le chemin de la requête) pour cette occurrence.
          title: Instance
        status:
          description: Le code d’état HTTP.
          title: Status
          type: integer
        title:
          description: Un bref résumé du type de problème, compréhensible par un humain.
          title: Title
          type: string
        type:
          default: about:blank
          description: Une référence d’URI identifiant le type de problème.
          title: Type
          type: string
      required:
        - title
        - status
      title: ProblemDetail
      type: object
    AutomationTemplateResponse:
      additionalProperties: false
      properties:
        actions:
          items:
            discriminator:
              mapping:
                message_session:
                  $ref: '#/components/schemas/AutomationMessageSessionAction'
                monitor_session:
                  $ref: '#/components/schemas/AutomationMonitorSessionAction'
                start_session:
                  $ref: '#/components/schemas/AutomationStartSessionAction-Output'
              propertyName: type
            oneOf:
              - $ref: '#/components/schemas/AutomationStartSessionAction-Output'
              - $ref: '#/components/schemas/AutomationMessageSessionAction'
              - $ref: '#/components/schemas/AutomationMonitorSessionAction'
          title: Actions
          type: array
        category:
          title: Category
          type: string
        description:
          title: Description
          type: string
        docs_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Docs Url
        featured:
          default: false
          title: Featured
          type: boolean
        name:
          title: Name
          type: string
        required_integrations:
          items:
            type: string
          title: Required Integrations
          type: array
        required_mcps:
          items:
            type: string
          title: Required Mcps
          type: array
        template_id:
          title: Template Id
          type: string
        triggers:
          items:
            $ref: '#/components/schemas/AutomationTriggerRequest-Output'
          title: Triggers
          type: array
      required:
        - template_id
        - name
        - description
        - category
        - required_integrations
        - required_mcps
        - triggers
        - actions
      title: AutomationTemplateResponse
      type: object
    AutomationMessageSessionAction:
      additionalProperties: false
      properties:
        auto_create:
          default: false
          description: >-
            Lorsque true, le premier déclencheur crée une session de longue
            durée détenue par l’automatisation, puis les déclencheurs suivants
            lui envoient des messages.
          title: Auto Create
          type: boolean
        prompt:
          description: >-
            La charge utile de l’événement déclencheur est ajoutée
            automatiquement.
          title: Prompt
          type: string
        target_devin_id:
          anyOf:
            - type: string
            - type: 'null'
          description: "Doit appartenir à l’organisation\_; la modification d’une automatisation contenant cette action nécessite un accès en écriture à la session cible (les modifications limitées à l’activation ou à la désactivation sont exemptées). Obligatoire sauf si auto_create est true, auquel cas il est défini côté serveur lorsque le premier déclencheur crée la session\_; les valeurs fournies par le client sont ignorées."
          title: Target Devin Id
        type:
          const: message_session
          default: message_session
          title: Type
          type: string
      required:
        - prompt
      title: AutomationMessageSessionAction
      type: object
    AutomationMonitorSessionAction:
      additionalProperties: false
      properties:
        setup_prompt:
          description: >-
            Injecté dans le prompt système de la session. Même syntaxe de jetons
            de référence que prompt.
          title: Setup Prompt
          type: string
        slack_monitor_config:
          $ref: '#/components/schemas/AutomationSlackMonitorConfig'
          description: Nécessite exactement un déclencheur slack:message sur le même canal.
        type:
          const: monitor_session
          default: monitor_session
          title: Type
          type: string
      required:
        - setup_prompt
        - slack_monitor_config
      title: AutomationMonitorSessionAction
      type: object
    AutomationStartSessionAction-Output:
      additionalProperties: false
      properties:
        prompt:
          description: "La source de vérité unique\_: texte brut avec des jetons de référence en ligne (@{owner}/{repo}, @{path}, @playbook:{id}, @skills:{name}, !{macro}, ${SECRET_NAME}). Les jetons préfixés par type sont validés lors de l'enregistrement\_; les ID inconnus renvoient une erreur 400. La charge utile de l'événement déclencheur est ajoutée automatiquement."
          title: Prompt
          type: string
        session:
          $ref: '#/components/schemas/AutomationSessionConfig-Output'
          description: Configuration de la session générée.
        type:
          const: start_session
          default: start_session
          title: Type
          type: string
      required:
        - prompt
      title: AutomationStartSessionAction
      type: object
    AutomationTriggerRequest-Output:
      additionalProperties: false
      properties:
        conditions:
          anyOf:
            - $ref: '#/components/schemas/AutomationConditions-Output'
            - type: 'null'
          description: null correspond à tous les événements.
        event_type:
          description: Type d'événement déclencheur, par ex. 'github:pull_request'.
          enum:
            - github:issue_comment
            - github:issues
            - github:pull_request
            - github:pull_request_review
            - github:pull_request_review_comment
            - github:check_run
            - github:push
            - gitlab:merge_request
            - gitlab:note
            - gitlab:issue
            - gitlab:issue_note
            - gitlab:push
            - gitlab:pipeline
            - schedule:recurring
            - slack:message
            - slack:reaction_added
            - linear:create
            - linear:label_added
            - linear:assigned
            - linear:status_changed
            - linear:priority_changed
            - linear:moved
            - jira:issue_created
            - jira:label_added
            - jira:status_changed
            - jira:assigned
            - pylon:issue_created
            - pylon:issue_tag_added
            - pylon:issue_status_changed
            - incident_io:incident_created
            - incident_io:status_changed
            - incident_io:severity_changed
            - incident_io:follow_up_created
            - webhook:incoming
            - snapshot_build:completed
          title: Event Type
          type: string
        replies:
          default: []
          description: >-
            Emplacement auquel la session de ce déclencheur est liée et où sa
            réponse est envoyée. Seules les réponses du déclencheur
            correspondant sont exécutées ; toutes les entrées sont traitées
            indépendamment et dédupliquées.
          items:
            $ref: '#/components/schemas/AutomationReply'
          title: Replies
          type: array
      required:
        - event_type
      title: AutomationTriggerRequest
      type: object
    AutomationSlackMonitorConfig:
      additionalProperties: false
      properties:
        source_channel_id:
          title: Source Channel Id
          type: string
        team_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Team Id
      required:
        - source_channel_id
      title: AutomationSlackMonitorConfig
      type: object
    AutomationSessionConfig-Output:
      additionalProperties: false
      properties:
        bypass_approval:
          default: false
          description: "Approuve automatiquement la création de sessions enfants (c'est la seule vérification que cet indicateur contourne)\_; toute future vérification contournable nécessitera un nouveau champ."
          title: Bypass Approval
          type: boolean
        notifications:
          anyOf:
            - $ref: '#/components/schemas/AutomationSessionNotificationsConfig'
            - type: 'null'
          description: >-
            Notifications relatives au contenu des sessions (actuellement
            disponibles uniquement dans Slack).
        platform:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Plateforme VM de la session. Si null, la session utilise la
            plateforme par défaut de l'organisation au moment de l'invocation.
          title: Platform
        playbook_id:
          anyOf:
            - type: string
            - type: 'null'
          description: "Lecture seule\_: dérivé du premier jeton @playbook: du prompt."
          title: Playbook Id
        repos:
          default: []
          description: "Lecture seule\_: dérivé des jetons de dépôt du prompt."
          items:
            type: string
          title: Repos
          type: array
        tags:
          default: []
          description: >-
            Balises de session. Pour les entreprises imposant le balisage, une
            seule valeur autorisée est requise.
          items:
            type: string
          title: Tags
          type: array
      title: AutomationSessionConfig
      type: object
    AutomationConditions-Output:
      additionalProperties: false
      properties:
        any:
          description: OU de groupes ET (FND fixe à deux niveaux).
          items:
            $ref: '#/components/schemas/AutomationConditionGroup'
          title: Any
          type: array
      required:
        - any
      title: AutomationConditions
      type: object
    AutomationReply:
      additionalProperties: false
      properties:
        type:
          description: "notify_thread: indication unidirectionnelle «\_session démarrée\_» dans le fil déclencheur au moment de l’envoi (déclencheurs Slack). attach_thread: liaison bidirectionnelle avec le fil déclencheur au moment de l’envoi (déclencheurs Slack). post_response: transmet la réponse de l’agent au contexte déclencheur."
          enum:
            - notify_thread
            - attach_thread
            - post_response
          title: Type
          type: string
      required:
        - type
      title: AutomationReply
      type: object
    AutomationSessionNotificationsConfig:
      additionalProperties: false
      description: >-
        Destination du contenu de la session générée, par opposition au

        groupe ``notifications`` au niveau de l’automatisation (notifications
        d’état d’envoi).
      properties:
        slack:
          anyOf:
            - $ref: '#/components/schemas/AutomationSessionSlackConfig'
            - type: 'null'
          description: "Associe la session à un espace Slack\_: communication bidirectionnelle pour post_updates/forward_thread et post_response une fois que sa diffusion initiale a associé le fil."
      title: AutomationSessionNotificationsConfig
      type: object
    AutomationConditionGroup:
      additionalProperties: false
      properties:
        all:
          description: "ET\_: chaque condition du groupe doit correspondre."
          items:
            discriminator:
              mapping:
                between:
                  $ref: '#/components/schemas/AutomationRangeCondition'
                contains:
                  $ref: '#/components/schemas/AutomationStringCondition'
                ends_with:
                  $ref: '#/components/schemas/AutomationStringCondition'
                eq:
                  $ref: '#/components/schemas/AutomationComparisonCondition'
                globs:
                  $ref: '#/components/schemas/AutomationGlobCondition'
                gt:
                  $ref: '#/components/schemas/AutomationNumericCondition'
                gte:
                  $ref: '#/components/schemas/AutomationNumericCondition'
                in:
                  $ref: '#/components/schemas/AutomationListCondition'
                is_empty:
                  $ref: '#/components/schemas/AutomationEmptyCondition'
                is_not_empty:
                  $ref: '#/components/schemas/AutomationEmptyCondition'
                lt:
                  $ref: '#/components/schemas/AutomationNumericCondition'
                lte:
                  $ref: '#/components/schemas/AutomationNumericCondition'
                matches:
                  $ref: '#/components/schemas/AutomationMatchCondition'
                neq:
                  $ref: '#/components/schemas/AutomationComparisonCondition'
                not_contains:
                  $ref: '#/components/schemas/AutomationStringCondition'
                not_ends_with:
                  $ref: '#/components/schemas/AutomationStringCondition'
                not_globs:
                  $ref: '#/components/schemas/AutomationGlobCondition'
                not_in:
                  $ref: '#/components/schemas/AutomationListCondition'
                not_matches:
                  $ref: '#/components/schemas/AutomationMatchCondition'
                not_starts_with:
                  $ref: '#/components/schemas/AutomationStringCondition'
                recurrence:
                  $ref: '#/components/schemas/AutomationRecurrenceCondition'
                starts_with:
                  $ref: '#/components/schemas/AutomationStringCondition'
              propertyName: operator
            oneOf:
              - $ref: '#/components/schemas/AutomationComparisonCondition'
              - $ref: '#/components/schemas/AutomationStringCondition'
              - $ref: '#/components/schemas/AutomationNumericCondition'
              - $ref: '#/components/schemas/AutomationEmptyCondition'
              - $ref: '#/components/schemas/AutomationRangeCondition'
              - $ref: '#/components/schemas/AutomationListCondition'
              - $ref: '#/components/schemas/AutomationMatchCondition'
              - $ref: '#/components/schemas/AutomationRecurrenceCondition'
              - $ref: '#/components/schemas/AutomationGlobCondition'
          title: All
          type: array
      required:
        - all
      title: AutomationConditionGroup
      type: object
    AutomationSessionSlackConfig:
      additionalProperties: false
      properties:
        channel_id:
          title: Channel Id
          type: string
        mode:
          description: "post_updates\_: la session échange dans un fil du canal (disponible pour les déclencheurs autres que Slack). forward_thread\_: idem, avec en plus un lien de retour publié dans le fil à l'origine du déclenchement (nécessite un déclencheur Slack). post_response\_: la réponse finale de la session est publiée dans le canal sous forme de message de premier niveau, puis son fil est associé aux réponses et messages de suivi (disponible pour tout déclencheur)."
          enum:
            - post_updates
            - forward_thread
            - post_response
          title: Mode
          type: string
      required:
        - mode
        - channel_id
      title: AutomationSessionSlackConfig
      type: object
    AutomationRangeCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          const: between
          title: Operator
          type: string
        value:
          description: Plage inclusive [low, high].
          maxItems: 2
          minItems: 2
          prefixItems:
            - anyOf:
                - type: integer
                - type: number
            - anyOf:
                - type: integer
                - type: number
          title: Value
          type: array
      required:
        - field
        - operator
        - value
      title: AutomationRangeCondition
      type: object
    AutomationStringCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - contains
            - not_contains
            - starts_with
            - not_starts_with
            - ends_with
            - not_ends_with
          title: Operator
          type: string
        value:
          title: Value
          type: string
      required:
        - field
        - operator
        - value
      title: AutomationStringCondition
      type: object
    AutomationComparisonCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - eq
            - neq
          title: Operator
          type: string
        value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
          title: Value
      required:
        - field
        - operator
        - value
      title: AutomationComparisonCondition
      type: object
    AutomationGlobCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - globs
            - not_globs
          title: Operator
          type: string
        value:
          description: "Motifs glob\_; tout chemin modifié qui correspond (github:push, gitlab:push)."
          items:
            type: string
          title: Value
          type: array
      required:
        - field
        - operator
        - value
      title: AutomationGlobCondition
      type: object
    AutomationNumericCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - gt
            - lt
            - gte
            - lte
          title: Operator
          type: string
        value:
          anyOf:
            - type: integer
            - type: number
          title: Value
      required:
        - field
        - operator
        - value
      title: AutomationNumericCondition
      type: object
    AutomationListCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - in
            - not_in
          title: Operator
          type: string
        value:
          items:
            type: string
          title: Value
          type: array
      required:
        - field
        - operator
        - value
      title: AutomationListCondition
      type: object
    AutomationEmptyCondition:
      additionalProperties: false
      description: "Opérateur unaire\_: correspond selon que le champ est vide\_; `value` ne contient aucune donnée."
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - is_empty
            - is_not_empty
          title: Operator
          type: string
        value:
          title: Value
          type: 'null'
      required:
        - field
        - operator
      title: AutomationEmptyCondition
      type: object
    AutomationMatchCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - matches
            - not_matches
          title: Operator
          type: string
        value:
          description: Expression régulière.
          title: Value
          type: string
      required:
        - field
        - operator
        - value
      title: AutomationMatchCondition
      type: object
    AutomationRecurrenceCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          const: recurrence
          title: Operator
          type: string
        value:
          description: >-
            RRULE iCalendar pour le champ rrule de schedule:recurring, p. ex.
            FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0
          title: Value
          type: string
      required:
        - field
        - operator
        - value
      title: AutomationRecurrenceCondition
      type: object
  securitySchemes:
    bearerAuth:
      description: "Identifiant de compte de service (préfixe\_: cog_)"
      scheme: bearer
      type: http

````