Skapa en fullständig kopia av ett befintligt projekt med konfigurerbara alternativ för vad som ska ingå.
Kopiera ett projekt
Mutation för att kopiera projekt tillåter dig att duplicera ett befintligt projekt inom samma företag eller till ett annat företag. Detta är användbart för att skapa projektmallar, ställa in liknande projekt eller flytta projekt mellan företag. Kopieringsoperationen körs asynkront för att hantera stora projekt effektivt.
Grundläggande exempel
mutation CopyProject {
  copyProject(
    input: {
      projectId: "proj_123abc"
      name: "New Project Copy"
      options: {
        todos: true
        todoLists: true
        people: true
      }
    }
  )
}
Avancerat exempel
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
      }
    }
  )
}
Indata parametrar
CopyProjectInput
| Parameter | Typ | Obligatorisk | Beskrivning | 
|---|---|---|---|
projectId | 
String! | ✅ Ja | ID för projektet som ska kopieras | 
name | 
String! | ✅ Ja | Namnet för det nya projektet (max 50 tecken) | 
description | 
String | Nej | Beskrivningen för det nya projektet (max 500 tecken) | 
imageURL | 
String | Nej | Bildens URL för det nya projektet | 
companyId | 
String | Nej | ID för företaget där det nya projektet ska skapas. Om det inte anges, används källprojektets företag | 
options | 
CopyProjectOptionsInput! | ✅ Ja | Konfiguration för vilka element som ska kopieras | 
CopyProjectOptionsInput
| Parameter | Typ | Obligatorisk | Beskrivning | 
|---|---|---|---|
assignees | 
Boolean | Nej | Kopiera uppgiftstilldelningar (kräver people: true) | 
automations | 
Boolean | Nej | Kopiera projektautomatiseringar och arbetsflöden | 
checklists | 
Boolean | Nej | Kopiera uppgiftschecklistor | 
customFields | 
Boolean | Nej | Kopiera anpassade fältdefinitioner och värden | 
discussions | 
Boolean | Nej | Kopiera projektdiskussioner | 
discussionComments | 
Boolean | Nej | Kopiera kommentarer på diskussioner (kräver discussions: true) | 
dueDates | 
Boolean | Nej | Kopiera förfallodatum på uppgifter | 
files | 
Boolean | Nej | Kopiera filbilagor | 
forms | 
Boolean | Nej | Kopiera projektformulär | 
people | 
Boolean | Nej | Kopiera projektmedlemmar | 
projectUserRoles | 
Boolean | Nej | Kopiera användarroller och behörigheter (kräver people: true) | 
statusUpdates | 
Boolean | Nej | Kopiera projektstatusuppdateringar | 
statusUpdateComments | 
Boolean | Nej | Kopiera kommentarer på statusuppdateringar (kräver statusUpdates: true) | 
tags | 
Boolean | Nej | Kopiera projektetiketter | 
todoActions | 
Boolean | Nej | Kopiera uppgiftsåtgärder/deluppgifter | 
todoComments | 
Boolean | Nej | Kopiera uppgiftskommentarer | 
todoLists | 
Boolean | Nej | Kopiera uppgiftslistor/sektioner | 
todos | 
Boolean | Nej | Kopiera uppgifter | 
coverConfig | 
Boolean | Nej | Kopiera konfiguration för uppgiftens omslagsbild | 
Svar
Mutation returnerar ett Boolean värde:
true- Kopieringsjobbet har framgångsrikt köatsfalse- Kopieringsjobbet kunde inte startas
Kontrollera kopieringsstatus
Eftersom kopiering är asynkront, använd copyProjectStatus frågan för att kontrollera framsteg:
Kopieringsstatusfält
| Fält | Typ | Beskrivning | 
|---|---|---|
queuePosition | 
Int | Position i kopieringskön | 
totalQueues | 
Int | Totalt antal objekt i kön | 
isActive | 
Boolean | Om kopieringsoperationen för närvarande är aktiv | 
oldProject | 
Project | Källprojektet som kopieras | 
newProjectName | 
String | Namnet på det nya projektet som skapas | 
isTemplate | 
Boolean | Om detta kopieras som en mall | 
oldCompany | 
Company | Källföretag | 
newCompany | 
Company | Målföretag | 
query CheckCopyStatus {
  copyProjectStatus {
    queuePosition
    totalQueues
    isActive
    oldProject {
      id
      name
    }
    newProjectName
    isTemplate
    oldCompany {
      id
      name
    }
    newCompany {
      id
      name
    }
  }
}
Nödvändiga behörigheter
För att kopiera ett projekt behöver du lämpliga behörigheter i både käll- och målplatser:
| Scenario | Nödvändiga behörigheter | 
|---|---|
| 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  | 
Källprojektet måste vara aktivt (inte arkiverat) för att kunna kopieras.
Felmeddelanden
Projektet hittades inte
{
  "errors": [{
    "message": "Record not found",
    "extensions": {
      "code": "PROJECT_NOT_FOUND"
    }
  }]
}
Uppstår när källprojektet inte finns eller du saknar åtkomst.
Företaget hittades inte
{
  "errors": [{
    "message": "Record not found",
    "extensions": {
      "code": "COMPANY_NOT_FOUND"
    }
  }]
}
Uppstår när målföretaget inte finns eller du saknar åtkomst.
Projektet är för stort
{
  "errors": [{
    "message": "Project is too large to copy",
    "extensions": {
      "code": "CREATE_PROJECT_LIMIT"
    }
  }]
}
Uppstår när projektet har mer än 250 000 uppgifter.
Kopiering pågår redan
{
  "errors": [{
    "message": "Oops!"
  }]
}
Uppstår när du redan har en kopieringsoperation som pågår.
Viktiga anteckningar
- Asynkron operation: Mutation köar ett bakgrundsjobb och returnerar omedelbart. Använd 
copyProjectStatusför att spåra framsteg. - En kopia åt gången: Endast en kopieringsoperation per användare kan vara aktiv åt gången.
 - Större begränsningar: Projekt med mer än 250 000 uppgifter kan inte kopieras.
 - Logiska beroenden: Vissa alternativ fungerar bäst tillsammans:
assigneesfungerar medpeople: true(tilldelningar kommer inte att kopieras utan personer)discussionCommentsfungerar meddiscussions: truestatusUpdateCommentsfungerar medstatusUpdates: trueprojectUserRolesfungerar medpeople: true
 - Namnbehandling: Projektnamn trimmas och eventuella URL:er tas automatiskt bort.
 - Köprioritet: Företagskunder får högre prioritet i kopieringskön.
 - Statuscache: Kopieringsstatus cachas i 6 timmar efter slutförande.