Workflows Form Error: Assignee does not have update content access to queue

NateBI
NateBI Contributor

Hi Team,

I'm sending a form to a user and this error was returned. I can't find a function that grants access to the user (dynamically) to access the queue .

The flow is as follows:

This is the second half of a loop over dataframe template flow.

Tagged:

Best Answers

  • DanHendriksen
    DanHendriksen Domo Employee
    Answer ✓

    Nate - I’ve had customers take the approach of dynamically creating the group, adding the users, sharing the queue, then deleting the group and so on.

    I have a function I can share with you, that will allow you to programmatically share a queue. Here’s another thought. Could you make a dynamic group with a rule that automatically puts the user in the group, and share the queue with that group? Then enable assignee security so they can only see what’s shared with them?

    I’d imagine you could create a rule that would only apply to new users, and have them automatically be in the new users group. You could also have a workflow that runs whenever a new user is added that puts them in the new users group, and then wants some number of days and removes them from that group (60 days later or something) if there wasn’t an easy way to make the rules you wanted for the dynamic group.

  • NateBI
    NateBI Contributor
    edited February 28 Answer ✓

    @DanHendriksen I can't figure out that one.

    I have tried with user_id and with a list of user_ids and neither provide the var option (this is so jarring).

    I've built the same concept with pydomo locally and it worked nice and easily. I've looked into adding this code to the code engine as a package but then I'm stuck -once again- fighting with the UI wtr authentication 😭.

Answers

  • DanHendriksen
    DanHendriksen Domo Employee

    @NateBI , is the task assigned to a group? Or do an individual?

    You do need to make sure that you go into Queues, and share the queue with the appropriate people. That isn't something that we've done dynamically in the workflow, but suppose I could help you write a function to do that.

    The current guidance would be to go to Task Center and share the queue with all the people who may need to have a task assigned to them in it. If they don't have access to the Queue, it will fail as you see here. Leveraging GROUPS in these cases (sharing the queue with a group) can be a good work around to having to give a bunch of individuals access.

  • NateBI
    NateBI Contributor
    edited February 14

    The task is assigned to individuals as a part of an onboarding workflow. The group method is less appealing, I presssume I would need to create a group, assign new users to the group, asign tasks to the group and track the responses at the individual level (feels like a lot of faff). The function may be the way to go here @DanHendriksen. That being said, would the function require doing all of these actions just backend(pydomo) 😅

  • DanHendriksen
    DanHendriksen Domo Employee
    Answer ✓

    Nate - I’ve had customers take the approach of dynamically creating the group, adding the users, sharing the queue, then deleting the group and so on.

    I have a function I can share with you, that will allow you to programmatically share a queue. Here’s another thought. Could you make a dynamic group with a rule that automatically puts the user in the group, and share the queue with that group? Then enable assignee security so they can only see what’s shared with them?

    I’d imagine you could create a rule that would only apply to new users, and have them automatically be in the new users group. You could also have a workflow that runs whenever a new user is added that puts them in the new users group, and then wants some number of days and removes them from that group (60 days later or something) if there wasn’t an easy way to make the rules you wanted for the dynamic group.

  • DanHendriksen
    DanHendriksen Domo Employee

    No matter what, responses will be tracked at the individual level, by the way. The metadata will always show which user actioned/completed the task.

  • NateBI
    NateBI Contributor

    @DanHendriksen Ok I'll have a crack at it and keep you posted thanks!

  • NateBI
    NateBI Contributor

    Hi @DanHendriksen - I had to deprioritize it for a week - hopefully get a moment this week to build

  • NateBI
    NateBI Contributor

    @DanHendriksen
    1) I've created a "dynamic group" via Admin » Group - I haven't incldued rules since the rules don't apply.
    2) I've created a job via Group Management » Admin » The Governance Toolkit - I used the dataset config


    The dynamic group "rules" don't have an option for new users.



    And the job feature runs but doesn't add users to the group. `

    Error: [403 Forbidden] during [PUT] to [http://apicontent.prod3/api/content/v2/groups/access] [GroupResourceClient#bulkUpdateGroupAccess(List)]: [{"status":403,"statusReason":"Forbidden","message":"Forbidden","toe":"RJFTRUQ30L-BIB0G-PMA6D"}])`

    I pressume then, you must mean create a Workflow to dynamically add people to a pre-created Group. Building the workflow for this I seem to have a few options, adding people to group, add person to group, add user to group etc. Add user to group requires account and domain params — can't imagine this what you meant:

    The 'add people' to group looks more appropriate with group and user params but I'm having that issue with adding a person from the list variable rather than dropdown:

    Could you advise as to which function to choose if no option of course happy for you to send the custom function dicussed.

  • DanHendriksen
    DanHendriksen Domo Employee

    The add user to group is an Okta function to add someone to a group in Okta. The others are for Domo Groups.

  • NateBI
    NateBI Contributor
    edited February 28 Answer ✓

    @DanHendriksen I can't figure out that one.

    I have tried with user_id and with a list of user_ids and neither provide the var option (this is so jarring).

    I've built the same concept with pydomo locally and it worked nice and easily. I've looked into adding this code to the code engine as a package but then I'm stuck -once again- fighting with the UI wtr authentication 😭.

  • DanHendriksen
    DanHendriksen Domo Employee

    I'm not exactly clear on what you're trying to do. You shouldn't need to do any authentication.

    Are you trying to add a user to a group? And you have that users ID stored in a person variable in your workflow?

  • NateBI
    NateBI Contributor
    edited March 4

    @DanHendriksen The main objective is the same as it was when we spoke. It is to get users to view a coursebuilder card and complete a form for data compliance.

    However, I made this question post because I found that unless the users has access to the queue (that the form exists within) they cannot complete the form. Now, since the users are new each time - dynamically pulled from a users table - I cannot add them manually to a queue (this also defeats the point).

    So above, you recommended "dynamically creating the group, adding the users, sharing the queue, then deleting the group and so on" OR using a "function to programmatically share a queue".

    I'm simply trying to execute on either of these suggestions.

    For creating a group, I kept it simpler by manually created a group and sharing the queue with the group. In the workflow I have then been trying to add those users - one at a time* - to this Groups using the function "add people to Group" within Domo Groups package. No other functions relating to adding people to groups appears so I pressume this is what you meant by creating a group and adding user but this is not working - see previous post's error "No defined variables have been added to a Variable list":


    * To explain this further:

    I have one part of a workflow that loops through the dataset - you've seen this.

    The second part of the workflow would be what we're discussing here, it would take a "Person" (user_id) paramter from the previous workflow and pass this to the "add people to group" function (which is not clear how to setup since it won't accept a Person from a variable only from a manual selection)

    The third part of workflow, then takes the user and share the Coursebuild card, and the form which the user should now be able to update because they belong to the group that the queue has been shared with.


    This is it - it's the same workflow I've been working on - just blocked at the queue sharing stage. I simply don't understand how to get the add person to group to work even when I've tried using a list of people as requested by the error.

    Alternativley, I have successfully used Pydomo to add users to a group domo.groups.add_user(group_id,id), with the thought being I could use this code in the code engine to create the function I need (since add people to group isn't working) however, how to add the code to code engine (which relies on an authentication via client id and client secret) is not clear to me.

    UPDATE:

    It's the opacity around variables, data types, and functions. I realise I can amend the datatype of a variable by selecting the edit button on the variable. I can change the "Person" data type to a list which solves for this posts second flow problem "adding people to group" .

    Now the challenge is having two use-cases, the second flow requires the "list" type as explained but the third flow requires the Person type to send emails, and share cards. The thought would be to duplicate the user field within the first flow's SQL statement then convert one of these user variables into a list the other into a person this doesn't seem to be an option - it's not clear how to convert a result object's "child" variable into another data type. It's a shame we can't just wrap variables in data structures at the point of input.

    UPDATE TWO

    So, hovering over the object and an edit pen appears, when selected a dialog appears for editing the data types. At this point I'm just documenting the user experience 😂we're getting there but GOODNESS

    SOLVED — I should do a video demonstration of this for newbies and save someone else hours.

  • DanHendriksen
    DanHendriksen Domo Employee

    Nate - thanks for sharing your experience. I will make sure that engineering sees this.