Expand my Community achievements bar.

The next phase for Workfront Community ideas is coming soon. Learn all about it in our blog!

How tp pass wildcards as url parameter to external pages?

Avatar

Level 2

Hi,

I want to integrate an external page inside of Workfront which loads information based on custom field in the project or task.

Which parameters can I pass with the url for an external website?

I want to pass: session ID, object type, object id, ...

As I understood, I can pass the session ID:

https://one.workfront.com/s/document-item?bundleId=the-new-workfront-experience&topicId=Content%2FRe...

In this old post on StackOverflow, I found a reference that you can also pass the object ID.

https://stackoverflow.com/questions/28843813/attask-workfront-external-page-send-parameter-to-extern...

I haven't found any documentation about the wildcards which you can pass as url parameters to external pages?

Thanks

Patrick

Topics

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

5 Replies

Avatar

Level 1

Hi @Patrick,

I also spent few days in documentation and forums online on what are other variables that can be passed (apart from those 3 found on stackowerflow) with iframe src call on Workfront Dashboard External Page URL filed.

Even contacted Customer Support. They escalated the issue 2 times so far. So still waiting for an answer from them.

But in the meantime i tried to figure it out on my own.

My main goal was Workfront Dashboard / tab / iframe on Workfront Task object. (Maybe some of them work on Project or Issue object as well. Not tested)

Here is what i came up with so far:

taskID={!ID}

taskURL={!URL}

taskDuration={!Duration}

taskName={!Name}

taskDescription={!Description} - (breaks if it includes HTML)

taskStatus={!Status}

taskPriority={!Priority}

taskProgressStatus={!Progress Status}

taskPercentComplete={!Percent Complete}

taskPlannedHours={!Planned Hours}

taskProjectedCompletionDate={!Projected Completion Date}

taskRefNumber={!Reference Number}

taskNumber={!Task Number}

taskHasDocuments={!Has Documents}

projectName={!Project} OR {!Project.Name}

projectID={!Project ID} OR {!Project.ID}

assignedToID={!Assigned To.ID}

assignedToName={!Assigned To.Name}

assignedToFirstName={!Assigned To.FirstName}

assignedToLastName={!Assigned To.LastName}

assignedToEmail={!Assigned To.Email Address}

assignedToUsername={!Assigned To.Username}

sessionID={!$$SESSION}

userID={!$$USER.ID}

userName={!$$USER.Name}

userFirstName={!$$USER.First Name}

userLastName={!$$USER.Last Name}

userEmail={!$$USER.Email Address}

userUsername={!$$USER.Username}

userRoleID={!$$USER.Role ID}

There are couple more like:{!Planned Cost}, {!Revenue Type}, etc. But they follow the same principle.

I would specifically like to figure out {!DE:Custom Field}, {!Last Document Version.ID}, {!Document.ID} and {!Obj Code} or {!Object Type} and few other variations none of them working. Returning error, nothing or null.

On the screenshot in documentation i saw {!$$SESSION="73"}, and i am still waiting for customer support for some more context.

If you come up with more wildcards please post them here for reference so everyone benefits.

Avatar

Level 10

Interesting discovery Gasper,

Thanks for sharing; to my knowledge, this is an undocumented feature, but from your tests, appears to map neatly to the "Full English" core fields within Workfront (e.g. {!Assigned To.Email Address}).

Following that logic, I would expect (as you did) that {!Object Code} might return the underlying objCode (e.g. TASK), but if not, that particular property might not be exposed.

Conversely, custom data is (by definition) not part of core data, so I am not surprised that you cannot request it using this approach, since it wouldn't normally "be there" when navigating to a particular object (such as a Task). There is a "parameterValues" collection, so (along the lines of {!Object Code}, it might be possible to use something like {!Parameter Values.DE:Custom Field}...but I'd be surprised if it was supported.

Finally, similar to some other kinds of data within of Workfront, Documents are what's called "LAZY LOAD", and are therefore only retrieved when specifically requested via the API, which might explain why the data isn't available using this technique. Documents can also be one:many, which would make it tough to code, too; and I am not aware of a "Last Document" (uploaded) concept, if that's what you're after.

That said, if you trip over any other interesting ones that do work, I'm interested to learn about them -- good luck!

Regards,

Doug

Avatar

Level 4

This is great stuff.  Does anyone know if you can pass URL parameters to the external page? 

For Example I want to call a dashboard which contains and external page and I want to pass a parameter to the dashboard which in turn would be passed on to the external page.  

For example   https://company.my.workfront.com/dashboard/630a9bfd000e0707ef8a6ea42d09b05f/detail?urlParameter=valu... would pass to the embedded external page the parameer of urlParameter=value.  

I would guess it would be something like urlParameter={!urlParameter} or something similar.  Does anyone know if this is possible?  Doug? 

Avatar

Level 1

Hi,

It is possible to get Root Object Code if it exists.

securityRootObjCode={!securityRootObjCode}

securityRootID={!securityRootID}

In my case this was enough to drop 1 to 2 API calls where i checked if current object is a TASK or PROJ. Yes i could have two dashboards each pointing to separate location but i didn't want to 😀

If current object is TASK then {!securityRootObjCode} will render PROJ, {!Project} will NOT be null and {!Project ID} will NOT be null

If current object is PROJ then {!securityRootObjCode} will render null, {!Project} will be null and {!Project ID} will NOT be null

If current object is Dashboard all values will be null.

I also discovered objID={!ObjID} that gives some ID in Dashboard preview, but null on other objects.

Good luck.

Avatar

Level 1

Hello has anyone found a way to read a custom field as the URL to display in a Dashboard?