Reports
Backend
1. ReportFetchAccounts
a. Output form
ensure form OutputAccountList
ensure grid: Account
ensure field Id kind: text
ensure field Name kind: text
ensure field Type kind: pickText
plugIn: SalesforcePlugin
pluginApi: GetObjectDropDownPickList
pluginInputMappingVar: VarMappingOutputAccountListToDropObjectDownPicklistInput2
ensure field AccountSite kind: text
ensure field Industry kind: pickText
plugIn: SalesforcePlugin
pluginApi: GetObjectDropDownPickList
pluginInputMappingVar: VarMappingOutputAccountListToDropObjectDownPicklistInput1
ensure field AccountNumber kind: text
ensure field Phone kind: mobileNumber
ensure field BillingState kind: text
ensure field Owner kind: pickText plugIn: SalesforcePlugin pluginApi: GetUsers
ensure layoutGrid TableLayout kind: table
columnSizeSet: ["AutoSize"]
showComps: [Id, Name, AccountNumber, Phone, Type, AccountSite, Industry, BillingState, Owner]
ensure layout FormLayout FormLayout kind: content
direction: vertical
flexCenter.gridLayouts: [Account.TableLayout]
ensure var VarMappingOutputAccountListToAccount kind: mapping
deploy: fixedOnDeploy
fromForm: OutputAccountList
fromGrid: Account
toForm: EntityAccount
fieldMappingMap: {
'map': {
'${f:Account.Id}': 'Details.Id',
'${var:VarTextFormModeEdit}': 'Other.FormMode'
}
}
ensure var VarMappingOutputAccountListToOpportunity kind: mapping
deploy: fixedOnDeploy
fromForm: OutputAccountList
fromGrid: Account
toForm: EntityOpportunity
fieldMappingMap: {
'map': {
'${f:Account.Id}': 'Other.AccountId',
'${f:Account.Name}': 'Other.AccountDisplayName',
'${var:VarTextFormModeCreate}': 'Other.FormMode'
}
}
ensure var VarMappingOutputAccountListToDropObjectDownPicklistInput1 kind: mapping
deploy: fixedOnDeploy
fromForm: OutputAccountList
toPlugin: SalesforcePlugin
toForm: DropObjectDownPicklistInput
fieldMappingMap: {
'map': {
'${var:VarTextObjectTypeAccount}': 'ObjectType',
'${constant:text.Industry}': 'DropdownFieldName'
}
}
ensure var VarMappingOutputAccountListToDropObjectDownPicklistInput2 kind: mapping
deploy: fixedOnDeploy
fromForm: OutputAccountList
toPlugin: SalesforcePlugin
toForm: DropObjectDownPicklistInput
fieldMappingMap: {
'map': {
'${var:VarTextObjectTypeAccount}': 'ObjectType',
'${constant:text.Type}': 'DropdownFieldName'
}
}
ensure form OutputAccountList
ensure grid: Account
actionPermission: {
'EditAccount': {
'mappingVar': 'VarMappingOutputAccountListToAccount',
'roles': [
'Owner'
]
},
'AddOpportunity': {
'mappingVar': 'VarMappingOutputAccountListToOpportunity',
'roles': [
'Owner'
]
}
}
ensure field Type
pluginInputMappingVar: VarMappingOutputAccountListToDropObjectDownPicklistInput2
ensure field Industry
pluginInputMappingVar: VarMappingOutputAccountListToDropObjectDownPicklistInput1
b. Report
ensure var VarMappingAccountListToOutputAccountList kind: mapping
deploy: fixedOnDeploy
fromPlugin: SalesforcePlugin
fromForm: AccountList
toForm: OutputAccountList
toGrid: Account
gridMappingMap: {
'Mapping6u3hTk': {
'toGrid': 'Account',
'fromKey': 'Account.Id',
'insertVariant': 'insertForced',
'updateVariant': 'updateForced',
'removeVariant': 'removeForced',
'emptyVariant': 'overrideEmptyField',
'map': {
'${f:Account.Id}': 'Account.Id',
'${f:Account.Name}': 'Account.Name',
'${f:Account.Type}': 'Account.Type',
'${f:Account.AccountSite}': 'Account.AccountSite',
'${f:Account.Industry}': 'Account.Industry',
'${f:Account.AccountNumber}': 'Account.AccountNumber',
'${f:Account.Phone}': 'Account.Phone',
'${f:Account.BillingState}': 'Account.BillingState',
'${f:Account.Owner}': 'Account.Owner'
}
}
}
ensure report ReportFetchAccounts kind: plugin
outputForm: OutputAccountList
plugIn: SalesforcePlugin
pluginApi: GetAccounts
outputFormMappingVar: VarMappingAccountListToOutputAccountList
2. ReportFetchOpportunities
a. Input form
ensure form FilterRecordsByAccount
ensure section: Details
ensure field AccountId kind: text
permissionMatrix: {
'defaultPermission': 'invisible'
}
ensure field Account kind: pickText
required: true
plugIn: SalesforcePlugin
pluginApi: GetAccountsDropdownList
ensure formula Formula1
assignToField: Details.AccountId
formula: "${f:Details.Account.optionId}"
b. Output form
ensure form OutputOpportunityList
ensure grid: Opportunity
ensure field Id kind: text
ensure field Name kind: text
ensure field Amount kind: decimal
ensure field CloseDate kind: date displayDateFormat: "MM/dd/yyyy, hh:mm:ss a"
ensure field Stage kind: pickText
plugIn: SalesforcePlugin
pluginApi: GetObjectDropDownPickList
ensure field Description kind: text
ensure field Assignee kind: pickText plugIn: SalesforcePlugin pluginApi: GetUsers
ensure layout FormLayout kind: content direction: vertical
ensure layout KanbanLayout kind: content direction: vertical
ensure layoutGrid TableLayout kind: table
columnSizeSet: ["AutoSize"]
showComps: [Id, Name, Amount, CloseDate, Stage, Description, Assignee]
ensure layoutGrid Kanban kind: content
direction: vertical
showFields: [
Opportunity.Amount,
Opportunity.Description,
Opportunity.CloseDate,
Opportunity.Name,
Opportunity.Stage,
Opportunity.Assignee
]
allowToSwitchLayouts: [TableLayout]
kanbanField: Opportunity.Stage
ensure layoutGrid TableLayout allowToSwitchLayouts: [Kanban]
ensure layout FormLayout kind: content
direction: vertical
flexCenter.gridLayouts: [Opportunity.TableLayout]
ensure layout KanbanLayout kind: content
direction: vertical
flexCenter.gridLayouts: [Opportunity.Kanban]
ensure var VarMappingOutputOpportunityListToOpportunity kind: mapping
deploy: fixedOnDeploy
fromForm: OutputOpportunityList
fromGrid: Opportunity
toForm: EntityOpportunity
fieldMappingMap: {
'map': {
'${var:VarTextFormModeEdit}': 'Other.FormMode',
'${f:Opportunity.Id}': 'Details.Id'
}
}
ensure var VarMappingOpportunityListToDropObjectDownPicklistInput kind: mapping
deploy: fixedOnDeploy
fromForm: OutputOpportunityList
toPlugin: SalesforcePlugin
toForm: DropObjectDownPicklistInput
fieldMappingMap: {
'map': {
'${var:VarTextObjectTypeOpportunity}': 'ObjectType',
'${constant:text.StageName}': 'DropdownFieldName'
}
}
ensure form OutputOpportunityList
ensure grid: Opportunity
actionPermission: {
'EditOpportunity': {
'mappingVar': 'VarMappingOutputOpportunityListToOpportunity',
'roles': [
'Owner'
]
}
}
ensure field Stage
pluginInputMappingVar: VarMappingOpportunityListToDropObjectDownPicklistInput
c. Report
ensure var VarMappingFilterRecordsByAccountToRecordIdInputForm kind: mapping
deploy: fixedOnDeploy
fromForm: FilterRecordsByAccount
toPlugin: SalesforcePlugin
toForm: RecordIdInputForm
fieldMappingMap: {
'map': {
'${f:Details.AccountId}': 'Id'
}
}
ensure var VarMappingOpportunityListToOutputOpportunityList kind: mapping
deploy: fixedOnDeploy
fromPlugin: SalesforcePlugin
fromForm: OpportunityList
toForm: OutputOpportunityList
toGrid: Opportunity
gridMappingMap: {
'MappinguHL6mx': {
'toGrid': 'Opportunity',
'fromKey': 'Opportunity.Id',
'insertVariant': 'insertForced',
'updateVariant': 'updateForced',
'removeVariant': 'removeForced',
'emptyVariant': 'overrideEmptyField',
'map': {
'${f:Opportunity.Id}': 'Opportunity.Id',
'${f:Opportunity.Name}': 'Opportunity.Name',
'${f:Opportunity.Amount}': 'Opportunity.Amount',
'${f:Opportunity.CloseDate}': 'Opportunity.CloseDate',
'${f:Opportunity.Stage}': 'Opportunity.Stage',
'${f:Opportunity.Description}': 'Opportunity.Description',
'${f:Opportunity.Owner}': 'Opportunity.Assignee'
}
}
}
ensure report ReportFetchOpportunities kind: plugin
inputForm: FilterRecordsByAccount
outputForm: OutputOpportunityList
plugIn: SalesforcePlugin
pluginApi: GetOpportunityByAccount
inputFormMappingVar: VarMappingFilterRecordsByAccountToRecordIdInputForm
outputFormMappingVar: VarMappingOpportunityListToOutputOpportunityList
3. ReportKanban
a. Report
ensure report ReportFetchOpportunitiesKanban kind: plugin
inputForm: FilterRecordsByAccount
outputForm: OutputOpportunityList
plugIn: SalesforcePlugin
pluginApi: GetOpportunityByAccount
inputFormMappingVar: VarMappingFilterRecordsByAccountToRecordIdInputForm
outputFormMappingVar: VarMappingOpportunityListToOutputOpportunityList
4. ReportFetchTasks
a. Input form
ensure form FilterRecordByOpportunity
ensure section: Details
ensure field Id kind: text
permissionMatrix: {
'defaultPermission': 'invisible'
}
ensure field Opportunity kind: pickText
required: true
plugIn: SalesforcePlugin
pluginApi: GetOpportunitiesDropdownList
ensure var VarMappingFilterByOpportunityToRecordIdInputForm kind: mapping
deploy: fixedOnDeploy
fromForm: FilterRecordByOpportunity
toPlugin: SalesforcePlugin
toForm: RecordIdInputForm
fieldMappingMap: {
'map': {
'${f:Details.Id}': 'Id'
}
}
ensure form FilterRecordByOpportunity
ensure section: Details
ensure field Opportunity
pluginInputMappingVar: VarMappingFilterByOpportunityToRecordIdInputForm
ensure var VarConditionFilterByOpportunityId kind: condition
deploy: fixedOnDeploy
sourceForm: FilterRecordByOpportunity
value: "<root>
<stmt>${f:Details.Opportunity} has value</stmt>
</root>"
ensure form FilterRecordByOpportunity
ensure formula Id
conditionVar: VarConditionFilterByOpportunityId
assignToField: Details.Id
formula: "${f:Details.Opportunity.optionId}"
b. Output form
ensure form OutputTaskList
ensure grid: Details
ensure field Id kind: text
ensure field Subject kind: text required: true
ensure field DueDate kind: date
ensure field Status kind: pickText
plugIn: SalesforcePlugin
pluginApi: GetObjectDropDownPickList
pluginInputMappingVar: VarMappingOutputTaskListToDropObjectDownPicklistInput1
ensure field Priority kind: pickText
plugIn: SalesforcePlugin
pluginApi: GetObjectDropDownPickList
pluginInputMappingVar: VarMappingOutputTaskListToDropObjectDownPicklistInput2
ensure field AssignedTo kind: pickText plugIn: SalesforcePlugin pluginApi: GetUsers
ensure field RelatedTo kind: pickText
plugIn: SalesforcePlugin
pluginApi: GetOpportunitiesDropdownList
ensure field Description kind: text
// layoutGrid, table, Table
ensure layoutGrid Table kind: table
columnSizeSet: ["AutoSize"]
showComps: [Id, Subject, DueDate, Status, Priority, RelatedTo, Description]
// layout, content, ContentLayout
ensure layout ContentLayout kind: content
direction: vertical
flexCenter.gridLayouts: [Details.Table]
contentPadding: thick
ensure var VarMappingTaskListToTask kind: mapping
deploy: fixedOnDeploy
fromForm: OutputTaskList
fromGrid: Details
toForm: EntityTask
fieldMappingMap: {
'map': {
'${f:Details.Id}': 'Details.Id',
'${var:VarTextFormModeEdit}': 'Other.FormMode'
}
}
ensure var VarMappingOutputTaskListToDropObjectDownPicklistInput1 kind: mapping
deploy: fixedOnDeploy
fromForm: OutputTaskList
toPlugin: SalesforcePlugin
toForm: DropObjectDownPicklistInput
fieldMappingMap: {
'map': {
'${var:VarTextObjectTypeTask}': 'ObjectType',
'${constant:text.Status}': 'DropdownFieldName'
}
}
ensure var VarMappingOutputTaskListToDropObjectDownPicklistInput2 kind: mapping
deploy: fixedOnDeploy
fromForm: OutputTaskList
toPlugin: SalesforcePlugin
toForm: DropObjectDownPicklistInput
fieldMappingMap: {
'map': {
'${var:VarTextObjectTypeTask}': 'ObjectType',
'${constant:text.Priority}': 'DropdownFieldName'
}
}
ensure form OutputTaskList
ensure grid: Details
actionPermission: {
'EditTask': {
'mappingVar': 'VarMappingTaskListToTask',
'roles': [
'Owner'
]
}
}
ensure field Status
pluginInputMappingVar: VarMappingOutputTaskListToDropObjectDownPicklistInput1
ensure field Priority
pluginInputMappingVar: VarMappingOutputTaskListToDropObjectDownPicklistInput2
c. Report
ensure var VarMappingFilterRecordByOpportunityToRecordIdInputForm kind: mapping
deploy: fixedOnDeploy
fromForm: FilterRecordByOpportunity
toPlugin: SalesforcePlugin
toForm: RecordIdInputForm
fieldMappingMap: {
'map': {
'${f:Details.Id}': 'Id'
}
}
ensure var VarMappingTaskListToOutputTaskList kind: mapping
deploy: fixedOnDeploy
fromPlugin: SalesforcePlugin
fromForm: TaskList
toForm: OutputTaskList
toGrid: Details
gridMappingMap: {
'MappingnVhb57': {
'toGrid': 'Details',
'fromKey': 'Details.Subject',
'insertVariant': 'insertForced',
'updateVariant': 'updateForced',
'removeVariant': 'removeForced',
'emptyVariant': 'overrideEmptyField',
'map': {
'${f:Task.Id}': 'Details.Id',
'${f:Task.Subject}': 'Details.Subject',
'${f:Task.DueDate}': 'Details.DueDate',
'${f:Task.Status}': 'Details.Status',
'${f:Task.Priority}': 'Details.Priority',
'${f:Task.RelatedTo}': 'Details.RelatedTo',
'${f:Task.Description}': 'Details.Description',
'${f:Task.AssignedTo}': 'Details.AssignedTo'
}
}
}
ensure report ReportFetchTasks kind: plugin
inputForm: FilterRecordByOpportunity
outputForm: OutputTaskList
plugIn: SalesforcePlugin
pluginApi: GetTasksByOpportunity
inputFormMappingVar: VarMappingFilterRecordByOpportunityToRecordIdInputForm
outputFormMappingVar: VarMappingTaskListToOutputTaskList
5. ReportFetchEvents
a. Output form
ensure form OutputEventList
// composite, grid, Details
ensure grid: Details
ensure field Id kind: text
ensure field Subject kind: text required: true
ensure field Description kind: text
ensure field StartDateTime kind: dateTime
ensure field EndDateTime kind: dateTime
ensure field Location kind: text
ensure field IsAllDayEvent kind: bool
ensure field AssignedTo kind: pickText
plugIn: SalesforcePlugin
pluginApi: GetUsers
ensure field RelatedTo kind: pickText
plugIn: SalesforcePlugin
pluginApi: GetOpportunitiesDropdownList
// layoutGrid, table, Table
ensure layoutGrid Table kind: table
showComps: [
Id,
Subject,
Description,
StartDateTime,
EndDateTime,
Location,
IsAllDayEvent,
AssignedTo,
RelatedTo
]
// layout, content, ContentLayout
ensure layout ContentLayout kind: content
direction: vertical
contentPadding: thick
flexCenter.gridLayouts: [Details.Table]
ensure var VarMappingOutputEventListToEvent kind: mapping
deploy: fixedOnDeploy
fromForm: OutputEventList
fromGrid: Details
toForm: EntityEvent
fieldMappingMap: {
'map': {
'${var:VarTextFormModeEdit}': 'Details.FormMode',
'${f:Details.Id}': 'Details.Id'
}
}
ensure grid: Details
actionPermission: {
'EditEvent': {
'mappingVar': 'VarMappingOutputEventListToEvent',
'roles': [
'Owner'
]
}
}
c. Report
ensure var VarMappingFilterRecordsByOpportunityToRecordIdInputForm kind: mapping
deploy: fixedOnDeploy
fromForm: FilterRecordByOpportunity
toPlugin: SalesforcePlugin
toForm: RecordIdInputForm
fieldMappingMap: {
'map': {
'${f:Details.Id}': 'Id'
}
}
ensure var VarMappingEventListToOutputEventList kind: mapping
deploy: fixedOnDeploy
fromPlugin: SalesforcePlugin
fromForm: EventList
toForm: OutputEventList
toGrid: Details
gridMappingMap: {
'Mapping7EDELG': {
'toGrid': 'Details',
'fromKey': 'Details.Subject',
'insertVariant': 'insertForced',
'updateVariant': 'updateForced',
'removeVariant': 'removeForced',
'emptyVariant': 'overrideEmptyField',
'map': {
'${f:Event.Id}': 'Details.Id',
'${f:Event.Subject}': 'Details.Subject',
'${f:Event.Description}': 'Details.Description',
'${f:Event.StartDate}': 'Details.StartDateTime',
'${f:Event.EndDate}': 'Details.EndDateTime',
'${f:Event.Location}': 'Details.Location',
'${f:Event.IsAllDayEvent}': 'Details.IsAllDayEvent',
'${f:Event.AssignedTo}': 'Details.AssignedTo',
'${f:Event.RelatedTo}': 'Details.RelatedTo'
}
}
}
ensure report ReportFetchEvents kind: plugin
inputForm: FilterRecordByOpportunity
outputForm: OutputEventList
plugIn: SalesforcePlugin
pluginApi: GetEventsByOpportunity
inputFormMappingVar: VarMappingFilterRecordsByOpportunityToRecordIdInputForm
outputFormMappingVar: VarMappingEventListToOutputEventList
Frontend
1. Actions
a. FetchAccounts
ensure action FetchAccounts kind: report
icon: "CloudDownloadRounded"
report: ReportFetchAccounts
outputFormContentLayout: FormLayout
b. FetchOpportunities
ensure action FetchOpportunities kind: report
icon: "CloudDownloadRounded"
report: ReportFetchOpportunities
outputFormContentLayout: FormLayout
sendMessageToInbox: true
c. FetchTasks
ensure action FetchTasks kind: report
icon: "CloudDownloadRounded"
report: ReportFetchTasks
outputFormContentLayout: ContentLayout
sendMessageToInbox: true
d. FetchEvents
ensure action FetchEvents kind: report
icon: "CloudDownloadRounded"
report: ReportFetchEvents
outputFormContentLayout: ContentLayout
sendMessageToInbox: true
2. Group actions
ensure group Salesforce
allowPromptAssistant: true
hideActionMenu: true
pinnedActions: [AddAccount. FetchOpportunities]
actionPermission: {
'FetchAccounts': {
'menuGroup': 'Remote',
'roles': [
'Owner'
]
},
'FetchOpportunities': {
'menuGroup': 'Remote',
'roles': [
'Owner'
]
},
'FetchEvents': {
'menuGroup': 'Remote',
'roles': [
'Owner'
],
'deviceSizes': [
'desktop',
'mobile'
]
},
'FetchTasks': {
'menuGroup': 'Remote',
'roles': [
'Owner'
],
'deviceSizes': [
'desktop',
'mobile'
]
}
}
}