Here are some recommended best practices for designing integrations in IICS.
## Working In a Shared Environment
UW-Madison operates under a single shared IICS org for each environment (test and production).
This means that you might see other objects in IICS, such as projects, connections, and schedules, that belong to other areas of the university.
### Use User Groups to Control Access
When you create a new project, make sure you edit the permissions to limit who can view and change the assets within the project.
**If no permissions are configured on a project or the assets within it, anybody who has access to IICS will be able to view, change, run, and delete the contents of the project.**
Use the group that was sent when you were granted access to IICS to control who can access the contents of the project.
1. Right-click on a project folder and click "Permissions..." 
1. Click "Add" to add bring up the group selection menu. 
1. Select the group for your team and click "Add". 
1. Click the check boxes for Read, Update, Delete, Execute, and Change Permission. 
1. Click Save.
### Namespace Projects With Your Group Name
Even though you might not have any permissions on a project, you are still able to see that the project exists when exploring all projects.
To help organize the constantly growing list of projects, we recommend that you to prefix your group name before the name of the project: `{group name} - {project name}`
| Secure Agent Group |<ul><li>Use logical names for groups</li><li>Use uppercase, and use underscore to separate words</li><li>Use documented abbreviations</li><li>Name structure: `<group_logical_name>`</li></ul> |<ul>`ODMAS`</ul><ul>`DCS`</ul><ul>`BATCH_PROCESSING_AGENT_GROUP`</ul>|
| Secure Agent | <ul><li>Name Secure Agents using logical names rather than host names</li><li>This way agents can be migrated easily to a different host</li><li>Use lowercase, and use underscore to separate words</li><li>Name structure: `<group>_<agent_logical_name>`</li></ul>|<ul>`ODMAS_test_agent`</ul><ul>`DCS_prod_agent`</ul><ul>`batch_processing_agent`</ul>|
| Connections|<ul><li>Use documented abbreviations and use upper case for abbreviations</li>Use logical names<li>Use underscore to separate words</li><li>Generic name structure: `<ConnectionType>_<logical_name>_<flag(s)>`<ul><li>Database: `<db_type>_<logical_name>_<schema_name>`</li><li>Flat File: `FF_<logical_name>_<folder_name>`</li></ul></li>| <ul>`ORCL_siebel_contact_center`</ul><ul>`FF_salesforce_lookups`</ul><ul>`ODBC_Accounting`</ul>|
| Tasks |<ul><li>Use underscore to separate words</li><li>Include task operation in the name.</li><li>Use consistent naming for different type of tasks</li><li>Name structure: `DSS_<SOURCE>_<TARGET>_<NAME>_(INSERT|UPDATE|DELETE)_<VERSION>`</li></ul> |<ul>`DSS_Salesforce_Workday_Accounts_UPDATE_01`</ul><ul>`DSS_Salesforce_Workday_Accounts_UPDATE_02`</ul><ul>`DSS_Coupa_SAP_Requisition_NA_INSERT`</ul>|
| Mappings | <ul><li>Use underscore to separate words</li><li>Use consistent naming for different type of mappings</li><li>Name structure:<ul><li>Mapping with single source: `M_<SOURCE>_<TARGET>_<NAME>_<VERSION>`</li><li>Mapping with multiple sources: `M_<SOURCE>_<ENTITY>_to_<TARGET>_<NAME>_<VERSION>`</li></ul></li></ul>|<ul>`M_CDI_Accounts_FF_incremental`</ul><ul>`M_CDI_Accounts_Contacts_to_SFDC`</ul>|
| Task Flows | <ul><li>Use underscore to separate words</li><li>Use consistent and readable(mix case) naming</li><li>Name structure: `TF_<NAME>_<VERSION>`</li></ul>|<ul>`TF_CDI_Acount_Contacts_to_SFDC`</ul><ul>`TF_Hierarchy_Change_Processing`</ul>|
| Schedulers | <ul><li>Use underscore to separate words</li><li>Use consistent and readable(mix case) naming</li><li>Name structure: `Schedule_<TIMEZONE>_<Frequency>_<TIME>`</li></ul>|<ul>`Schedule_Five_Minutes`</ul><ul>`Schedule_PST_Daily_11PM`</ul>|
UW-Madison operates under a single shared IICS org for each environment (test and production).
This means that you might see other objects in IICS, such as projects, connections, and schedules, that belong to other areas of the university.
## Use User Groups to Control Access
When you create a new project, make sure you edit the permissions to limit who can view and change the assets within the project.
**If no permissions are configured on a project or the assets within it, anybody who has access to IICS will be able to view, change, run, and delete the contents of the project.**
Use the group that was sent when you were granted access to IICS to control who can access the contents of the project.
1. Right-click on a project folder and click "Permissions..." 
1. Click "Add" to add bring up the group selection menu. 
1. Select the group for your team and click "Add". 
1. Click the check boxes for Read, Update, Delete, Execute, and Change Permission. 
1. Click Save.
## Namespace Projects With Your Group Name
Even though you might not have any permissions on a project, you are still able to see that the project exists when exploring all projects.
To help organize the constantly growing list of projects, we recommend that you to prefix your group name before the name of the project: `{group name} - {project name}`