Skip to main content
June 15, 2025
Solved

How to generate a unique URL that can be used to open a process.

  • June 15, 2025
  • 15 replies
  • 0 views
Is it possible to generate a unique URL to open a process in Appian?
I would like to be able to start an Appian process instance using an API from another system, and open that process from a screen like "Appian process list" on the other system.
A process has multiple User Input Tasks and also enters sub-processes, but I would like to be able to open the process from the "Appian Process List" no matter what state it is in.
Is it possible to generate and return a unique URL for opening a process, regardless of the task, when a process instance is launched? How should I implement this?

I've recently started learning Appian.
Please forgive me for asking a beginner's question.

Thanks in Advance.
    Best answer by stefanhelzle0001

    No. Each task has a different URL.

    Your explanations are very good, it is just that you try to force Appian into something it is not made for. I think that there might be a solution for most of your requirements, but that takes a lot of experience, effort and development.

    So, I see two options. Either adapt your solution design to Appian, or invest a lot of time and money trying to force Appian into your existing solution design.

    15 replies

    stefanhelzle0001
    June 15, 2025

    You can start/initiate a process from another system using a web API. This is described here:

    https://docs.appian.com/suite/help/25.2/Publishing_Process_Models_as_Web_Services.html

    Not sure what you mean with the term "open". A process cannot be opened, but you can show a list of tasks to the user. Clicking such a task then opens the UI specific to that task.

    Appian is more than a UI toolkit, and has a very specific opinion on how things work. The business process is the center. We attach these processes to records, then we assign UIs to tasks in processes to allow people to complete such a task.

    June 15, 2025

    Hello Stefan,

    I apologize for the unclear wording.
    I am hoping to implement the following process.

    1. When I click a button in an external system, use the API to start an Appian process. (The started process instance is called Process X.)
    2. When I click a URL link for Process X from the "Appian Process List" in the external system, the screen of the currently active task of Process X is opened in a new tab in the browser.
    *I used the word "open" to mean Process 2.

    Is it possible to implement the above?
    Thanks.

    stefanhelzle0001
    June 15, 2025

    I would not want to recommend such a design, but yes.

    I already shared how to start a process. To open a task, you create a process report that creates the list of tasks. Then you create another API in which you use that process report to return the list of tasks. Use the a!urlfortask() function to create that link. This other system calls the API and shows the linked tasks in a list.

    To make this work seamlessly, you will have to make sure there is a common single sign on in place.

    harshas2775
    June 17, 2025

    Instead of using tasks its better to configure processes like cascading related processes and use a!startprocess() in the API. It can be like :

    1. Break your process model into smaller processes. Each sub process will have activity chained User input task as the first node and parameters to provide data from previous steps into the sub process.

    2. Configure web apis to start process using a!startprocess(). For the value within start process you can maintain a backend status in database storing till which UI the process is complete and what should be the next step. You can build an expression to return the process model to start depending on the request (primary key). 

    Example: A process model having 5 user input tasks should be break into 5 sub processes. Each process will have a UI node then automated nodes to store data, send email etc whatever process needs you have, lastly the process will end. 

    External system will call the Web API by passing a record id and using the expression rule logic, web api will start process showing the expected UI and related process will commence. One link trigger from external system will complete execution for one sub-action. So each api call will be like a related action showing one UI at a time. 

    Here instead of a unique URL API will be calling unique process model depending on the last step for the record. 

    June 19, 2025

    Thank you for considering this.
    This does not appear to be an implementation for calling a task of a currently running process in a browser, but rather starts a new process each time and progresses the process to the "currently running task" managed in a database.
    There are many elements that need to be considered, such as how to link the input values ​​from the previous user input task and how to manage the progress of the process, making it complicated.
    If possible, I would like to execute this without unnecessarily increasing the number of process instances and process objects.