Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

Question for nerds regarding favorites (you know who you are)

Avatar

Level 10

Since tabs have gone away in NWE, I've been searching for a way to push favorites to users. I don't want to clog up a users nav bar with reports and dashboards, etc. but I want some teams, roles, etc. to have quick access to some things. I think favorites is the way to do that.

It's been a little spare time project of mine for a few weeks.

It seems to be in the user metadata:

"favorites": {

"label": "Favorites",

"typeObjCode": "FVRITE",

"targetTypeObjCode": null,

"fieldType": "Favorite",

"enumTargetObjCode": null,

"enumType": null,

"url": "https://company.my.workfront.com/attask/api/v13.0/fvrite/metadata"

},

but there's really no way I've found to put to it from an API call. If I had the right code I could possibly put a favorite to a user. Or, better than that, use Fusion 2 to push favorites according to teams, groups roles, etc.

I mapped out the structure of the favorite here:

https://company.my.workfront.com/attask/api/v12.0/favorite/5e9b570100fc6bc9e55422d14f396df2/search?f...

{

"ID": "5e9b570100fc6bc9e55422d14f396df2",

"name": "EG Dashboard",

"objCode": "FVRITE",

"customerID": "5731f662003e348aaef9b720a2b190cd",

"objID": "57b3723001e3d8e99b465892d5258210",

"objObjCode": "PTLTAB",

"userID": "5e2ef17a000e86977aeccba89b685154"

}

"ID": ID of the favorite

"name": Name of the favorite (Label)

"objCode": Object type

"customerID": your company Customer ID

"objID": ID of the target object

"objObjCode": Target object type

"userID": ID of the user who is getting the favorite

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

1 Accepted Solution

Avatar

Correct answer by
Level 9
Level 9

Hi Randy,

If you're dead set on force-adding favorites to user profiles, I have your API call. It can definitely come in handy for certain situations.

Your question speaks to a bigger problem of "how do I push and maintain a persistent view of objects to users that is dynamic and relevant to each viewer?" Force-adding favorites is one method, but many Workfront customers aren't savvy enough with the API to be able to do that. We've settled on a concept that we call "publishing objects." I won't get into the details of that here, but if folks are interested let me know and I may make time to post the details in a separate thread.

With that out of the way, here you go:

METHOD=POST

https://company.my.workfront.com/attask/api/v13.0/FVRITE?userID=5c4xxx0c0&objObjCode=PROJ&objID=5c4xxx452

Just swap out the userID, account for the correct object type in objObjCode, and plug in the object's ID.

Enjoy!

View solution in original post

9 Replies

Avatar

Level 10

Instead of Favorites, what about a dashboard that uses Add External Page links with a height of "1"?

That's assuming you're trying to push the same batch of "favorites" to multiple people.

Avatar

Level 10

I already do that but it still takes up a space on the nav bar. Since it's just a database, I should be able to POST to it and get to the favorites.

Avatar

Correct answer by
Level 9
Level 9

Hi Randy,

If you're dead set on force-adding favorites to user profiles, I have your API call. It can definitely come in handy for certain situations.

Your question speaks to a bigger problem of "how do I push and maintain a persistent view of objects to users that is dynamic and relevant to each viewer?" Force-adding favorites is one method, but many Workfront customers aren't savvy enough with the API to be able to do that. We've settled on a concept that we call "publishing objects." I won't get into the details of that here, but if folks are interested let me know and I may make time to post the details in a separate thread.

With that out of the way, here you go:

METHOD=POST

https://company.my.workfront.com/attask/api/v13.0/FVRITE?userID=5c4xxx0c0&objObjCode=PROJ&objID=5c4xxx452

Just swap out the userID, account for the correct object type in objObjCode, and plug in the object's ID.

Enjoy!

Avatar

Level 10

@William English‚, I'd like to hear more about these "publishing objects" if you can find the time.

Avatar

Level 10

That's awesome. Thanks for taking the time to post this.

To clarify further:

userID=5c4xxx0c0 (This would be the GUID of the target user)

&

objObjCode=PROJ (This would be the type of object the favorite links to)

&

objID=5c4xxx452 (This would be the GUID of the linked object)

So I would not need:

"ID": (because it's not a Favorite yet)

"name": (I assume it just pulls the object name)

"objCode": (again, because it's not a Favorite yet)

"customerID": (This pulls from my instance)

Is that all correct?

I would be really interested in hearing about Publishing Objects.

And thank you again, you saved me hours of work and discovery.

Avatar

Level 9
Level 9

That's all correct, Randy. And, I should have taken the opportunity to mention that it is possible to report on user's favorites.

This is a component of a larger approach, that allows users in supportive roles - perhaps group admins who lack login as rights; or a team SME, to check and see if a user they support has a certain object favorited or not. For sys admins with login rights, it saves us clicks because we can just click on the user's name anywhere in Workfront.

The larger approach is sadly not supported in New Workfront Experience, and it's one reason we haven't made the jump. That is, custom dashboards are no longer something you can add on the USER object. Having a good user-detail dashboard that is accessible directly on the user profile is really efficient. It allows admins to make some very fast inline changes without opening up the Edit Profile pane, but moreso just gives us a custom look of all the user attributes that we are interested in seeing at a glance.

In the attached graphic, my favorites are circled in green. The text mode for this column is:

displayname=Favorites

listdelimiter=<br>

listmethod=nested(favorites).lists

textmode=true

type=iterate

valueexpression=CONCAT({objObjCode}," - ",{name})

valueformat=HTML

If I had more patience, I would build a long if statement to replace the objCode with its proper name (Show "Report" instead of "PTLSEC") but the people who use this know what they are so I haven't bothered.

0694X00000DVdGLQA1.png

Avatar

Level 10

@William English‚

Here ya go!

BTW, How did you get the little icons in your report?

For those of you who can use this, it replaces object type with common name in a collection of favorites in a user report. Enjoy!

displayname=Favorites

listdelimiter=<br>

listmethod=nested(favorites).lists

textmode=true

type=iterate

valueexpression=IF({objObjCode}="ANCMNT",CONCAT("Announcement"," - ",{name}), IF({objObjCode}="CALEND",CONCAT("Calendar"," - ",{name}), IF({objObjCode}="CMPY",CONCAT("Company"," - ",{name}), IF({objObjCode}="DOCU",CONCAT("Document"," - ",{name}), IF({objObjCode}="OPTASK",CONCAT("Issue"," - ",{name}), IF({objObjCode}="PORT",CONCAT("Portfolio"," - ",{name}), IF({objObjCode}="PRGM",CONCAT("Program"," - ",{name}), IF({objObjCode}="PROJ",CONCAT("Project"," - ",{name}), IF({objObjCode}="PTLSEC",CONCAT("Report"," - ",{name}), IF({objObjCode}="PTLTAB",CONCAT("Dashboard"," - ",{name}), IF({objObjCode}="TASK",CONCAT("Task"," - ",{name}), IF({objObjCode}="TEAMOB",CONCAT("Team"," - ",{name}), IF({objObjCode}="TMPL",CONCAT("Template"," - ",{name}), IF({objObjCode}="TSHET",CONCAT("Timesheet"," - ",{name}), IF({objObjCode}="USER",CONCAT("User"," - ",{name}), CONCAT({objObjCode}," - ",{name}))))))))))))))))

valueformat=HTML

Avatar

Level 9
Level 9
Thanks Randy! Looking at it now, I feel like I was just being extremely lazy! Loaded it and it works beautifully.