> For the complete documentation index, see [llms.txt](https://docs.airops.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.airops.com/docs/pt/integracoes/overview/integrations/craft-cms.md).

# Craft CMS

Integre o seu Workflow com Craft CMS

O passo de Integração com o Craft CMS permite-lhe ligar os seus fluxos de trabalho do AirOps à sua instância do Craft CMS. Esta integração nativa oferece capacidades abrangentes de gestão de entradas e ativos diretamente a partir dos seus fluxos de trabalho.

## Visão geral

O Craft CMS é um sistema de gestão de conteúdos flexível e fácil de utilizar, criado para a criação de experiências digitais personalizadas. Ao ligar o Craft CMS ao AirOps, pode automatizar a criação de conteúdo, a publicação e a gestão de ativos em todos os seus projetos Craft.

## Autenticação

Antes de utilizar a integração do Craft CMS nos seus fluxos de trabalho, tem primeiro de ligar a sua conta Craft CMS nas Definições do AirOps:

1. Navegue até **Definições > Integrações**
2. Encontre a secção Craft CMS e clique em "Configurar"
3. Insira sua **Token GraphQL** — um token com permissões de escrita gerado no painel de controlo do seu Craft CMS em **GraphQL > Tokens**
4. Insira sua **URL do site** — o URL base da sua instância do Craft CMS (por ex. `https://example.com`)
5. Opcionalmente, introduza um **ID do autor predefinido** — o ID numérico do utilizador do Craft CMS a atribuir como autor das entradas por defeito. As ações individuais podem substituir este valor

{% hint style="info" %}
O seu token GraphQL deve ter permissões para ler e লিখar entradas e ativos nas secções que pretende usar.
{% endhint %}

## Ações disponíveis

### Gestão de Entradas

* **Criar Entrada** -- adicionar uma nova entrada a uma secção do Craft CMS
* **Atualizar Entrada** -- modificar os campos, o estado ou os metadados de uma entrada existente
* **Obter Entrada** -- recuperar uma única entrada por ID ou slug
* **Listar Entradas** -- obter várias entradas de uma secção com filtros opcionais
* **Eliminar Entrada** -- remover permanentemente uma entrada

### Gestão de Ativos

* **Obter Ativo** -- recuperar um único ativo por ID
* **Listar Ativos** -- obter ativos de um volume com filtros opcionais
* **Anexar Ativo à Entrada** -- associar ativos existentes a um campo de ativos de uma entrada
* **Eliminar Ativo** -- remover permanentemente um ativo de um volume

## Parâmetros da Ação

### Criar Entrada

1. **Seção** (obrigatório) -- o identificador da secção a que a entrada pertence (por ex. `blog`, `notícias`)
2. **Tipo de Entrada** -- o identificador do tipo de entrada (por ex. `predefinido`, `artigo`). O valor predefinido é `predefinido`
3. **Título** -- o título da entrada
4. **Slug** -- o slug de URL da entrada
5. **Status** -- estado da entrada: `ativo` ou `desativado`
6. **Data de Publicação** -- a data em que a entrada deve ser publicada (formato ISO 8601)
7. **Data de Expiração** -- a data em que a entrada deve expirar (formato ISO 8601)
8. **Campos Personalizados** -- um objeto JSON de valores de campos personalizados, indexado pelo identificador do campo
9. **ID do Autor** -- o ID numérico do autor da entrada. Substitui o ID do Autor Predefinido definido nas credenciais

### Atualizar Entrada

1. **ID da Entrada** (obrigatório) -- o ID numérico da entrada a atualizar
2. **Seção** -- o identificador da secção a que a entrada pertence
3. **Tipo de Entrada** -- o identificador do tipo de entrada
4. **Título** -- o título da entrada
5. **Slug** -- o slug de URL da entrada
6. **Status** -- estado da entrada: `ativo` ou `desativado`
7. **Data de Publicação** -- a data em que a entrada deve ser publicada
8. **Data de Expiração** -- a data em que a entrada deve expirar
9. **Campos Personalizados** -- um objeto JSON de valores de campos personalizados, indexado pelo identificador do campo
10. **ID do Autor** -- o ID numérico do autor da entrada. Substitui o ID do Autor Predefinido definido nas credenciais

### Obter Entrada

1. **Pesquisar Por** (obrigatório) -- como identificar a entrada: `id` ou `slug`
2. **Valor de Pesquisa** (obrigatório) -- o valor do ID ou slug a procurar
3. **Tipo de Entrada** -- o identificador do tipo de entrada, usado para construir fragmentos de campos personalizados
4. **Campos** -- lista separada por vírgulas de identificadores de campos personalizados a incluir na resposta (por ex. `heroImage,body`)

### Listar Entradas

1. **Seção** -- o identificador da secção para filtrar
2. **Tipo de Entrada** -- o identificador do tipo de entrada, usado para construir fragmentos de campos personalizados
3. **Campos** -- lista separada por vírgulas de identificadores de campos personalizados a incluir na resposta
4. **Pesquisar** -- uma string de consulta de pesquisa para filtrar entradas
5. **Limite** -- o número máximo de entradas a devolver
6. **Deslocamento** -- o número de entradas a ignorar (para paginação)

### Eliminar Entrada

1. **ID da Entrada** (obrigatório) -- o ID numérico da entrada a eliminar

### Obter Ativo

1. **ID do Ativo** (obrigatório) -- o ID numérico do ativo a recuperar

### Listar Ativos

1. **Volume** -- o identificador do volume por que filtrar ativos (por ex. `imagens`, `documentos`)
2. **Pesquisar** -- uma string de consulta de pesquisa para filtrar ativos
3. **Limite** -- o número máximo de ativos a devolver

### Anexar Ativo à Entrada

1. **ID da Entrada** (obrigatório) -- o ID numérico da entrada à qual anexar ativos
2. **Seção** (obrigatório) -- o identificador da secção a que a entrada pertence
3. **Tipo de Entrada** -- o identificador do tipo de entrada
4. **Identificador do Campo** (obrigatório) -- o identificador do campo Assets na entrada (por ex. `heroImage`, `imagens`)
5. **IDs dos Ativos** (obrigatório) -- lista separada por vírgulas de IDs de ativos a anexar (por ex. `123,456`). Substitui quaisquer ativos existentes no campo
6. **ID do Autor** -- o ID numérico do autor da entrada. Substitui o ID do Autor Predefinido definido nas credenciais

### Eliminar Ativo

1. **ID do Ativo** (obrigatório) -- o ID numérico do ativo a eliminar

## Casos de Utilização Comuns

* Criar e publicar automaticamente entradas de blogue a partir de conteúdo gerado por IA
* Atualizar em massa os estados das entradas com base nas condições do fluxo de trabalho
* Anexar imagens geradas ou carregadas às entradas como ativos principais
* Obter entradas por slug para enriquecer ou reescrever conteúdo existente
* Construir pipelines de conteúdo que criam entradas em rascunho e publicam após revisão
* Limpar programaticamente entradas e ativos expirados ou obsoletos

{% hint style="info" %}
Nota: a integração com o Craft CMS requer um token GraphQL com permissões apropriadas. Certifique-se de que o seu token concede acesso às secções e volumes que pretende utilizar.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.airops.com/docs/pt/integracoes/overview/integrations/craft-cms.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
