Maak een volledige kopie van een bestaand project met configureerbare opties voor wat moet worden opgenomen.
Kopieer een Project
De kopieerprojectmutatie stelt je in staat om een bestaand project binnen hetzelfde bedrijf of naar een ander bedrijf te dupliceren. Dit is nuttig voor het maken van projecttemplates, het opzetten van vergelijkbare projecten of het verplaatsen van projecten tussen bedrijven. De kopieeroperatie wordt asynchroon uitgevoerd om grote projecten efficiënt te verwerken.
Basis Voorbeeld
mutation CopyProject {
  copyProject(
    input: {
      projectId: "proj_123abc"
      name: "New Project Copy"
      options: {
        todos: true
        todoLists: true
        people: true
      }
    }
  )
}
Geavanceerd Voorbeeld
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
      }
    }
  )
}
Invoervariabelen
CopyProjectInput
| Parameter | Type | Vereist | Beschrijving | 
|---|---|---|---|
projectId | 
String! | ✅ Ja | De ID van het project dat moet worden gekopieerd | 
name | 
String! | ✅ Ja | De naam voor het nieuwe project (max 50 tekens) | 
description | 
String | Nee | De beschrijving voor het nieuwe project (max 500 tekens) | 
imageURL | 
String | Nee | De afbeeldings-URL voor het nieuwe project | 
companyId | 
String | Nee | De ID van het bedrijf waar het nieuwe project moet worden aangemaakt. Als deze niet wordt opgegeven, wordt het bedrijf van het bronproject gebruikt | 
options | 
CopyProjectOptionsInput! | ✅ Ja | Configuratie voor welke elementen moeten worden gekopieerd | 
CopyProjectOptionsInput
| Parameter | Type | Vereist | Beschrijving | 
|---|---|---|---|
assignees | 
Boolean | Nee | Kopieer taaktoewijzingen (vereist people: true) | 
automations | 
Boolean | Nee | Kopieer projectautomatiseringen en workflows | 
checklists | 
Boolean | Nee | Kopieer taakchecklists | 
customFields | 
Boolean | Nee | Kopieer aangepaste velddefinities en waarden | 
discussions | 
Boolean | Nee | Kopieer projectdiscussies | 
discussionComments | 
Boolean | Nee | Kopieer opmerkingen over discussies (vereist discussions: true) | 
dueDates | 
Boolean | Nee | Kopieer vervaldatums op taken | 
files | 
Boolean | Nee | Kopieer bestandsbijlagen | 
forms | 
Boolean | Nee | Kopieer projectformulieren | 
people | 
Boolean | Nee | Kopieer projectleden | 
projectUserRoles | 
Boolean | Nee | Kopieer gebruikersrollen en -machtigingen (vereist people: true) | 
statusUpdates | 
Boolean | Nee | Kopieer projectstatusupdates | 
statusUpdateComments | 
Boolean | Nee | Kopieer opmerkingen over statusupdates (vereist statusUpdates: true) | 
tags | 
Boolean | Nee | Kopieer projecttags | 
todoActions | 
Boolean | Nee | Kopieer taakacties/subtaken | 
todoComments | 
Boolean | Nee | Kopieer taakopmerkingen | 
todoLists | 
Boolean | Nee | Kopieer takenlijsten/secties | 
todos | 
Boolean | Nee | Kopieer taken | 
coverConfig | 
Boolean | Nee | Kopieer configuratie van de omslagafbeelding van de todo | 
Antwoord
De mutatie retourneert een Boolean waarde:
true- De kopieertaak is succesvol in de wachtrij geplaatstfalse- De kopieertaak kon niet worden gestart
Controleer Kopiestatus
Aangezien het kopiëren asynchroon is, gebruik de copyProjectStatus query om de voortgang te controleren:
Kopiestatusvelden
| Veld | Type | Beschrijving | 
|---|---|---|
queuePosition | 
Int | Positie in de kopiewachtrij | 
totalQueues | 
Int | Totaal aantal items in de wachtrij | 
isActive | 
Boolean | Of de kopieeroperatie momenteel actief is | 
oldProject | 
Project | Het bronproject dat wordt gekopieerd | 
newProjectName | 
String | Naam van het nieuwe project dat wordt aangemaakt | 
isTemplate | 
Boolean | Of dit wordt gekopieerd als een sjabloon | 
oldCompany | 
Company | Bronbedrijf | 
newCompany | 
Company | Doelbedrijf | 
query CheckCopyStatus {
  copyProjectStatus {
    queuePosition
    totalQueues
    isActive
    oldProject {
      id
      name
    }
    newProjectName
    isTemplate
    oldCompany {
      id
      name
    }
    newCompany {
      id
      name
    }
  }
}
Vereiste Machtigingen
Om een project te kopiëren, heb je de juiste machtigingen nodig in zowel de bron- als de doelomgeving:
| Scenario | Vereiste Machtigingen | 
|---|---|
| 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  | 
Het bronproject moet actief zijn (niet gearchiveerd) om gekopieerd te kunnen worden.
Foutantwoorden
Project Niet Gevonden
{
  "errors": [{
    "message": "Record not found",
    "extensions": {
      "code": "PROJECT_NOT_FOUND"
    }
  }]
}
Treedt op wanneer het bronproject niet bestaat of je geen toegang hebt.
Bedrijf Niet Gevonden
{
  "errors": [{
    "message": "Record not found",
    "extensions": {
      "code": "COMPANY_NOT_FOUND"
    }
  }]
}
Treedt op wanneer het doelbedrijf niet bestaat of je geen toegang hebt.
Project Te Groot
{
  "errors": [{
    "message": "Project is too large to copy",
    "extensions": {
      "code": "CREATE_PROJECT_LIMIT"
    }
  }]
}
Treedt op wanneer het project meer dan 250.000 taken heeft.
Kopieer Al In Behandeling
{
  "errors": [{
    "message": "Oops!"
  }]
}
Treedt op wanneer je al een kopieeroperatie in behandeling hebt.
Belangrijke Opmerkingen
- Asynchrone Operatie: De mutatie plaatst een achtergrondtaak in de wachtrij en retourneert onmiddellijk. Gebruik 
copyProjectStatusom de voortgang te volgen. - Één Kopie Tegelijk: Slechts één kopieeroperatie per gebruiker kan op elk moment actief zijn.
 - Grootte Beperkingen: Projecten met meer dan 250.000 taken kunnen niet worden gekopieerd.
 - Logische Afhankelijkheden: Sommige opties werken het beste samen:
assigneeswerkt metpeople: true(toewijzingen worden niet gekopieerd zonder mensen)discussionCommentswerkt metdiscussions: truestatusUpdateCommentswerkt metstatusUpdates: trueprojectUserRoleswerkt metpeople: true
 - Naamverwerking: Projectnamen worden ingekort en eventuele URL's worden automatisch verwijderd.
 - Wachtrijprioriteit: Enterprise-klanten krijgen een hogere prioriteit in de kopiewachtrij.
 - Statuscaching: De kopiestatus wordt 6 uur na voltooiing gecached.