Adding 'Help Desk' to existing youtrack.cloud
Hi,
I set up a youtrack cloud with the view to replacing Jira for issue management and that went well.
Then I discovered that YouTrack can have HelpDesk projects too and thought it would be good to bring customer tickets into the same place.
But I could see no way of adding HelpDesk project types to an existing .youtrack.cloud instance.
The only solution I could work out was to start a new instance with Helpdesk and then reset up my issues boards etc.
Before I spend time re-doing the issues set up is there any way just to turn on 'Helpdesk' to the non helpdesk instance?
Please sign in to leave a comment.
Hi,
Thank you for reaching out and for your interest in helpdesk. Since you use YouTrack Cloud, your YouTrack will automatically be upgraded to version 2023.1 in accordance with our Maintenance Calendar. Normally, it takes around 3-4 weeks to upgrade all servers. After that, you'll be able to add helpdesk projects. Unfortunately, there is no way to do it before upgrading to 2023.1.
If you want to give it a try right away, registering a new free YouTrack Cloud version is the only option. We'll be looking forward to your feedback!
Many thanks, I didn't realize Helpdesk was such a new addition. By the way - brilliant stuff.
By the way - I discovered an issue while trying to import tickets via spreadsheet into a HelpDesk project
It *Fails* - unable to set visibility - but unlike normal projects HelpDesk Projects do not have a visibility setting - so that probably is an issue.
Would be even better if that could be fixed.
28/04/23 17:22:40,786 ERROR [183-9] Script failed with error: Can't update issue visibility in Helpdesk project
jetbrains.mps.webr.runtime.templateComponent.LogicException: Can't update issue visibility in Helpdesk project
at jetbrains.youtrack.helpdesk.visibility.HelpdeskVisibilityPolicy.assertVisibility(HelpdeskVisibilityPolicy.kt:52)
at jetbrains.youtrack.persistent.issue.IssueVisibilityRestrictionsChecker.doInvoke(IssueChangeHandlers.kt:68)
at jetbrains.youtrack.api.workflow.configuration.EntityChangeHandler.invoke(EntityChangeHandler.kt:19)
at jetbrains.youtrack.workflow.ext.RulesRunner.callHandlers(RulesRunner.kt:142)
at jetbrains.youtrack.workflow.ext.RulesRunner.callBeforeOrAfterHandlers(RulesRunner.kt:103)
at jetbrains.youtrack.workflow.ext.RulesRunner.run(RulesRunner.kt:58)
at jetbrains.youtrack.workflow.ext.WorkflowIssueListenerImpl.beforeFlushBeforeConstraints(WorkflowIssueListenerImpl.kt:61)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl$notifyBeforeFlushListeners$2.invoke(TransientSessionImpl.kt:758)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl$notifyBeforeFlushListeners$2.invoke(TransientSessionImpl.kt:758)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl$forAllListeners$1.invoke(TransientSessionImpl.kt:1323)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl$forAllListeners$1.invoke(TransientSessionImpl.kt:1321)
at com.jetbrains.teamsys.dnq.database.TransientEntityStoreImpl.forAllListeners$dnq_transient_store(TransientEntityStoreImpl.kt:328)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl.forAllListeners(TransientSessionImpl.kt:1321)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl.notifyBeforeFlushListeners(TransientSessionImpl.kt:758)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl.beforeFlush(TransientSessionImpl.kt:715)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl.flushChanges(TransientSessionImpl.kt:517)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl.flush(TransientSessionImpl.kt:193)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl.commit(TransientSessionImpl.kt:210)
at com.jetbrains.teamsys.dnq.database.TransientEntityStoreExt.doCommit(TransientEntityStoreExt.kt:98)
at com.jetbrains.teamsys.dnq.database.TransientEntityStoreExt.transactional(TransientEntityStoreExt.kt:59)
at com.jetbrains.teamsys.dnq.database.TransientEntityStoreImpl.transactional(TransientEntityStoreImpl.kt:102)
at jetbrains.exodus.database.TransientEntityStore$DefaultImpls.transactional$default(TransientEntityStore.kt:83)
at jetbrains.youtrack.core.TransactionsKt.transactional(Transactions.kt:19)
at jetbrains.youtrack.core.TransactionsKt.transactional$default(Transactions.kt:18)
at jetbrains.youtrack.imports.runtime.ImportProcessingDocumentFieldsKt.processDocumentFields(ImportProcessingDocumentFields.kt:37)
at jetbrains.youtrack.imports.runtime.ImportProcessingDocumentsKt$processItems$docsContainerData$4.invoke(ImportProcessingDocuments.kt:100)
at jetbrains.youtrack.imports.runtime.ImportProcessingDocumentsKt$processItems$docsContainerData$4.invoke(ImportProcessingDocuments.kt:99)
at jetbrains.youtrack.api.application.ThreadLocalToggleKt.runWith(ThreadLocalToggle.kt:14)
at jetbrains.youtrack.imports.event.EventSupportKt.processWithoutRealEvents(EventSupport.kt:7)
at jetbrains.youtrack.imports.runtime.ImportProcessingDocumentsKt.processItems(ImportProcessingDocuments.kt:99)
at jetbrains.youtrack.imports.runtime.ImportProcessingDocumentsKt.doProcessDocuments(ImportProcessingDocuments.kt:332)
at jetbrains.youtrack.imports.runtime.ImportProcessingDocumentsKt.processDocumentsInProject(ImportProcessingDocuments.kt:194)
at jetbrains.youtrack.imports.runtime.ImportProcedureKt.processProjects(ImportProcedure.kt:196)
at jetbrains.youtrack.imports.model.ImportExtensionsKt.doImport(ImportExtensions.kt:187)
at jetbrains.youtrack.imports.model.ImportExtensionsKt.access$doImport(ImportExtensions.kt:1)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$doStart$3$1$1.invoke(ImportExtensions.kt:116)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$doStart$3$1$1.invoke(ImportExtensions.kt:104)
at jetbrains.youtrack.scripts.internals.ExceptionsProcessingKt.withScriptingAndDBExceptionsProcessing(ExceptionsProcessing.kt:80)
at jetbrains.youtrack.scripts.internals.ExceptionsProcessingKt.withScriptingAndDBExceptionsProcessing$default(ExceptionsProcessing.kt:18)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$doStart$3$1.invoke(ImportExtensions.kt:104)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$doStart$3$1.invoke(ImportExtensions.kt:103)
at jetbrains.youtrack.scripts.internals.RunInContextKt.runInContext(RunInContext.kt:17)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$doStart$3.invoke(ImportExtensions.kt:103)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$doStart$3.invoke(ImportExtensions.kt:98)
at jetbrains.youtrack.api.application.ThreadLocalToggleKt.runWith(ThreadLocalToggle.kt:27)
at jetbrains.youtrack.imports.model.ImportExtensionsKt.doStart(ImportExtensions.kt:98)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$start$1.invoke(ImportExtensions.kt:79)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$start$1.invoke(ImportExtensions.kt:78)
at jetbrains.youtrack.scheduling.LocalQuartzExecutor$executeNonTransactional$1.invoke(LocalQuartzExecutor.kt:29)
at jetbrains.youtrack.scheduling.LocalQuartzExecutor$executeNonTransactional$1.invoke(LocalQuartzExecutor.kt:28)
at jetbrains.youtrack.core.jobProcessor.NamedThreadJobProcessorKt.withLocalName(NamedThreadJobProcessor.kt:37)
at jetbrains.youtrack.scheduling.QuartzJobProcessorKt.asNonTxLocalRunnable$lambda$0(QuartzJobProcessor.kt:41)
at jetbrains.exodus.core.execution.RunnableJob.execute(RunnableJob.java:41)
at jetbrains.exodus.core.execution.Job.run(Job.java:137)
at jetbrains.exodus.core.execution.ThreadJobProcessor.executeJob(ThreadJobProcessor.java:132)
at jetbrains.exodus.core.execution.JobProcessorQueueAdapter.doExecuteJob(JobProcessorQueueAdapter.java:251)
at jetbrains.exodus.core.execution.JobProcessorQueueAdapter.doJobs(JobProcessorQueueAdapter.java:161)
at jetbrains.exodus.core.execution.ThreadJobProcessor.run(ThreadJobProcessor.java:110)
at java.base/java.lang.Thread.run(Thread.java:829)
28/04/23 17:22:40,792 ERROR [183-9] Import failed with error: Can't update issue visibility in Helpdesk project
jetbrains.youtrack.scripts.sandbox.EvaluationException: Can't update issue visibility in Helpdesk project
at jetbrains.youtrack.scripts.internals.ExceptionsProcessingKt.withScriptingAndDBExceptionsProcessing$createException(ExceptionsProcessing.kt:29)
at jetbrains.youtrack.scripts.internals.ExceptionsProcessingKt.withScriptingAndDBExceptionsProcessing$wrapSpecifically(ExceptionsProcessing.kt:64)
at jetbrains.youtrack.scripts.internals.ExceptionsProcessingKt.withScriptingAndDBExceptionsProcessing(ExceptionsProcessing.kt:89)
at jetbrains.youtrack.scripts.internals.ExceptionsProcessingKt.withScriptingAndDBExceptionsProcessing$default(ExceptionsProcessing.kt:18)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$doStart$3$1.invoke(ImportExtensions.kt:104)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$doStart$3$1.invoke(ImportExtensions.kt:103)
at jetbrains.youtrack.scripts.internals.RunInContextKt.runInContext(RunInContext.kt:17)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$doStart$3.invoke(ImportExtensions.kt:103)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$doStart$3.invoke(ImportExtensions.kt:98)
at jetbrains.youtrack.api.application.ThreadLocalToggleKt.runWith(ThreadLocalToggle.kt:27)
at jetbrains.youtrack.imports.model.ImportExtensionsKt.doStart(ImportExtensions.kt:98)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$start$1.invoke(ImportExtensions.kt:79)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$start$1.invoke(ImportExtensions.kt:78)
at jetbrains.youtrack.scheduling.LocalQuartzExecutor$executeNonTransactional$1.invoke(LocalQuartzExecutor.kt:29)
at jetbrains.youtrack.scheduling.LocalQuartzExecutor$executeNonTransactional$1.invoke(LocalQuartzExecutor.kt:28)
at jetbrains.youtrack.core.jobProcessor.NamedThreadJobProcessorKt.withLocalName(NamedThreadJobProcessor.kt:37)
at jetbrains.youtrack.scheduling.QuartzJobProcessorKt.asNonTxLocalRunnable$lambda$0(QuartzJobProcessor.kt:41)
at jetbrains.exodus.core.execution.RunnableJob.execute(RunnableJob.java:41)
at jetbrains.exodus.core.execution.Job.run(Job.java:137)
at jetbrains.exodus.core.execution.ThreadJobProcessor.executeJob(ThreadJobProcessor.java:132)
at jetbrains.exodus.core.execution.JobProcessorQueueAdapter.doExecuteJob(JobProcessorQueueAdapter.java:251)
at jetbrains.exodus.core.execution.JobProcessorQueueAdapter.doJobs(JobProcessorQueueAdapter.java:161)
at jetbrains.exodus.core.execution.ThreadJobProcessor.run(ThreadJobProcessor.java:110)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: jetbrains.mps.webr.runtime.templateComponent.LogicException: Can't update issue visibility in Helpdesk project
at jetbrains.youtrack.helpdesk.visibility.HelpdeskVisibilityPolicy.assertVisibility(HelpdeskVisibilityPolicy.kt:52)
at jetbrains.youtrack.persistent.issue.IssueVisibilityRestrictionsChecker.doInvoke(IssueChangeHandlers.kt:68)
at jetbrains.youtrack.api.workflow.configuration.EntityChangeHandler.invoke(EntityChangeHandler.kt:19)
at jetbrains.youtrack.workflow.ext.RulesRunner.callHandlers(RulesRunner.kt:142)
at jetbrains.youtrack.workflow.ext.RulesRunner.callBeforeOrAfterHandlers(RulesRunner.kt:103)
at jetbrains.youtrack.workflow.ext.RulesRunner.run(RulesRunner.kt:58)
at jetbrains.youtrack.workflow.ext.WorkflowIssueListenerImpl.beforeFlushBeforeConstraints(WorkflowIssueListenerImpl.kt:61)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl$notifyBeforeFlushListeners$2.invoke(TransientSessionImpl.kt:758)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl$notifyBeforeFlushListeners$2.invoke(TransientSessionImpl.kt:758)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl$forAllListeners$1.invoke(TransientSessionImpl.kt:1323)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl$forAllListeners$1.invoke(TransientSessionImpl.kt:1321)
at com.jetbrains.teamsys.dnq.database.TransientEntityStoreImpl.forAllListeners$dnq_transient_store(TransientEntityStoreImpl.kt:328)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl.forAllListeners(TransientSessionImpl.kt:1321)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl.notifyBeforeFlushListeners(TransientSessionImpl.kt:758)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl.beforeFlush(TransientSessionImpl.kt:715)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl.flushChanges(TransientSessionImpl.kt:517)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl.flush(TransientSessionImpl.kt:193)
at com.jetbrains.teamsys.dnq.database.TransientSessionImpl.commit(TransientSessionImpl.kt:210)
at com.jetbrains.teamsys.dnq.database.TransientEntityStoreExt.doCommit(TransientEntityStoreExt.kt:98)
at com.jetbrains.teamsys.dnq.database.TransientEntityStoreExt.transactional(TransientEntityStoreExt.kt:59)
at com.jetbrains.teamsys.dnq.database.TransientEntityStoreImpl.transactional(TransientEntityStoreImpl.kt:102)
at jetbrains.exodus.database.TransientEntityStore$DefaultImpls.transactional$default(TransientEntityStore.kt:83)
at jetbrains.youtrack.core.TransactionsKt.transactional(Transactions.kt:19)
at jetbrains.youtrack.core.TransactionsKt.transactional$default(Transactions.kt:18)
at jetbrains.youtrack.imports.runtime.ImportProcessingDocumentFieldsKt.processDocumentFields(ImportProcessingDocumentFields.kt:37)
at jetbrains.youtrack.imports.runtime.ImportProcessingDocumentsKt$processItems$docsContainerData$4.invoke(ImportProcessingDocuments.kt:100)
at jetbrains.youtrack.imports.runtime.ImportProcessingDocumentsKt$processItems$docsContainerData$4.invoke(ImportProcessingDocuments.kt:99)
at jetbrains.youtrack.api.application.ThreadLocalToggleKt.runWith(ThreadLocalToggle.kt:14)
at jetbrains.youtrack.imports.event.EventSupportKt.processWithoutRealEvents(EventSupport.kt:7)
at jetbrains.youtrack.imports.runtime.ImportProcessingDocumentsKt.processItems(ImportProcessingDocuments.kt:99)
at jetbrains.youtrack.imports.runtime.ImportProcessingDocumentsKt.doProcessDocuments(ImportProcessingDocuments.kt:332)
at jetbrains.youtrack.imports.runtime.ImportProcessingDocumentsKt.processDocumentsInProject(ImportProcessingDocuments.kt:194)
at jetbrains.youtrack.imports.runtime.ImportProcedureKt.processProjects(ImportProcedure.kt:196)
at jetbrains.youtrack.imports.model.ImportExtensionsKt.doImport(ImportExtensions.kt:187)
at jetbrains.youtrack.imports.model.ImportExtensionsKt.access$doImport(ImportExtensions.kt:1)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$doStart$3$1$1.invoke(ImportExtensions.kt:116)
at jetbrains.youtrack.imports.model.ImportExtensionsKt$doStart$3$1$1.invoke(ImportExtensions.kt:104)
at jetbrains.youtrack.scripts.internals.ExceptionsProcessingKt.withScriptingAndDBExceptionsProcessing(ExceptionsProcessing.kt:80)
... 21 more
Thank you for your kind words and for reporting about the problem. You faced a known bug - unfortunately, for now it is not possible to import issues into helpdesk projects. We will do our best to fix it in one of the next bug fix updates.
Hello,
The fix has been delivered in scope of the 2023.1.9286 version. All YouTrack Cloud instances will be upgraded gradually according to our Maintenance Calendar. As soon as your instance is upgraded, please let us know if the fix helps.