Crea una copia completa di un progetto esistente con opzioni configurabili per cosa includere.


Copia un Progetto

La mutazione di copia del progetto consente di duplicare un progetto esistente all'interno della stessa azienda o in un'altra azienda. Questo è utile per creare modelli di progetto, impostare progetti simili o spostare progetti tra aziende. L'operazione di copia viene eseguita in modo asincrono per gestire progetti di grandi dimensioni in modo efficiente.

Esempio di Base

mutation CopyProject {
  copyProject(
    input: {
      projectId: "proj_123abc"
      name: "New Project Copy"
      options: {
        todos: true
        todoLists: true
        people: true
      }
    }
  )
}

Esempio Avanzato

mutation CopyProject {
  copyProject(
    input: {
      projectId: "proj_123abc"
      name: "Q2 Marketing Campaign"
      description: "Copy of Q1 campaign with updated timeline"
      imageURL: "https://example.com/campaign-logo.png"
      companyId: "comp_789xyz"
      options: {
        assignees: true
        automations: true
        checklists: true
        customFields: true
        discussions: false
        discussionComments: false
        dueDates: true
        files: true
        forms: true
        people: true
        projectUserRoles: true
        statusUpdates: false
        statusUpdateComments: false
        tags: true
        todoActions: true
        todoComments: false
        todoLists: true
        todos: true
      }
    }
  )
}

Parametri di Input

CopyProjectInput

Parametro Tipo Richiesto Descrizione
projectId String! ✅ Sì L'ID del progetto da copiare
name String! ✅ Sì Il nome per il nuovo progetto (max 50 caratteri)
description String No La descrizione per il nuovo progetto (max 500 caratteri)
imageURL String No L'URL dell'immagine per il nuovo progetto
companyId String No L'ID dell'azienda in cui dovrebbe essere creato il nuovo progetto. Se non fornito, utilizza l'azienda del progetto sorgente
options CopyProjectOptionsInput! ✅ Sì Configurazione per quali elementi copiare

CopyProjectOptionsInput

Parametro Tipo Richiesto Descrizione
assignees Boolean No Copia gli assegnatari delle attività (richiede people: true)
automations Boolean No Copia automazioni e flussi di lavoro del progetto
checklists Boolean No Copia checklist delle attività
customFields Boolean No Copia definizioni e valori dei campi personalizzati
discussions Boolean No Copia discussioni del progetto
discussionComments Boolean No Copia commenti sulle discussioni (richiede discussions: true)
dueDates Boolean No Copia le scadenze delle attività
files Boolean No Copia allegati di file
forms Boolean No Copia moduli del progetto
people Boolean No Copia membri del progetto
projectUserRoles Boolean No Copia ruoli e permessi degli utenti (richiede people: true)
statusUpdates Boolean No Copia aggiornamenti sullo stato del progetto
statusUpdateComments Boolean No Copia commenti sugli aggiornamenti di stato (richiede statusUpdates: true)
tags Boolean No Copia tag del progetto
todoActions Boolean No Copia azioni/sottotask delle attività
todoComments Boolean No Copia commenti delle attività
todoLists Boolean No Copia liste/sezioni delle attività
todos Boolean No Copia attività
coverConfig Boolean No Copia configurazione dell'immagine di copertura delle attività

Risposta

La mutazione restituisce un valore Boolean:

  • true - Il lavoro di copia è stato messo in coda con successo
  • false - Il lavoro di copia non è stato avviato

Controllo dello Stato di Copia

Poiché la copia è asincrona, utilizza la query copyProjectStatus per controllare i progressi:

Campi di Stato di Copia

Campo Tipo Descrizione
queuePosition Int Posizione nella coda di copia
totalQueues Int Numero totale di elementi nella coda
isActive Boolean Se l'operazione di copia è attualmente attiva
oldProject Project Il progetto sorgente in fase di copia
newProjectName String Nome del nuovo progetto in fase di creazione
isTemplate Boolean Se si sta copiando come modello
oldCompany Company Azienda sorgente
newCompany Company Azienda di destinazione
query CheckCopyStatus {
  copyProjectStatus {
    queuePosition
    totalQueues
    isActive
    oldProject {
      id
      name
    }
    newProjectName
    isTemplate
    oldCompany {
      id
      name
    }
    newCompany {
      id
      name
    }
  }
}

Permessi Richiesti

Per copiare un progetto, è necessario avere i permessi appropriati sia nella posizione sorgente che in quella di destinazione:

Scenario Permessi Richiesti
Copy within same company OWNER, ADMIN, or MEMBER role in the source project
Copy to different company OWNER, ADMIN, or MEMBER role in the source project
• Must be a member of the target company

Il progetto sorgente deve essere attivo (non archiviato) per essere copiato.

Risposte di Errore

Progetto Non Trovato

{
  "errors": [{
    "message": "Record not found",
    "extensions": {
      "code": "PROJECT_NOT_FOUND"
    }
  }]
}

Si verifica quando il progetto sorgente non esiste o non si ha accesso.

Azienda Non Trovata

{
  "errors": [{
    "message": "Record not found",
    "extensions": {
      "code": "COMPANY_NOT_FOUND"
    }
  }]
}

Si verifica quando l'azienda di destinazione non esiste o non si ha accesso.

Progetto Troppo Grande

{
  "errors": [{
    "message": "Project is too large to copy",
    "extensions": {
      "code": "CREATE_PROJECT_LIMIT"
    }
  }]
}

Si verifica quando il progetto ha più di 250.000 attività.

Copia Già In Corso

{
  "errors": [{
    "message": "Oops!"
  }]
}

Si verifica quando si ha già un'operazione di copia in corso.

Note Importanti

  • Operazione Asincrona: La mutazione mette in coda un lavoro in background e restituisce immediatamente. Usa copyProjectStatus per monitorare i progressi.
  • Una Copia alla Volta: Solo un'operazione di copia per utente può essere attiva in qualsiasi momento.
  • Limitazioni di Dimensione: I progetti con più di 250.000 attività non possono essere copiati.
  • Dipendenze Logiche: Alcune opzioni funzionano meglio insieme:
    • assignees funziona con people: true (gli assegnatari non verranno copiati senza persone)
    • discussionComments funziona con discussions: true
    • statusUpdateComments funziona con statusUpdates: true
    • projectUserRoles funziona con people: true
  • Elaborazione dei Nomi: I nomi dei progetti vengono trimmati e eventuali URL vengono rimossi automaticamente.
  • Priorità nella Coda: I clienti enterprise ricevono una priorità maggiore nella coda di copia.
  • Caching dello Stato: Lo stato di copia è memorizzato nella cache per 6 ore dopo il completamento.

Assistente AI

Le risposte sono generate utilizzando l'IA e potrebbero contenere errori.

Come posso aiutarti?

Chiedimi qualsiasi cosa su Blue o su questa documentazione.

Invia per inviare • Maiusc+Invio per una nuova riga • ⌘I per aprire