{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"b7d8a04a-d88a-4033-ac7c-c279f23279af","name":"Main API collections calls","description":"# Background\n\nWorkpro is a configurable Case Management system, designed to help staff within your organisation complete work on different types of cases.\n\nWorkpro has a number of out of the box configurations, which are used by organisations for handling different types of case work, for example:\n\n*   in ombudsman and regulator organisations;\n*   in financial services and other regulated industries;\n*   in human resources teams;\n*   Freedom of Information, Subject Access and other kinds of requests\n*   compliance, process improvement\n*   any other kind of case work with a consistent and defined process\n    \n\nIn setting up your system, the Workpro Team has worked with your organisation to understand how you and your team process case work. Using Workpro, you can:\n\n*   add a case to the system, and work through it according to your defined processes\n*   upload a document to a case, and edit and manage it\n*   manage your own and your team's workload using Case Tasks\n*   send and receive emails\n*   work securely across your team with all records in a centralised database\n*   perform many other case functions, most of which can be accessed via APIs\n    \n\nA more complete guide to Workpro is available within the Workpro help guide (part of your Workpro system).\n\n# Accessing Workpro via APIs\n\nFor the most part APIs will be used to work with **Cases**: creating cases; or adding (or updating) data on a case, including **Documents**.\n\nWorkpro also stores centralised records, **Admin Records**, which can be associated with a case. For example, the system might contain a centralised list of customers, staff or policy holders, which can be associated with cases. API calls might be used to manage these Admin Records, or to retrieve them and associate them with a case. (Note that in some cases, these records might be managed in a third system.)\n\nWorkpro also contains **Lookup Lists**. These are lists of values which are generally used on forms within the system. Typically API calls will be made to retrieve these lists, so that selectors on forms can be populated with the same values as are present in the system.\n\n## Workpro API Concepts\n\n### Case\n\nThe main entity for Workpro, each **case** has a specified **case type**. Upon creation of a **case**, Workpro will generate the defined workflow elements for the case (forms, fields, etc.)\n\n### Form Record\n\nWhen a **form** is filled and the data is saved for a specific case, the record created is called a **form record**.\n\n### Document\n\n**Documents** can be uploaded to individual **cases**.\n\nSome configurations allow the user to send email from within a case. Such emails are also stored as documents.\n\n### Task\n\nTasks can be created for individual cases.\n\nSome configurations allow the user to create tasks for themselves, or for a teammate.\n\nSimilarly, some configurations are set to create tasks automatically following certain events (e.g. case progression; receipt of an incoming email; etc).\n\n### Case Functions\n\nAs Workpro is a Case Management system, most of its features are built around cases. Many of the functions exposed via the API are **case functions**.\n\nAn example **case function** is uploading a document: a document is typically uploaded to a case, and cannot be uploaded without a case. Therefore, we would categorise uploading a document as a **case function**.\n\nSimilarly, tasks are created for cases and cannot be created without a case. Therefore we also categorise task creation as a **case function**.\n\nMany other functions are similarly related to cases, and cannot work without an associated case. These are also categorised as **case functions**.\n\n### Case Type\n\nEach case must have a **case type**. The **case type** defines the fields which appear on the case, the workflow (or process) associated with each case, how the case is treated by file management (archiving). Different permissions and access rights will be applied to different case types, and so on.\n\nOne example **case type** would be a Complaint. A complaint **case type** would have a specific workflow to follow, specific forms to complete, defined validation rules, etc.\n\nAnother example would be a Freedom of Information (FOI) request. The **case type** would be created with a specific workflow for the case worker to follow.\n\nAs a result, every Complaint Case will have the same workflow and forms. Every FOI case will contain the same FOI workflow and FOI forms.\n\nIn short, the **case type** is the definition for a specific type of case.\n\n> Note that, even though many Workpro systems are developed from a common baseline (e.g. complaints or HR) there are no common case types in Workpro. Each organisation will have their own case types which reflect their business processes.\n\n### Admin Records and Admin Types\n\nThe **admin type** is a definition of an **admin record** (these might also be called centralised or core records). The **admin type** is similar to the case type in that it contains the definition of the entity - i.e. the fields for the record and any associated validation or workflow.\n\nExamples of **admin types** are Complainants, Councils, Companies, Policy Holders, Individuals and so on.\n\nFor example, your Workpro system may be designed with a centralised list of Individual **admin records** which can be added to different cases. The same list of **admin records** might be used to add Individuals to cases as complainants, FOI requestors, and so on. The same list of **admin records** can be used for different case types. Once the **admin type** *Individual* has been defined, then any *Individual* instance created later will include the same definition and require the same information.\n\n> Again, even though many Workpro systems are developed from a common baseline (e.g. complaints or HR) there are no common admin types in Workpro. Each organisation will have their own admin types which reflect their business processes.\n\n#### Admin Record\n\nWhen an instance of an **admin type** is created and the data is saved, the record created is called an **admin record**.\n\nSome **admin records** might be a child of a master record. For example, your organisation might have clients, where the client has employees, and your process may require you to hold information about them. Here we might define (in the **admin type** definition) that Client records can have Employee child records.\n\n> Note that child records are always specific to the parent, and cannot be taken from core records. In the above example, when an Employee record is saved, it would be applied to the specific child record of the Client, and not to all records in the database.\n\n### Master Type\n\nThe **master type** is a way of categorising **case types** and **admin types**.\n\nSome **case functions** are not only supported for **case types** but also for certain **admin types**. To enable this, the Workpro Team would promote an **admin type** to a **case type**. This adds support for some **case functions** to the **admin type**.\n\nHowever, the system needs to recognise that a promoted **admin type** should not treated as a standard **case type**.\n\n**Master types** are how we categorise **case types**. Currently Workpro supports the following **master types**:\n\n*   **Case**\n    *   Normal case types will fall within this category\n*   **CRM**\n    *   When an admin type is promoted to case type it receives this category\n*   **Administration**\n    *   We use administration types for internal purposes.\n\n### Workflow\n\nThe **workflow** is the definition of the process of working a case from creation to completion. Each **case type** or **admin type** has a defined **workflow**.\n\nA workflow is comprised of the following elements:\n\n*   Forms\n*   Fields\n*   Field types\n*   Validation rules\n    \n\n#### Forms\n\nA **form** is a definition that comprises **fields** and **validation rules**.\n\nEach form is displayed on a separate **tab** in Workpro.\n\nEach **case type** will contain a set of **forms**; each **form** will contain a set of **fields** and **validation rules**.\n\nThere are no common forms in Workpro. Each organisation will have their own form definitions, which reflect their business processes.\n\n#### Fields\n\nA **field** is an element within a form. In Workpro, **fields** will display collected inside a **tab**.\n\nEach **field** is defined with a set of properties, including:\n\n*   FieldName\n*   FieldID\n*   FieldCaption\n*   FieldType\n    \n\nThere are no common **fields** in Workpro. Each organisation will have their own field definitions, which reflect their business processes.\n\n#### Field types\n\nWorkpro supports many different **field types**, for example text, number, date, email address, yes/no. A complete list is available in the Workpro Help Guide (inside your Workpro system).\n\nA **field type** not only defines how a field looks within Workpro, but also how it behaves and the data that it supports.\n\n**Field types** are the same for all Workpro systems.\n\nFor more information about available **field types**, see your Workpro Help Guide.\n\n#### Validation rules\n\n**Validation rules** define how user input should be validated for each **form** or **field**.\n\nThere are no common **validation rules**. Each organisation will have their own **validation rules**, which reflect their business processes.\n\n**Validation rules** can be applied to:\n\n*   **fields**\n    *   for example: the field must contain a value; or must be less than 2000; or greater than 01/01/2000);\n*   **forms**\n    *   for example a form might contain two fields, Received Date and Resolution Date. A common validation rule would be that Received Date cannot be greater than Resolution Date.\n\nThere are 2 types of **validation rule**:\n\n*   **Compulsory** validation: if input is not validate Workpro will throw an error and prevent the data from being saved\n*   **Advisory** validation: if input is not validate Workpro will return a warning and prevent the data to be saved unless the parameter **IgnoreAdvisory** is passed.\n    \n\n# Developing your application using Workpro APIs\n\n## Date formatting\n\n**Any date sent through any API call must be a valid UTC date.**\n\nAll dates are stored as UTC dates in Workpro, and dates passed via the API are expected to be UTC dates. If passing dates from a UI or other application, you must convert the dates to UTC before passing them to Workpro.\n\nThe Workpro user interface will convert the dates to the system locale, taking daylight saving time etc into account.\n\n## Matching Workpro screens to API calls\n\nWhen developing your application and calling Workpro APIs it can be useful to access Workpro to validate that the API calls are working as expected.\n\nWorkpro systems are all different, so the exact location of different features may vary between different configurations. However, in general the main features of a system are located in similar places and you should be able to use this guide to find them.\n\nIf the locations don’t match exactly, you should review with your organisation's system administrator who should be able to assist. Failing this, the Workpro Team can provide support.\n\n### Creating a case\n\n1.  Login to Workpro.\n2.  Click on New Case.\n3.  Optionally, you can select a case type and case owner from the list.\n    \n\n> Please check with your organisation that you are allowed to create TEST cases before doing so.\n\n### Workflow\n\nAfter creating a case, it will automatically open.\n\nThe case will contain a left navigation menu. One of the menu items is **Workflow**, which will contain the different stages of the case. You can expand the available stages and see which forms the stage contains.\n\nIn the following picture we can see the stages for the workflow on the left and the forms available for the stage **Frontline Resolution** on the right.\n\n### Forms and Fields\n\nIn addition to the **forms** defined for a Workflow, case functions will also be presented to the user in the UI.\n\nThere is no easy way to say which of the options on the left navigation will be a form and which one will be a case function. Refer to the API documentation to identify which features are available as **case functions**.\n\nIn the following picture we can see an example form and some of its fields.\n\n### Case Functions\n\nSimilar to forms, **case functions** are exposed to the user via the left navigation.\n\nThere are many **case functions** supported. Not all will be enabled in every configurations and every case types.\n\nIn the following picture we can see the **case function** *Send Email*.\n\n### Validation Rules\n\nWhen trying to save a form **validation rules** will trigger.\n\nThe following picture shows a **validation rule** failure where a mandatory field was left empty.\n\n### Documents\n\nIf available, **documents** will usually be a case function in the left navigation labelled **Documents**.\n\nIn the following picture we can see an example case with an uploaded **document**.\n\n### Tasks\n\nSimilar to documents, tasks are a **case function** and if enabled they will be found on the left navigation menu.\n\nIn the following picture we can see an example case with a task.\n\n### Admin Types\n\nUsually available **admin types** can be seen by going to Administration->Administration or Administration->Core Record Management on the top navigation.\n\nInside this area, the left navigation will display available **master admin record types**. The main part of the screen will show available admin records.\n\nIn the following picture we can see the available types\n\nIn the following picture we can see the available Admin Records for the Admin Type Authorities\n\nWe can also contain child records for a single master. In the following picture we can see for the master admin record authority “Sample Agency” with 2 child admin records authority staff.\n\n## Ordering of API calls\n\nThe Workpro API is a RESTful API and doesn't maintain state. So, in principle API calls can be made in any order. However, the business flow must still be respected. This is largely common sense:\n\n*   To create a form record for a case, the case must be created first.\n*   To update a form record, the record itself needs to have been created.\n*   To link an admin record to a case, both the admin record and the case must exist.\n*   To upload a document to a case, the case must have been created.\n*   To complete stage 2 of a workflow, stage 1 needs to be completed first.\n*   And so on...\n    \n\n## Understanding your Workpro configuration\n\nWorkpro contains a number of APIs which are made available to developers to assist in developing the system.\n\nYou should make the following API calls as you start your project, which will provide documentation of your Workpro configuration\n\n*   Get Available Case Types\n*   Get Available Admin Types\n*   Get Form Tree By Case Type (do this per each case type you need to use in your project)\n*   Get Fields by Form (do this when working with a specific form)\n    \n\n## Authentication\n\nAPI end points can work with one of the following authentication:\n\n*   Basic Authentication\n*   Cookie Authentication\n    *   This one is granted when a user logs in using the browser. However, if the cookie is  \n        captured it can be used to make api calls.\n    *   The cookie name is: .DOTNETNUKE\n\n## API Documentation\n\nThe bulk of the API documentation details individual API calls, divided by HTTP method type (GET, POST, PT, DEL).\n\nA section called FLOWS demonstrates some common API call sequences, for example creating a case and adding data to a form; or creating a case and uploading a document.\n\n## Using the Documentation\n\nThis documentation is generated using the Postman tool.\n\nIt can generate example code to help you to build your application.\n\nYou can set your preferred language for generating sample code at the top of the screen, and the examples will display next to each API method. Some methods have multiple code examples available, with resulting response data.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"12980816","team":1501446,"collectionId":"b7d8a04a-d88a-4033-ac7c-c279f23279af","publishedId":"UVeAu8T3","public":true,"publicUrl":"https://docs.workpro-online.com","privateUrl":"https://go.postman.co/documentation/12980816-b7d8a04a-d88a-4033-ac7c-c279f23279af","customColor":{"top-bar":"062C5D","right-sidebar":"303030","highlight":"114E85"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.0","publishDate":"2022-03-03T16:27:10.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/d5628a11ee0dd1e0bd3869b69f981e9eda8b9440252fc98f4dc02ca74ae77f9f","favicon":"https://workpro-online.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://docs.workpro-online.com/view/metadata/UVeAu8T3"}