# ConnectWise PSA Agreement Mapping Crate

{% hint style="info" %}
If you’re new to Crates, read through our introductory Crate documentation [here](https://docs.rewst.help/prebuilt-automations/crates). Find the Crate in our Crate Marketplace.
{% endhint %}

## What does the ConnectWise PSA Agreement Mapping Crate do?

Our ConnectWise PSA Agreement Mapping Crate synchronizes users into Connectwise PSA agreement additions by license, department, or group membership. This Crate allows a user to map user groupings to those agreements to facilitate automated billing reconciliation, based on a selection of criteria. Based on the user categorization, these can be mapped to existing additions in the agreements, to populate the **Quantity** field for those additions.

## Crate prerequisites

Before unpacking this Crate:

* Rewst’s [ConnectWise PSA integration](https://docs.rewst.help/documentation/integrations/integration-guides/connectwise-integration-setup) must be set up.
* The [Microsoft Cloud Integration Bundle](https://docs.rewst.help/documentation/integrations/integration-guides/microsoft-cloud-integration-bundle), which contains our Microsoft Graph integration, must be successfully set up.

## Unpack the ConnectWise PSA Agreement Mapping Crate

1. Navigate to **Marketplace > Crates** in the left side menu of the Rewst platform.
2. Search for `ConnectWise PSA Agreement Mapping`.\
   \
   ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FMMZau6reCFIYhQIllWhS%2Fimage.png?alt=media\&token=112fc6fe-617a-426b-9c61-ea9949123b6e)
3. Click on the Crate tile to begin unpacking.
4. Click **Unpack Crate**.

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2Fwcn3Rq99HnUL1gAzrZp8%2FScreenshot%202025-03-27%20at%2012.36.16%E2%80%AFPM.png?alt=media&#x26;token=a5c00bfd-038c-4604-a3e7-18d663b4d835" alt=""><figcaption></figcaption></figure>

5. Enter **Time Saved**.&#x20;
6. Click **Unpack**.

### Test the Crate

{% hint style="info" %}
A form unpacked from this Crate is used to maintain mappings between environments and PSA agreements. These are stored in organizational variables in Rewst, based on the form inputs.&#x20;
{% endhint %}

1. Navigate to **Automations > Workflows**.
2. Search for **Map Organization Users to Manage Agreement**. Click on the workflow.<br>

   <figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FtA0lFZyJX5m0kz2l90Y3%2Fimage%20(46).png?alt=media&#x26;token=1dd3210e-4441-4765-a2b6-bc6c7b464d80" alt=""><figcaption></figcaption></figure>
3. Click the trigger drop-down and select **Form Trigger.**\
   \
   ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2Fw80oHCW6p1ktcRNz1Kvg%2Fimage.png?alt=media\&token=e6e2f1b4-136a-4931-b368-168f16aabbd1)
4. &#x20;Click ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FEwM1tmPA63y68OCAWpCW%2Fimage.png?alt=media\&token=f96dd661-cd8a-4dc9-8fe4-9c0b8890eed0).&#x20;
5. Click **View Direct URLs**.
6. Copy the form URL and paste it in a different browser window.\
   \
   ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2Fzg1h3dr6jMIKWOyAzmgi%2Fimage%20\(47\).png?alt=media\&token=a34da98d-cf68-49c7-b757-d0f2f52485df)
7. Fill out the form to add, modify, or remove an agreement--see the below section for information on what each selection does. Once the form is fully filled out, click **Submit**.

{% hint style="warning" %}
Note: Once an agreement has been added, a cron trigger runs daily to sync users for each company that has been mapped.
{% endhint %}

## **Map Organization Users to Manage Agreement form information**

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FSRnS1H4R738ysj80oq8m%2FScreenshot%202025-03-27%20at%205.11.29%E2%80%AFPM.png?alt=media&#x26;token=1a469b83-d6fb-4414-8e7a-a46062d8e6aa" alt=""><figcaption></figcaption></figure>

From the MSP organization, use this form to **Add**, **Modify**, or **Remove** a mapping configuration. When adding or modifying a mapping, you'll make the following choices:

* **Customer**: This will be from the list of PSA clients
* **Agreement**: PSA Agreement which we will be mapping users to
* **Line Item**: Also known as the Agreement Addition, this is the item which will have its quantity determined by the collection process
* **Mapping Type**:
  * **Group**: Choose this to map users according to membership within an EntraAD Group
  * **License**: Use this to map the users according to a Microsoft 365 License that is applied to them
  * **Department**: This will use the **Department** field as it is filled in users' EntraAD properties
* Depending on the mapping type, you'll be presented with a field to choose from the options that are available in the specific customer's environment to map users by: **Group**, **License**, or **Department**.
* **Sync User Names into Description**: If you enable this, the actual names of the users will be put into the **Description** field of each addition.
* **Split User Names by**: This will allow you to choose between **Comma** and **New Line** to fine-tune how the list of users appears on the invoice. Commas will use fewer lines when you have many users, but new line may be easier to read.

## Limitations

* **Department** fields are free-form text. If you aren't automating the filling-in of these, there's always the chance that spellings or formatting may vary, resulting in incomplete data.
* The **Description** field in PSA Agreement Additions is limited to 6000 characters. Large sets of users can easily exceed that maximum and usernames won't appear in the Addition. When this happens, an email will be sent to the person who created the mapping to let them know that this is the case.&#x20;

{% hint style="info" %}
Got an idea for a new Crate? Rewst is constantly adding new Crates to our Crate Marketplace. Submit your idea or upvote existing ideas here in our [Canny feedback collector](https://rewst.canny.io/crates).
{% endhint %}
