# 1Stream Technician Toolbox 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 1Stream Technician Toolbox Crate do?**

The 1Stream Technician Toolbox Crate allows you to launch Rewst forms directly from within the 1Stream interface. Improve response times, reduce manual data entry, and increase service desk efficiency. When configured, technicians can open relevant Rewst forms— such as password reset, onboarding, offboarding, MFA reset, or group membership forms— from within 1Stream with ticket, company, and contact data automatically populated from the PSA. This enables technicians to quickly execute automations without switching between multiple tools or windows. The Crate is flexible, allowing for additional forms to be added in the future by customizing the included workflow logic.

### **How the Crate works**

* The Crate is triggered through a webhook trigger that's called when a technician in 1Stream selects a Rewst action, such as User Offboarding or Password Reset.
* When invoked, 1Stream passes key data to Rewst through a screen pop URL.
* Rewst then launches the associated form for the selected workflow and pre-fills as many of the form fields as possible with the related information from the PSA.
* Once the technician completes and submits the form in Rewst, the workflow corresponding to that form executes as normal.

{% hint style="info" %}
If additional Crates are added later, this workflow can be extended to include those new forms with minimal changes to the core setup.
{% endhint %}

### **Workflow breakdown**

1. The workflow begins with the **START** task which initializes the process by setting up valid identity provider configurations, extracting input parameters including company ID, contact ID, selected form name, and ticket ID, and defining the list of supported forms for the toolbox.
2. The **valid\_idp\_check** task validates that the identity provider configuration is supported and that required parameters are present, ensuring the workflow can proceed with proper authentication and user identification.
3. The **check\_required\_params** task verifies that both company ID and contact ID parameters are provided, as these are essential for retrieving user information from the PSA system.
4. The **list\_org\_vars** task retrieves organization variables from the Rewst platform to access configuration settings needed for mapping PSA companies to Rewst organizations.
5. The **filter\_company\_mappings** task processes the organization variables to find mappings between the provided company ID and corresponding Rewst organization configurations, creating a filtered list of relevant company mappings.
6. The **get\_psa\_mapping** task extracts the specific PSA mapping information from the filtered results, establishing the connection between the PSA company and the target Rewst organization.
7. The **get\_psa\_contact\_data** task retrieves detailed contact information from the PSA system using the company and contact IDs, gathering user details such as name, email, phone, and address information.
8. The **determine\_idp** task analyzes the identity provider configuration to determine whether the user should be processed through Azure AD, on-premises Active Directory, or Secure Cloud authentication systems.
9. For Azure AD configurations, the **check\_form\_entra** task evaluates the selected form type to determine if it requires Azure AD user lookup for forms like mailbox permissions, user offboarding, MFA reset, or group membership.
10. For on-premises configurations, the **check\_form\_on\_prem** task checks the selected form type and handles different authentication paths for password reset and user offboarding scenarios.
11. The **m365\_get\_user** task performs a Microsoft Graph API lookup to retrieve the user's Azure AD information when processing forms that require cloud-based user identification.
12. The **rewst\_list\_forms** task queries the Rewst platform to retrieve available forms that match the selected form types, building a list of accessible automation forms for the organization.
13. The **create\_link** task constructs the initial form URL by matching the selected form name with available forms in the organization and generating the appropriate form link structure.
14. The **check\_pre\_form\_link** task validates that a form link was successfully created and handles cases where the required form may not be installed or available in the organization.
15. The **select\_link** task customizes the form URL with specific parameters based on the form type, adding user identifiers, ticket information, and organization details as query parameters.
16. The **check\_link** task performs a final validation to ensure the complete form link was generated successfully with all required parameters.
17. The workflow concludes with the **END** task, which compiles a comprehensive automation log containing status codes, success indicators, error details, and warnings from all executed tasks.
18. If any critical errors occur during execution, the **failure\_catch** task provides centralized error handling and generates a link to the workflow execution results for troubleshooting.
19. For missing parameters, the **missing\_param** task creates detailed error messages indicating which required parameters were not provided, helping users understand what information is needed for successful execution.

### **Supported Crates and prerequisites**

#### Rewst forms currently supported in the Crate

* **password\_reset** - unpacked from the [Change a User's Password Crate](https://docs.rewst.help/documentation/crates/existing-crate-documentation/change-a-users-password-crate)
* **user\_onboarding** - unpacked from the [Microsoft: User Onboarding Crate](https://docs.rewst.help/documentation/crates/existing-crate-documentation/microsoft-user-onboarding-crate-v2)&#x20;
* **user\_offboarding** - unpacked from the [Microsoft: User Offboarding Crate](https://docs.rewst.help/documentation/crates/existing-crate-documentation/microsoft-user-offboarding-crate)
* **reset\_mfa** - unpacked from the [Reset Microsoft MFA Crate](https://docs.rewst.help/documentation/crates/existing-crate-documentation/reset-microsoft-mfa-crate)
* **group\_membership** - unpacked from the [Add or Remove Group Membership Crate](https://docs.rewst.help/documentation/crates/existing-crate-documentation/add-or-remove-group-membership-crate)

#### **Rewst prerequisites**

Ensure that the following integrations are already configured and [mapped](https://docs.rewst.help/documentation/configuration/integrations#how-to-map-organizations-org-mapping) in Rewst before using this Crate:

* Your [PSA integration](https://docs.rewst.help/integrations/top-5-integration-types-get-started-with-integrations-in-rewst#psa-integrations)&#x20;
* Each of the supported forms is unpacked from its relevant Crate and added to your Rewst instance. The specified Crates must be unpacked before unpacking this 1Stream Crate. Otherwise, clicking the link will take you directly to the relevant Crate so you can unpack it.
* The specified Crates containing the supported forms must be configured as per their individual specifications in order to function when submitted.

#### **1Stream prerequisites**

Before unpacking this Crate, ensure that the following are set up in your 1Stream interface:

* PSA Integration configured in 1Stream - This allows 1Stream to pass ticket, contact, and company information to Rewst.
* Access to the 1Stream administration menu - You’ll need administrative permissions to modify Connected Accounts and CRM settings.
* Partner portal access - You'll need the ability to log in to 1Stream via IQ / Integrations Portal.

{% hint style="info" %}
Note that since you can choose which of the supported forms is used for 1Stream, the Rewst prerequisite checker in your Crate details page will not block you from unpacking the 1Stream Technician Toolbox Crate if the prerequisite Crates needed to unpack their relevant forms are not successfully unpacked in Rewst. To determine if you have these Crates and forms unpacked:

1. Determine which forms you wish to use for the 1Stream Technician Toolbox Crate.
2. Navigate to **Crates > Crate Marketplace** in the left side menu of your Rewst platform.
3. Search for each of the Crates related to your desired forms.
4. Ensure that their status is listed as **Unpacked**.
5. Click on that Crate's **What's being unpacked** tab of the Crate details page.
6. Scroll to the **Forms** section. Here you'll see a clickable link to the form for that Crate.
   {% endhint %}

## **Unpack the 1Stream Technician Toolbox Crate**

1. Navigate to **Marketplace** **> Crates** in the left side menu of your Rewst platform.
2. Search for `1Stream Technician Toolbox`.\
   \
   ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FQZ8n0ubiQR089ucX6IH3%2FScreenshot%202025-11-04%20at%2010.01.45%E2%80%AFAM.png?alt=media\&token=85d09eb8-6d58-48f2-80d5-1db0ee14dff4)
3. Click on the Crate tile to begin unpacking.
4. Click **Continue**.
5. Expand the **Webhook** accordion menu under **Configure Triggers.**
6. Ensure that **Enabled** is toggled on. Note that you have the option to activate the Crate for all future organizations in addition to the current one. Current org-only is the default. You may also set activation to certain [tags](https://docs.rewst.help/documentation/settings/tags-in-rewst), organizations, or [trigger criteria](https://docs.rewst.help/documentation/automations/intro-to-triggers/trigger-criteria).
7. Click **Unpack**.

### **Configure 1Stream and Rewst**

1. Log in to 1Stream.
2. Click the **IQ / Integrations Portal** link under **Partners**.

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FG2Xw4P4E8DmO1U5kzYDC%2Fimage.png?alt=media&#x26;token=2ce6a86f-3fc9-4a90-a454-aacde0a73136" alt=""><figcaption></figcaption></figure>

3. Click **Administration >** **Manage Organization**.

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FY6wTL9T7JOgMWJlDzlvI%2Fimage.png?alt=media&#x26;token=206de71a-0ff1-4d7b-a52a-cb0451fbaa89" alt=""><figcaption></figcaption></figure>

4. Scroll down to **Connected Account and CRM settings**.
5. Click <img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FTx6f6pgTAfjYqU6Fj7fW%2FScreenshot%202025-11-04%20at%2010.28.05%E2%80%AFAM.png?alt=media&#x26;token=453a6af4-45bd-4309-acc0-5d808c91381b" alt="" data-size="line">.
6. Choose **Rewst** from the **CRM Platform** drop-down selector in the dialog that appears.\
   ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FQ75x3J0d4tTIp7L6OFO1%2FScreenshot%202025-11-04%20at%2010.28.31%E2%80%AFAM.png?alt=media\&token=132a71ec-bad1-4e5b-bf9e-bbae74736e1b)
7. Click **Save**.
8. Optionally, add an **API Key**. This would be used for the specific webhook in the Crate's workflow.
   1. Click <img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FTx6f6pgTAfjYqU6Fj7fW%2FScreenshot%202025-11-04%20at%2010.28.05%E2%80%AFAM.png?alt=media&#x26;token=453a6af4-45bd-4309-acc0-5d808c91381b" alt="" data-size="line"> under the **Client API Keys** menu.
   2. Enter any desired value into the **Reference Name** field.
   3. Click **Save**.
   4. Copy the value for the API Key. Once you navigate away from the dialog that displays this information, you won't be able to view the key again.
9. Scroll down to the **Screen Pop URLs** submenu.
10. Click <img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FTx6f6pgTAfjYqU6Fj7fW%2FScreenshot%202025-11-04%20at%2010.28.05%E2%80%AFAM.png?alt=media&#x26;token=453a6af4-45bd-4309-acc0-5d808c91381b" alt="" data-size="line">. Enter the name of the form you will be using into the **Link Name** field. Click **Save**.
11. Set the **Link Type** to **Custom**.&#x20;
12. Set the **Status** to **Active**, and **Do Screen Pop** to **Yes**.\
    ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2F8hrpxZh9Jvh3Kesup2of%2FScreenshot%202025-11-04%20at%2010.35.29%E2%80%AFAM.png?alt=media\&token=8d3a7f76-ef30-462c-83ec-fe3271fca72b)
13. Enter each of the URLs referenced in the table below into the **Link Template** field, replacing `{rewst_webhook_url}` with your actual Rewst webhook URL. This can be found by navigating to the `[REWST - TASK] 1Stream Technician Toolbox` workflow unpacked with the Crate, opening the workflow's settings, and scrolling to the **Trigger Configuration** menu. Then, click **View Webhook URLs**.

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FQ4BnT7C52zqdHywsIAP0%2Fimage.png?alt=media&#x26;token=f4c6394b-2d84-4913-b622-3d4513c3ac50" alt=""><figcaption><p>Example webhook URL</p></figcaption></figure>

| Form Name        | URL Format                                                                                                       |
| ---------------- | ---------------------------------------------------------------------------------------------------------------- |
| Password Reset   | `{rewst_webhook_url}?ticket_id=@ticketid&company_id=@companyid&contact_id=@contactid&form_name=password_reset`   |
| User Onboarding  | `{rewst_webhook_url}?ticket_id=@ticketid&company_id=@companyid&contact_id=@contactid&form_name=user_onboarding`  |
| User Offboarding | `{rewst_webhook_url}?ticket_id=@ticketid&company_id=@companyid&contact_id=@contactid&form_name=user_offboarding` |
| Reset MFA        | `{rewst_webhook_url}?ticket_id=@ticketid&company_id=@companyid&contact_id=@contactid&form_name=reset_mfa`        |
| Group Membership | `{rewst_webhook_url}?ticket_id=@ticketid&company_id=@companyid&contact_id=@contactid&form_name=group_membership` |

14. Optionally, add an [organization variable](https://docs.rewst.help/integrations/organization-variables#manually-add-a-new-organization-variable) in Rewst.&#x20;
    1. If you set an API Key in 1Stream, you’ll need to mirror it as a [secret org variable](https://docs.rewst.help/integrations/organization-variables#create-secret-values-for-organization-variables) in Rewst.
    2. Open the webhook trigger in the `[REWST - TASK] 1Stream Technician Toolbox` workflow.
    3. Select this secret key.&#x20;
    4. Click **Save**.

| Field            | Value                                                  |
| ---------------- | ------------------------------------------------------ |
| **Name**         | Any name                                               |
| **Value**        | Same key you used in 1Stream                           |
| **Category**     | `secret`                                               |
| **Organization** | Your top-level organization (check **Use as Default**) |

### **Use the 1Stream Technician Toolbox Crate**

Once setup is complete, technicians can trigger Rewst forms directly from 1Stream while viewing or managing a contact.

When a screen pop URL is clicked:

1. A new browser tab opens to the corresponding Rewst form.
2. The form auto-fills information from the PSA.
3. The technician completes any additional required fields and clicks **Submit**.
4. The associated Rewst workflow for that Crate executes.

After the first use, verify that forms populate correctly and trigger their workflows as expected.

If failures occur, review the **workflow execution logs** in Rewst for details.

## **Crate customization**

You can extend the functionality of the 1Stream Technician Toolbox Crate by adding new Rewst supported forms to the workflow.

### To add a new form:

1. In Rewst, open the `[REWST - TASK] 1Stream Technician Toolbox` workflow.
2. Copy one of the existing form handling branches— for example, `password_reset`.
3. Update the **form\_name** parameter in the condition node to match your new form’s internal name.
4. In 1Stream, add a new **Screen Pop URL** entry following the same URL format, replacing the `form_name` value with the new form’s name.
5. Test the new link from 1Stream to confirm that it opens your desired Rewst form and auto-fills as expected.

You can repeat this process for as many forms as desired. The logic is designed to be modular, so additional forms can be integrated without editing the core connection between 1Stream and Rewst.

{% 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 %}
