
## Workspaces:
HTTPCaller and custom transformers require a Cityworks web connection and a Cityworks instance URL. 

#### CitizenReporting.fmw
Powers the Citizen Reporting App. The workspace sends a Service Request to Cityworks with the citizen's pothole information. 
#### CreateWorkOrderAndEmail.fmw
Decodes and formats webhook response. Creates a work order in Cityworks and formats data into HTML report. 
#### StatusChecker.fmw
Retrieves data about citizen's Service Request and formats it into HTML map/table. 
#### ContractorApp.fmw
Sends contractor, labour, materials, and status updates to Cityworks. Formats responses (cost information) into HTML report.  
#### CompletionEmail.fmw
Decodes and formats webhook response. Closes Work Order and Service Request and creates HTML report with Cityworks response. 

## Automations:
Email External Action requires account details. 

#### Create Work Order and Email
Webhook trigger receives data from Cityworks when a pothole Service Request is created. Sends data to CreateWorkOrderAndEmail.fmw. The workspace's HTML is sent to citizen email parameter from a designated email address. 

#### Completion Email
Webhook trigger receives data from Cityworks when a pothole Work Order is closed. Sends data to CompletionEmail.fmw. The workspace's HTML is send to citizen email parameter from a designated email address.

## Server Apps:
#### CitizenReporting
Citizen submits date, location, contact email, and description of pothole. Parameters are passed into CitizenReporting.fmw.
#### StatusChecker
Citizen submits a Service Request ID. App runs StatusChecker.fmw and uses Data Streaming to return map and table with pothole Service Request information. 
#### ContractorApp
Contractor submits Work Order ID, date company name, hours worked, material type, and Work Order status. App runs ContractorApp.fmw and uses Data Streaming to return HTML "invoice" table. 