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
copyProjectStatus
om 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:
assignees
werkt metpeople: true
(toewijzingen worden niet gekopieerd zonder mensen)discussionComments
werkt metdiscussions: true
statusUpdateComments
werkt metstatusUpdates: true
projectUserRoles
werkt 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.