Skip to main content

Turn Microsoft 365 Events Into Syncro Tickets With a Power Automate Custom Connector

Nick Ross4 min read

TL;DR

  • A Power Automate custom connector wraps Syncro's REST API so flows in customer tenants can create tickets, and Syncro events can drive actions in Microsoft 365.
  • The connector authenticates with an API key passed in an Authorization header, and the connection value must be entered as the word Bearer, a space, then the API key.
  • Actions are defined by importing a sample POST request from Syncro's API documentation, so testing calls in Postman first tells you exactly which fields you need.
  • Static fields like Content-Type and customer_id can be given default values, marked required, and set to internal so nobody can change them in a flow.
  • Power Automate ships with most Microsoft 365 plans, but the connector must be created per customer environment.

Every MSP has a list of small, repetitive bridges between Microsoft 365 and the PSA that nobody has automated yet. Power Automate closes a lot of them: it builds workflows across applications from basic triggers and actions, and custom connectors let you bring any REST API into those flows. This walkthrough builds Syncro as a custom connector, then defines a create-ticket action as the working example. Once it exists, events in customer tenants can raise tickets in Syncro, and triggers can run the other way too, a new contact in Syncro creating a user in Azure AD, for instance.

What you need before you start

Fair warning: this is a more advanced build because everything happens against APIs. If you have no experience there, the time investment may not pay off. Beyond that:

  • A Power Automate subscription per customer, since the connector is created inside each customer environment. Power Automate comes with most Microsoft 365 plans.
  • An API key (opens in new tab) created in your Syncro environment with the permissions for the actions you plan to build (Tickets - Create if you want to create tickets).
  • Access to and familiarity with Syncro's REST API (opens in new tab).
  • Postman. We use it to test the API calls and grab the IDs the actions will need, like the customer ID for new tickets.

Build the connector shell

Log in to Power Automate and select Data > Custom Connectors.

Power Automate Data menu showing Custom Connectors

Select + New Custom Connector > Create from blank.

Creating a new custom connector from blank

On the General page:

  • Upload an image (optional).
  • Provide a description (optional).
  • In the host section, enter the URL you use to sign in to Syncro.
  • In the Base URL, add /api/v1.
  • Click Security.
Connector general settings with host and base URL

Set up API key authentication

  • Choose API Key as the authentication type.
  • Enter a parameter label of api-key.
  • For the parameter name, enter Authorization.
  • Click Definition.
Security page configured for API key authentication

Define the create-ticket action

Definitions are where you declare Syncro actions and triggers, and you can create as many as you want. For the ticket action, select + New action and fill in the summary fields:

New action definition for creating a Syncro ticket

Then, under Request, select + Import from sample:

  • Select POST.
  • For the URL, use the format https://yourSubdomain.syncromsp.com/api/v1/tickets. This request URL is specific to tickets.
  • In the body, paste the example value for a POST request from Syncro's API documentation. This is where you decide which fields the ticket action exposes. Some are required, subject, customer_id, body, which is exactly why testing in Postman first is worth it: you learn what each call actually needs. If you already know the workflows that will use this action, trim the body to only the fields you want in the ticket and skip the clutter.
  • With the body entered, click Import.
Import from sample dialog with POST request body
Imported request showing headers and body fields

Lock down the static fields

With the request template in place, you can modify the headers and body fields. This matters for values that never change: give them defaults, make them required, and set them to internal so nobody can alter them when building a flow. We will do that for Content-Type and customer_id.

Click the three dots next to Content-Type and click Edit.

Editing the Content-Type header field

Fill out Content-Type as below, default value set, required, internal:

Content-Type field configured with default value and internal visibility

Click the back arrow, then edit the body. You will see every field from your JSON. Edit customer_id and prepopulate it with the correct customer ID; this customer should match the tenant you are building the connector in.

Editing the customer_id body field with a prepopulated value

Postman earns its keep here: use the customers call to read the unique IDs of your customers.

Postman customers call returning customer IDs

Before testing, consider marking Body and Subject as required inputs for the action. Note that tickets carry two subjects, one for the main ticket and one for the first comment, so give one of them a default value or a distinguishing title.

Configuring required body and subject fields for the action

Once every field is saved, click Create connector.

Create connector button after saving all fields

Test it against your Syncro environment

After the success message, click Test > + New connection.

Test tab prompting for a new connection

You will be asked for the API key from the prerequisites. The format of this entry is critical: type Bearer, a space, then the API key. Then click Create connection.

Connection dialog where the Bearer-prefixed API key is entered

On the following page, click refresh to see the connection you just set up.

Refreshed connections list showing the new Syncro connection

You will now see all the fields from your JSON body. Enter sample values and click Test operation.

Test operation form populated with sample ticket values

A 200 status with the body of the ticket you just created means success. An error usually means one of two things:

  1. A required field for the API call was left empty, and the error names it (Subject, for example).
  2. An unauthorized error, which means the API key was entered in the wrong format or was never granted the Syncro permissions for this call.
Successful 200 response from the test operation

Back in Syncro, the ticket generated by the test event is waiting:

Test-generated ticket visible in Syncro
Ticket detail showing the fields entered in Power Automate

Use it in a flow

When you build a flow, select Custom to find your connector. Clicking into it shows every action and trigger you have created.

Custom tab in flow builder showing the Syncro connector
Connector actions and triggers available inside a flow

From here, the pattern repeats: every Syncro endpoint you care about becomes another action or trigger, and every manual bridge between Microsoft 365 and your PSA becomes a candidate for a flow.

Frequently asked questions

Why does the test return an unauthorized error?

Either the API key was entered in the wrong format, it must be Bearer, a space, then the key, or the API key was not granted the Syncro permissions needed for the call, such as Tickets - Create.

Can the connector handle triggers from Syncro as well as actions?

Yes. Triggers can be set up from Syncro, such as a new contact being created, that generate actions in Microsoft 365 like creating a user in Azure AD. The definition step supports both triggers and actions.

Why do tickets have two subject fields?

Syncro's ticket model has one subject for the ticket itself and another for the first comment. Give one of them a default value or a distinct title so people building flows can tell them apart.

Automate the response. Know what to respond to.

A connector can file the ticket, but something has to spot the problem first. CloudCapsule scans 250+ Microsoft 365 controls per tenant in about 60 seconds and hands your automation real findings to work with.

See the features
Nick Ross

Written by

Nick Ross

CEO · Microsoft MVP · Founder, T-Minus 365

Nick is not just a CEO, he's a respected thought leader and influencer in the MSP space. Tens of thousands of MSPs learn through his YouTube channel, T-Minus365. Nick has been honored as a three-time Microsoft MVP for his educational content; his expertise and influence are the backbone of our mission, ensuring that you are in the best hands when it comes to security.

Nick joined Pax8 in 2017, where he would ultimately oversee product management for PSA and Microsoft integrations. Following his tenure at Pax8, Nick has continued to demonstrate his leadership prowess as an executive at various MSPs, culminating in his most recent role at Sourcepass.

Nick holds a Bachelor's Degree in Business Management from Florida State University, as well as a Minor Degree in Entrepreneurship. In his free time, Nick is an avid hiker, reader, and fitness-junkie.

Keep reading