CW Manage – Pushing Passwords via Closed Loop

Quinntin Comer Automate 1 Comment

Typically, pushing passwords to a Contact can be quite time consuming and requires multiple steps. While there are numerous ways to achieve this and this can be branched out into multiple steps or methods making it more secure, this is an example and framework provided to you to show you what is possible.

Per the norm: This is VERY rough draft and I will be cleaning it up and providing more context to it. I have had several requests for this so trying to get some basic information out there.

Useful Information/Links

  • Postman – Postman makes getting started with API and API Development a breeze. For a newbie, they make it very easy and there is a lot of documentation and guides out there surrounding Postman in use for testing and developing with numerous APIs.
  • ConnectWise Developer Network – This website provides access to the API library, database library and everything else you could desire for getting started with developing/automating/reporting from the ConnectWise suite. Best part — its FREE.
  • MSPGeek (Formerly LabTechGeek) Community – This community is a good resource for “all things ConnectWise” and is a fantastic resource for anyone new to the community.
  • Base64Encode – This website is useful for generating your authorization token instead of using Basic authentication.



Preparing your Custom Field

  1. Create a custom field to set that the time entry is a “Password Push” and contains the password you want to send.
    1. System > Setup Tables. Under “Table” filter to “Custom Fields
    2. Under “Custom Fields“, select the following – Screen: “Time Entry” and Pod Description: “Time Details”
    3. Click the “+” sign to create a new Custom Field.
    4. Fill in the Custom Field with the following information:
      1. Field Caption: Password Push
      2. Help Text: Check this box to notate this is a password that needs to be pushed.
      3. Field Type: Checkbox
      4. Display on Screen: True
      5. Include in List View: True
      6. Select your desired locations and departments that this should be visible at.

Create Zapier Workflow

I am not going to deep dive into the specifics of Zapier. However, you will need a paid account as this is a multi-step Zap.

  1. Create a new Zap and give it a meaningful name, something like “CW Manage: Password Push
  2. For Step 1, create a “Webhooks by Zapier” item with the Trigger Event of “Catch Hook
    1. Notate the “Custom Webhook URL“. We will need this later for our CW Callback.
  3. Create a “Formatter by Zapier” step with the Action Event of “Utilities”. We Will use this to hold our CW API information for use in multiple steps as variables.
    1. Fill in the step with the following information:
      1. Transform: Line Itemizer (Create/Append/Prepend)
      2. Values (Line-Item(s) Group Name: CWAPIAuthentication
      3. Line-Item Properties:
        1. Authentication: Provide your Basic Authentication info (companyid+publickey|privatekey)
        2. Client ID: Your client ID from the CW Developer site
  4. Create a new “Webhooks by Zapier” step with the Action Event of “Custom Request
    1. Fill in the Details of your request:
      1. Method: Get
      2. URL: <YourURL>/4_6_release/apis/3.0/Time/Entries/<Step1:ID> (If you are cloud <YourURL> would be
      3. Basic Auth: <Step2:Authentication>
      4. Headers:
        1. ClientID: <Step2:ClientID>
        2. Content-type: application/json
  5. Create a “Filter by Zapier” step for “Only continue if…
    1. <Step1>Custom Fields Value: (Text) is in: True
    2. Entity Notes: (Text) Does not contain: Here is a link to your
  6. Create a “Webhooks by Zapier” with Action Event “Custom Request” to gather ticket details.
  7. Create another “Webhooks by Zapier” with an “Action Event” of Custom Request to get details about the member making the time entry(ies).
  8. Now, we will create an action to POST the password from the time entry to PWPush to retrieve the link to the secure password and additional details. Application: “Webhooks by Zapier” and “Action Event” of Custom Request.
  9. Our next step will be to convert the time to ConnectWise time. Create a “Formatter by Zapier” step with the “Action Event” of Date/Time.
  10. Our last and final step is to post the link to the PWPush encrypted password into a time entry and email it to the client using “Closed Loop”.
  11. Create a “Webhooks by Zapier” app with “Action Event” of Custom Request. You will use a POST Method.

Creating the “Callback” to send the details

  1. Open ConnectWise Manage
  2. Navigate to Setup Tables > Integration Login
  3. Create a new login
  4. Give it access to “all records
  5. Under Schedule: Input the webhook URL from Step 1 when we created the step to Catch it in Zapier.

Final Result/Overview

Your final outline should look like this:

Sharing link for the Zap

Coming ASAP.

Comments 1

  1. Hi Quinntin,

    You are a wizard but I need a little help!!!! Sorry I am posting here but I am trying to post to the following link but am getting website errors:

    I have followed your guide (I am based in the uk so I have to use in the page data section)

    I Then copied the following for the all data section:
    let AllData =
    let Source = List.Generate( ()=> [Result= try PageData(1) otherwise null, PageNumber = 1], each List.Count([Result]) >1, each [Result= try PageData([PageNumber]) otherwise null, PageNumber = [PageNumber] +1], each [Result])

    This brings up
    1 Error

    When I try to expand to a table I get the following Error:

    Expression.Error: We cannot convert the value null to type List.

    Any advice would be amazing

Leave a Reply

Your email address will not be published. Required fields are marked *