Criando projetos usando a API Blue.
Criar um Novo Projeto
Para criar um novo projeto, você pode usar a seguinte mutação:
mutation {
createProject(
input: {
name: "YOUR PROJECT NEW NAME"
companyId: "YOUR COMPANY ID OR SLUG"
description: "Project description"
color: "#3B82F6"
icon: "briefcase"
category: GENERAL
}
) {
id
name
slug
description
color
icon
category
}
}
Lembre-se de incluir os cabeçalhos necessários em sua solicitação:
- `X-Bloo-Token-ID`: Seu ID de token da API
- `X-Bloo-Token-Secret`: Seu segredo de token da API
- `X-Bloo-Company-ID`: Seu ID da empresa
- `Content-Type: application/json`
Exemplo de Resposta
Em caso de sucesso, a mutação retornará os detalhes do projeto recém-criado:
{
"data": {
"createProject": {
"id": "newly-created-project-id",
"name": "YOUR PROJECT NEW NAME",
"slug": "your-project-new-name",
"description": "Project description",
"color": "#3B82F6",
"icon": "briefcase",
"category": "GENERAL"
}
}
}
Criar a Partir de um Modelo
Para criar um projeto a partir de um modelo existente, você pode adicionar um templateId
opcional à mutação.
mutation {
createProject(
input: {
templateId: "YOUR TEMPLATE ID OR SLUG"
name: "YOUR PROJECT NEW NAME"
companyId: "YOUR COMPANY ID OR SLUG"
}
) {
id
}
}
Exemplo Avançado com Modelo
Aqui está um exemplo completo mostrando todas as opções disponíveis ao criar a partir de um modelo:
mutation {
createProject(
input: {
templateId: "marketing-template"
name: "Q1 Marketing Campaign"
companyId: "acme-corp"
description: "Marketing initiatives for Q1 2024"
color: "#10B981"
icon: "megaphone"
category: MARKETING
coverConfig: {
enabled: true
fit: COVER
imageSelectionType: FIRST
source: DESCRIPTION
}
}
) {
id
name
slug
description
color
icon
category
}
}
O parâmetro `coverConfig` atualmente só funciona ao criar um projeto a partir de um modelo. Para projetos criados do zero, você precisará usar a mutação `editProject` após a criação para configurar as imagens de capa de tarefas.
Verificar Status da Criação
Para verificar o status da criação do seu projeto na fila, você pode usar a seguinte consulta:
query {
copyProjectStatus {
newProjectName
isTemplate
isActive
queuePosition
totalQueues
}
}
Essa consulta retornará o status da criação do seu projeto na fila.
Parâmetros de Entrada
CreateProjectInput
Parâmetro | Tipo | Necessário | Descrição |
---|---|---|---|
name |
String | ✅ Sim | O nome do projeto. URLs serão removidas do nome. |
companyId |
String | ✅ Sim | O ID ou slug da empresa onde o projeto será criado. |
description |
String | Não | Uma descrição do projeto. |
color |
String | Não | Cor do projeto em formato hex (por exemplo, "#3B82F6"). |
icon |
String | Não | Identificador do ícone para o projeto (por exemplo, "maleta", "foguete"). |
category |
ProjectCategory | Não | Categoria do projeto. Padrão para GENERAL se não especificado. |
templateId |
String | Não | ID de um projeto existente para usar como modelo. |
coverConfig |
TodoCoverConfigInput | Não | Configuração para imagens de capa de tarefas (atualmente funciona apenas com criação baseada em modelo). |
Valores de ProjectCategory
Valor | Descrição |
---|---|
CRM |
Projetos de Gestão de Relacionamento com o Cliente |
CROSS_FUNCTIONAL |
Projetos de equipe multifuncional |
CUSTOMER_SUCCESS |
Iniciativas de sucesso do cliente |
DESIGN |
Projetos de design e criativos |
ENGINEERING |
Projetos de engenharia e desenvolvimento |
GENERAL |
Projetos gerais (padrão) |
HR |
Projetos de Recursos Humanos |
IT |
Projetos de Tecnologia da Informação |
MARKETING |
Campanhas e iniciativas de marketing |
OPERATIONS |
Projetos de operações e logística |
PRODUCT |
Projetos de gestão de produtos |
SALES |
Projetos de vendas e desenvolvimento de negócios |
TodoCoverConfigInput
Se você quiser configurar como as imagens de capa de tarefas funcionam em seu projeto, pode fornecer o parâmetro coverConfig
:
Parâmetro | Tipo | Necessário | Descrição |
---|---|---|---|
enabled |
Boolean | ✅ Sim | Se as imagens de capa estão habilitadas para tarefas |
fit |
ImageFit | ✅ Sim | Como as imagens devem se ajustar na área de capa |
imageSelectionType |
ImageSelectionType | ✅ Sim | Qual imagem selecionar entre as opções disponíveis |
source |
ImageSource | ✅ Sim | De onde puxar as imagens |
sourceId |
String | Não | Identificador de fonte específico (por exemplo, ID de campo personalizado) |
Valores de ImageFit: COVER
, CONTAIN
, FILL
, SCALE_DOWN
Valores de ImageSelectionType: FIRST
(primeira imagem), LAST
(última imagem)
Valores de ImageSource: DESCRIPTION
(da descrição da tarefa), COMMENTS
(dos comentários), CUSTOM_FIELD
(de um campo personalizado)
Campos de Resposta
A mutação createProject retorna um objeto Project com os seguintes campos disponíveis:
Campo | Tipo | Descrição |
---|---|---|
id |
ID! | Identificador único para o projeto |
name |
String! | Nome do projeto |
slug |
String! | Identificador do projeto amigável para URL |
description |
String | Descrição do projeto |
color |
String | Cor do projeto em formato hex |
icon |
String | Identificador do ícone |
category |
ProjectCategory | Valor enum da categoria do projeto |
companyId |
String! | ID da empresa |
createdAt |
DateTime! | Timestamp de criação |
updatedAt |
DateTime! | Timestamp da última atualização |
archived |
Boolean! | Se o projeto está arquivado |
isTemplate |
Boolean! | Se este é um projeto modelo |
Nota: Você pode solicitar qualquer combinação desses campos em sua resposta.
Notas Importantes
- Você deve ter acesso de nível
OWNER
,ADMIN
ouMEMBER
à empresa para criar projetos - Ao criar a partir de um modelo, o modelo não pode ter mais de 250.000 tarefas
- O usuário que cria é automaticamente designado como o
OWNER
do projeto - Os nomes dos projetos são automaticamente removidos de espaços em branco
- O parâmetro
coverConfig
atualmente só é funcional ao criar a partir de um modelo
Respostas de Erro
Empresa Não Encontrada
{
"errors": [{
"message": "Company not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Modelo Não Encontrado
{
"errors": [{
"message": "Template not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Modelo Muito Grande
{
"errors": [{
"message": "Template cannot have more than 250000 todos",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
Permissão Negada
{
"errors": [{
"message": "You do not have permission to create projects in this company",
"extensions": {
"code": "FORBIDDEN"
}
}]
}