Redirect to different Sites/Tempo in Appian

Certified Lead Developer

Hi All,

We have a UI where we call a safe link to open an External UI in the same tab. This safe link can be triggered from multiple places in Appian (Sites or Tempo). A single user can have access to multiple sites or tempo from where they can trigger the safe link. Now on the External UI, we have to call a link (link will be sent to External UI using API) to navigate back to Appian from the original location, but the problem is we do not have the browser URL from where the user clicked the safe link from. So is there a way we can find out from which site/tempo was the safe link triggered?

Eg -
User is on Site A -> Triggers a process -> UI has safe link -> User clicks on Safe link -> Navigated to External Site
User is on Site B -> Triggers a process -> UI has safe link -> User clicks on Safe link -> Navigated to External Site

Now how do we know that the user was on Site A or Site B as in Sites we cannot add any parameters while calling any process

Note -> Same process is used in Site A and Site B

  Discussion posts and replies are publicly visible

  • 0
    Certified Lead Developer
    in reply to ekanshj
    I am building this external link inside a UI which is part of a action link in record dashboard, so basically the summary page of the record has multiple action links and one of the action is calling this UI which has an external link and this record is being called in multiple places

    so add a parameter to your interfaces and processes called "siteContext".  Have unique interfaces for SiteA and SiteB, where each of them calls the same sub-interface, each passing in its own site unique identifier for "siteContext".  Pass this value around and use it to determine the external URL you show.

  • 0
    Certified Lead Developer
    in reply to Chris
    +1 for it would be a great help to be able to obtain the full URL from any interface.  Have a few use cases for that myself.

    I'd pay cash-money for a new function like a!getCurrentSite() - it seems unreasonable that there's no way of doing this without ridonkulous workarounds.

  • 0
    Certified Lead Developer
    in reply to Mike Schmitt

    Correct can be done but the problem as I said is modifying huge amount of objects that have been created over a period of 4-5 years.
    Multiple factors come in picture when we are working on an existing applications and the timelines are tight.
    I was mainly looking for a direct approach for now rather than modifying all my site applications with a static UI for each site.

    Anyways thanks for all your help, will let know how it all comes out. Firstly will try to see if I can make WebApi work.

  • I'd pay cash-money for a new function like a!getCurrentSite() - it seems unreasonable that there's no way of doing this without ridonkulous workarounds.

    And if it would work for any interface regardless of sites or Tempo, I'll throw in extra cash!  I also have an interface that is displayed in both Tempo and Sites, but there is no way to redirect users from the Tempo platform over to the [newer] site where it resides.. Since I have no way to know where they are viewing from..

  • 0
    Certified Lead Developer
    in reply to ekanshj

    I understand about needing to modify a huge number of objects.  But I want to clarify with respect to "static UI for each site" -- this is rather easy to sidestep by establishing a structure where (only) the top-level interface for a particular site page is unique, and inside that all it does is call the shared interface in question, in doing so passing in a parameter identifying the site; this can of course then be used for other interfaces and/or on-page start process links, etc. 

    You also wouldn't need to modify *all* such places at once, but rather cherrypick the few most important (the ones directly up-line from the external URL you want to generate) and go from there.  In case any of that makes this approach more feasible for you.  If it's a big established system you're trying to modify I know that's quite a bit more of a lift than if it's a newer system under development of course.