Manage API: Integration with Zapier

Quinntin Comer Uncategorized Leave a Comment

I have been seeing a lot of people posting and having issues with the limitations of the native ConnectWise module in Zapier. The answer? Use webhooks! Webhooks open the door to completely customized automation and they’re natively supported in both platforms.

What are webhooks?

Webhooks are one way that apps can send automated messages or information to other apps. It’s how PayPal tells your accounting app when your clients pay you, how Twilio routes phone calls to your number, and how WooCommerce can notify you about new orders in Slack.

They’re a simple way your online accounts can “speak” to each other and get notified automatically when something new happens. In many cases, you’ll need to know how to use webhooks if you want to automatically push data from one app to another.

Getting Started

Refer to the following blog post where we went over getting started with the Manage API:

Now that you have the basic API member configured and you have tested it, its time to get to work.

In our example, we will take a new ticket notification and post it to a Teams channel using Zapier.


A few requirements will be needed for this:


  1. In Zapier, create a new Zap.
    1. For your event trigger, Add a “Webhook”.
    2. Select “Catch Hooks” as the trigger event and press “Continue”
    3. Under “Customize Hook” > Copy the Custom Webhook URL
  2. In Microsoft Teams > Go to the Channel where you want your card posted.
    1. Click the 3 dots next to the channel name > then click Connectors
    2. Select Incoming Webhook
    3. Give it a name and image (if youd like). Press Create
    4. Copy the Webhook URL
  3. In ConnectWise Manage, Configure an Integrator Login and a Callback for “Service Ticket”.
    1. In ConnectWise Manage > System > Setup Tables > Table: Integrator Login.
    2. Create a New Integrator Login
    3. Select the following:
      1. Give it a username and password (this is not important so pick anything)
      2. Access Level: All Records
      3. Select the “Service Ticket”. Paste the Webhook URL from Zapier into the “Callback URL” field. Filter to the Service Board you want to see tickets from. I have noticed this does not work with our boards, so you may need to filter within Zapier workflow.
      4. Create a new ticket in CW Manage
      5. In Zapier, click Test & Review and verify the ticket data is coming across.
      6. Voila! We are now sending data to Zapier.
      7. Add another Action step, this time select “Filter”
        1. Set “Only Continue If”…
        2. Select “Entity Board Name” from the Catch Hook step.
        3. (Text) starts with
        4. Specify for your board.
      8. In Zapier, Add an Action. There is a “Teams” module but it is extremely inflexible and offers no formatting. So we will use a Webhook again to send JSON data.
      9. Select Webhooks as the App. For Choose Action Event > Custom Request.
      10. Under Customize Custom Request, fill out the following:
        1. Method: Post
        2. URL: Use the URL you captured earlier from MS Teams.
        3. Data (example) below. This will format the card being sent over to Teams. You will want to fill in each area with your specific variables and formatting. Everything in {{}} is a Zapier variable. To change them you can click one of the variables and the underneath the editor window select Step 1 “Catch Hook” and then select the desired variable. To add variables, hit the + sign at the top right.
  "summary": "New Help Desk Ticket Received!",
  "themeColor": "0078D7",
  "title": "New Help Desk Ticket Received!",
"sections": [
      "activityTitle": "**Ticket #:** {{59042946__ID}} with **Summary:** {{59042946__Entity__Summary}}!",
      "activitySubtitle": "We have received a new ticket from **{{59042946__Entity__ContactName}}** at **{{59042946__Entity__CompanyName}}**",
	  "activityText":"**Priority:** {{59042946__Entity__Priority}} | **Status:** {{59042946__Entity__StatusName}}",
      "facts": [
          "name": "Ticket Number:",
          "value": "{{59042946__ID}}"
          "name": "Ticket Summary:",
          "value": "{{59042946__Entity__Summary}}"

      "text":"**Ticket Description:**  \r \n {{59322707__text}}"
  "potentialAction": [
      "@type": "OpenUri",
      "name": "View in CW Manage",
      "targets": [
        { "os": "default", "uri": "{{59042946__ID}}&companyName=<INPUTYOURCOMPANYNAME>" }

Leave a Reply

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