After installing the Public Portal, you need to set it up before using it with Case Management Studio. This guide walks you through the recommended setup steps, which include:
This is a required step.
Copy the API key for later use.
/webapi/
./webapi/
.CMGT_Portal
:
CMGT_PORTAL_TXT_URL_UUID
with Portal UUID.This is a required step to capture case contact information.
CMGT_Case
record type.CMGT_Portal_CaseContact
record type.portalCaseContact
.caseId
for the common record fields.In the Write and Delete Related Records section, select Write or delete CMGT_Portal_CaseContacts when modifying Cases.
CMGT_Case_SetMetaData
expression rule.
Add the following map statement below the last map in the childRelationships
array:
1
2
3
4
5
6
7
a!map(
field: recordType!CMGT_Case.relationships.portalCaseContact,
value: rule!CMGT_Portal_CaseContact_SetMetaData(
portalCaseContacts: fv!item[recordType!CMGT_Case.relationships.portalCaseContact],
initiator: ri!initiator
)
)
Note: Record type field references are specific to each record type and environment. This means that you need to reference the record type fields from your own environment whenever you copy and paste a record type reference from outside the application.
CMGT_Case_Sub_Create
interface.
Below the case details section layout, call the interface CMGT_Portal_CreateCase_CaseContactsSection
as follows:
1
2
3
4
rule!CMGT_Portal_CreateCase_CaseContactsSection(
caseContact: ri!case[recordType!CMGT_Case.relationships.portalCaseContact],
brandingMap: ri!brandingMap
),
CMGT_Case_CaseSummary
interface.
Above the Studio Fields section, call the interface CMGT_Portal_CaseSummary_PortalFields
as follows:
1
2
3
4
rule!CMGT_Portal_CaseSummary_PortalFields(
caseContact: ri!case[recordType!CMGT_Case.relationships.portalCaseContact],
brandingMap: ri!brandingMap
),
CMGT_CB_Case_WriteRecordsProperties
expression rule.
Add the portal case contact relationship after the documents relationship as shown.
Click SAVE CHANGES and close the expression rule.
CMGT_EventHistory_Case_FormatDetails
expression rule.
Add another condition to the match()
statement for formatting audits related to the case contact by copying the code snippet and pasting as shown.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
whenTrue: fv!value = cons!CMGT_PORTAL_REFID_EVENT_TYPE_UPDATE_CASE_CONTACT,
then: joinarray(
rule!CMGT_UTIL_RejectBlank(
array: {
if(
rule!CMGT_UTIL_IsBlank(
local!details.firstName
),
null,
'translation!{3901b96b-7990-4002-b073-5b601b7d9be9}CMGT_Portal_Translations.{91fffdbd-a177-4f4f-b0e0-769b9475604b}First Name: {value}'(
'translation!{3901b96b-7990-4002-b073-5b601b7d9be9}CMGT_Portal_Translations.{91fffdbd-a177-4f4f-b0e0-769b9475604b}First Name: {value}.translationvariables.{e6f9ee42-d08f-46cd-90ce-29e1ce3a8e07}value': local!details.firstName
)
),
if(
rule!CMGT_UTIL_IsBlank(
local!details.lastName
),
null,
'translation!{3901b96b-7990-4002-b073-5b601b7d9be9}CMGT_Portal_Translations.{33ebde45-da93-4bff-813c-aafee5c65dd6}Last Name: {value}'(
'translation!{3901b96b-7990-4002-b073-5b601b7d9be9}CMGT_Portal_Translations.{33ebde45-da93-4bff-813c-aafee5c65dd6}Last Name: {value}.translationvariables.{d44e0b68-4130-4944-a35b-19ac9d247a9d}value': local!details.lastName
)
),
if(
rule!CMGT_UTIL_IsBlank(
local!details.email
),
null,
'translation!{3901b96b-7990-4002-b073-5b601b7d9be9}CMGT_Portal_Translations.{8a2f3918-6edc-4aef-b7eb-eb84fd4d95ac}Email: {value}'(
'translation!{3901b96b-7990-4002-b073-5b601b7d9be9}CMGT_Portal_Translations.{8a2f3918-6edc-4aef-b7eb-eb84fd4d95ac}Email: {value}.translationvariables.{325eca9c-740e-49e3-9a9f-6541520f32f8}value': local!details.email
)
)
}
),
char(
10
)
),
Click SAVE CHANGES and close the expression rule.
Complete the steps in this section to display the selected case type on the Case Creation form on the portal.
To update the Case Creation form:
CMGT_Case_Sub_Create
interface.
Add the following code above the section layout that contains the CMGT_Case_CaseType
interface.
1
2
3
rule!CMGT_Portal_CreateCase_SelectedCaseTypeDisplay(
selectedCaseType: ri!case['recordType!{d81cdd0e-c54d-4b8e-beec-b7ae37fefe7f}CMGT_Case.relationships.{8beba714-f253-41d2-9232-e0c0f51bed2e}caseType']
),
Click SAVE CHANGES and close the interface.
This is an optional step. Complete the following steps to send case creation emails to the contact provided in the portal case submission:
CMGT_Email_CaseCreationEmails
expression rule.
Add the following to the existing array of email creation rules.
1
2
3
rule!CMGT_Portal_Email_EmailSettingMap_CreateCase(
case:ri!case
)
Click SAVE CHANGES.
CMGT_Portal_Email_EmailSettingMap_CreateCase
expression rule.
Locate the recipientEmailAddress
parameter in the map()
function on line 4 of your expression and enter the following:
1
2
3
4
5
6
toemailaddress(
rule!CMGT_QR_GetPortalCaseContact(
caseId: ri!case[recordType!CMGT_Case.fields.caseId],
fields: recordType!CMGT_Portal_CaseContact.fields.email
)[recordType!CMGT_Portal_CaseContact.fields.email]
),
Click SAVE CHANGES.
Follow the steps in this section to allow case workers to update the portal case contact.
CMGT_Case
record type.
Update Contact
from the CMGT_Portal_Translations
translation set.Complete the remaining fields in the Create New Action dialog, as follows:
CMGT_Portal_Case_UpdateContact
Context: Copy and paste the following code snippet:
1
2
3
4
5
{
caseContacts: rule!CMGT_QR_GetPortalCaseContact(
caseId: rv!identifier,
)
}
Enter source = CMGT_TXT_SOURCE_PORTAL
as shown:
CMGT_Case_CaseSummary
interface.
Add the Update Contact action below the Update Additional Details action in the record action field as shown.
Click SAVE CHANGES.
By default, the portal ships with Google reCAPTCHA enabled. Appian considers reCAPTCHA services essential for unauthenticated Appian Portals usage. See Google reCAPTCHA to learn more about Google reCAPTCHA.
If you wish to remove Google reCAPTCHA, complete the following steps:
CMGT_Portal
portal object.
If this is a permanent removal of reCAPTCHA, navigate to the interfaces specified in the design guidance warning that calls a!verifyRecaptcha()
. Follow the inline comments in each interface to remove the a!verifyRecaptcha()
call.
Note: If uploaded documents are expected to contain sensitive information (e.g., PII, financial, medical, etc.), we recommend Appian HIPAA Cloud to ensure potential sensitive user data is protected.
Appian recommends that customers restrict the Portal-exposed file upload fields to a set of permitted file extensions. This is configurable via the admin console.
Portals natively have a file size restriction per document upload.
This is an optional step that allows the portal service account to reflect a user-friendly name on the front end.
CMGT_TXT_AUTOMATED_SYSTEM
constant.
This is an optional step. Refer to Exporting translation strings for translation for information on translating the Public Portal module to other languages.
Portals are publicly accessible to users on the open internet. Appian recommends actively monitoring your Portal to prevent cyber attacks, like a flood of fake submissions. See Appian Portals for more details and recommendations on using Appian Portals.
Setting Up Public Portal Module