[Developer Blog](/developer-blog/)

# Advanced Zapier actions: using the Sharetribe Integration API in Zapier

Discover how to use the Sharetribe Integration SDK directly in Zapier, unlocking the full Integration API without a separate backend. This article walks you through the setup and a complete tutorial for building custom listing sorting on your marketplace.

Jul 9, 2026

![](https://images.prismic.io/sharetribe/_3_yroxRjh1ermxQ_miguel-a-amutio-ngZ4V-myG5s-unsplash.jpg?auto=format%2Ccompress&fit=max&w=3840)

[![Picture of Aleksi, who has short, curly brown hair is looking directly at the camera with a slight smile. They are wearing a light grey t-shirt, a thin silver chain necklace, and a small hoop earring in their left ear. The background is plain and neutral, and the photo is cropped in a hexagonal shape.](https://images.prismic.io/sharetribe/aG5Fu0MqNJQqHt4I_aleksi-job-3copy.png?auto=format%2Ccompress&fit=max&w=3840)](/author/aleksi-oconnor/)

Aleksi O'Connor

Developer Advocate

You know Zapier as an easy and simple way to connect your marketplace with other tools thanks to the Sharetribe / Zapier integration. However, it has historically exposed only a limited set of what is possible through the Integration API.

Thanks to a recent Zapier improvement which allows the use of public npm packages in JavaScript Code steps, it is now possible to use the Sharetribe Integration SDK directly inside Zapier workflows. This opens access to all Integration API capabilities without requiring a separate backend service.

In this article, you will learn how to use Sharetribe Integration SDK from your Zapier workflow.

## The Sharetribe Zapier integration and what’s new

The existing Zapier integration can do a lot already! The integration supports tracking events related to users, listings, and transactions, and it enables searching for those same entities and taking a handful of actions on your marketplace.

Read more about the default Sharetribe Zapier integration:

* [Zapier integration introduction ](https://www.sharetribe.com/help/en/articles/8529941-zapier-integration-introduction#h%5Fe975d93a59)
* [How the Sharetribe Zapier integration works](https://www.sharetribe.com/help/en/articles/8529989-how-the-sharetribe-zapier-integration-works)

Sharetribe has a wide variety of Zapier tutorials, too:

* [Zapier tutorials by Sharetribe](https://www.sharetribe.com/help/en/articles/8724997-zapier-tutorials-by-sharetribe)

However, the Sharetribe Zapier integration does not include all the Integration API operations available. For example, it does not support updating extended data in users, listings, or transactions.

This matters for a few reasons. First, for many marketplaces, a lot of information lives in extended data. Second, we recently introduced custom metadata handling for no-code marketplaces, and that can’t be updated via the default integration, yet.

Fortunately, Zapier has made some updates to how Code steps work. This makes it possible to build automations with previously unsupported Integration API operations without waiting for Sharetribe to build first-class support in the Sharetribe Zapier integration.

## New in Zapier: import public npm packages

Since March 2026, Zapier’s [JavaScript code steps can now import public npm packages](https://help.zapier.com/hc/en-us/articles/44615553287181-Extend-your-Code-steps-with-thousands-of-npm-and-PyPI-packages). Since the Sharetribe Integration SDK is available as a public npm package, this means that you can authenticate and call Integration API endpoints directly from a Zap Code step.

![Screenshot of the Zapier dashboard showing an example of how to use code as a part of the Zap](https://images.prismic.io/sharetribe/c5PrJbfFAtmgWNpY_Screenshot2026-07-09at16.26.34.png?auto=format%2Ccompress&fit=max&w=3840)

This gives users access to the full Integration API from Zapier. Instead of needing to wait for a dedicated Zapier action to be released, you can use any Integration API endpoint as a part of your Zapier flow.

Unlike many other Zapier functionalities, calling Integration API from within Zapier does mean that you need to write the code that the zap step calls. This means that you will need to be either a developer, or otherwise comfortable working with code – for example using AI coding assistants.

## Use cases

There are multiple use cases for using Integration API in Zapier on your marketplace, whether or not you are customizing the marketplace with code. For example, you can

* Feature listings after payment
* Add verification badges to profiles
* Build custom search and sorting algorithms
* Calculate response rates
* React to marketplace conversations and messaging events
* Automatically change user type
* Connect Sharetribe data to virtually any Zapier-supported system

## Plan requirements and Zapier limitations

Using Integration API in Zapier requires a Zapier paid plan, as well as a Pro or Extend plan for your Sharetribe marketplace.

If you decide to set up a zap that calls Integration API in one of the steps, do note that Zaps run asynchronously. In other words, the zap doesn’t run when the event _happens_ in your marketplace, and instead it runs when the event gets _polled_ by Zapier. For paid plans, the polling interval is 1-2 minutes, so the zap will happen within 2 minutes of the event taking place on your marketplace.

This means that if you have a zap that updates a user’s extended data after they start a transaction, and the user starts multiple transactions within the two minute window, multiple Zaps relating to the same user might be happening at the same time. This could cause race conditions. If instead you want to process the events in the strict order they happened, you can use Zapier’s [Delay after queue](https://help.zapier.com/hc/en-us/articles/8496288754829-Add-delays-to-Zap-workflows#h%5F01H919TAHMM9MFFP2TSK03W1TB) functionality.

We recommend that you also read Zapier’s own write-up on [limitations with using third-party packages in Code steps](https://help.zapier.com/hc/en-us/articles/43800622540045-Use-third-party-packages-in-Code-steps#h%5F01KJA1GJ2MWXFW2JZG56XHC6BW).

## A full example / tutorial

In this tutorial, we’ll build a custom listing sorting for an Upwork-like marketplace, in which providers post listings to advertise their services.

The search page of that marketplace displays all the providers’ profiles, ordered by default by creation date, with the most recent ones first. However, it is likely that this is not the best possible order: maybe some profiles should rank higher if the professional has been verified, or the order should depend on how many projects they’ve completed or their average review grade. The marketplace founder likely has a unique formula, based on multiple criteria, that calculates a sorting score for each profile.

This is what we at Sharetribe do on our own [Sharetribe Experts marketplace](https://experts.sharetribe.com/s/experts-profiles): Sharetribe Experts profiles are sorted based on a score calculated with many different criterias.

![A screenshot of the Sharetribe expert network](https://images.prismic.io/sharetribe/qUugt9ZoaidQnCjf_Screenshot2026-07-09at16.36.05.png?auto=format%2Ccompress&fit=max&w=3840)

_On the Sharetribe Experts marketplace, Experts profiles are ordered by a custom score._

## Calculate the score for each profile listing

We’ll manage the sorting score for each listing profile in a Google Sheet. We’ll have something really basic with two columns: listingId and profileSortingScore, but it could be much more complex with all your criterias and a formula to calculate the final score. Let’s define that the score should be between 0 and 1000.

1. Create a new Google Sheet at <https://docs.google.com/spreadsheets/create>.
2. Add two columns: listingId and profileSortingScore
3. In the first column, add all the unique listing IDs that you want to give a score to.
4. In the second column, add the score which will define the listing profile order, a number between 0 and 1000.

![Screenshot of an excel sheet](https://images.prismic.io/sharetribe/kzih-WNMj-FlUcu-_Screenshot2026-07-03134134.png?auto=format%2Ccompress&fit=max&w=1080)

For a more practical workflow, you could add the listing name as an additional column. You could even have a Zapier automation to add the listing ID of any new published listing on your marketplace to the spreadsheet list! Now, let’s configure what’s needed in Console.

## Setup a listing field and the sorting options in Console

In Console, we’ll need:

1. A metadata listing field to store the sorting score for each listing profile.
2. No other sorting options enabled.

## Create the metadata listing field

This is done entirely in Console:

1. Go to <https://console.sharetribe.com/a/listings/listing-fields>
2. Create a new listing field
3. Give it a name, for example \[INTERNAL\] Profile score for sorting on search page
4. Give it a unique ID, for example profileSortingScore. It will be used later in the Zapier automation.
5. Select Metadata for the Access level.
6. Select Number for the Field type and give it a minimum of 0 and a maximum of 1000.
7. In the field search settings, check “Enable this field for search”.
8. In the field search settings, check “Add a sorting option to the search page” then “Use as a primary sorting option” as the sorting option placement and “High to low” as the Sorting order.
9. Save.

![A screenshot of the Sharetribe Console](https://images.prismic.io/sharetribe/KM6h9nHwIvVRzMil_Screenshot2026-07-03131306.png?auto=format%2Ccompress&fit=max&w=1920)

## Adjust the listing search settings

To make sure that only this metadata listing field is used to sort listings, and isn’t visible to visitors:

1. Go to <https://console.sharetribe.com/a/listings/listing-search>
2. Uncheck all the “Default sorting options” in the “Sorting” section

![A screenshot of sorting options in Consle](https://images.prismic.io/sharetribe/zxnYH_9nAmd6ZirC_Screenshot2026-07-03131513.png?auto=format%2Ccompress&fit=max&w=640)

Note that you may want to use other sorting options. In this case, it would be best to give a clear name to the listing field, for example “MarketplaceName’s own scoring”.

Then, let’s test by adding a score to one listing.

## Add the score to one listing, for testing

Now that we have our listing field ready, we can start adding values for it to listing profiles. Let’s add it to just one listing, as a test:

1. Go to https://console.sharetribe.com/listings
2. Pick a listing profile (not the most recent listing!) for which you want to add a score.
3. Edit the listing details.
4. In the “Metadata” section, add a new field.
5. The “Key” should be profileSortingScore. That’s the metadata field ID we’ve used earlier.
6. The “Type” should be Number.
7. You can then add a score, between 0 and 1000\. Let’s add 849.
8. Save the listing changes.

![Screenshot of the metadata value in Sharetribe Console](https://images.prismic.io/sharetribe/YNDXdKcDjmvNh5SM_Screenshot2026-07-03132254.png?auto=format%2Ccompress&fit=max&w=1920)

If you now visit your marketplace website search page (/s), that listing should be the first one, as it has the highest score of all listings. Feel free to add a score to more listings, to see how the order changes.

We’re now ready to automatically add and update the sorting score from your spreadsheet to all listings!

## Automate the recording of the listing metadata score, via Zapier

Finally, we can now automate the addition and update of the sorting score for each listing.

Each time the score will change in your Google Sheet, a Zapier automation will run and will add or update the listing metadata information. As a result, your custom order, controlled in your spreadsheet, will always be reflected on your marketplace search page.

The general idea for this Zapier automation will be:

1. Triggers when a row is updated in the Google Sheet, and gets the listingId and profileSortingScore data.
2. Use the Code step to use the Sharetribe Integration API and update the profileSortingScore listing metadata field.  
Pretty simple! [Create a new Zap](https://zapier.com/webintent/create-zap?entry-point-method=make%5Fa%5Fzap%5Fcall%5Fto%5Faction&entry-point-location=my%5Fzaps) and let’s get started. You can go faster by using [the Zapier template](https://zapier.com/templates/details/update-listing-metadata-profilesortingscore-via-sharetribe-integration-api-f3c495?secret=MTp0ZW1wbGF0ZTpzMlRvRGVnVUVYRWJvczlVVk5QN3hZTUsybzBGTHBERjhGd1NCbmxJTHlNOnFyNmlkbg) we’ve created for you.

## Configure the zap trigger

1. Select a Google Sheet trigger, with the Trigger event being “Updated row”.
2. Select the spreadsheet you’ve created earlier and use “profileSortingScore” as the trigger column.
3. Pull a test value to make sure it works.

Now, let’s configure the Code step.

## Configure the Code step

1. Add a new action step to Zap and select “Code by Zapier”.
2. Select “Run Javascript” as the Action event.

![Screenshot of the run javascript in Zapier modal](https://images.prismic.io/sharetribe/S0E_b5QDJKw1lzRG_Screenshot2026-07-03143814.png?auto=format%2Ccompress&fit=max&w=1920)

1. In Input data, add four new value sets:
2. profileSortingScore as the key, and value to the “profileSortingScore” column from step 1.
3. listingId as the key, and value to the “listingId” column from step 1.
4. clientId as the key, and value to your Integration API client ID configured at <https://console.sharetribe.com/advanced/applications>
5. clientSecret as the key, and value to your Integration API client secret configured at <https://console.sharetribe.com/advanced/applications>

![Screenshot of the data values you need to input into Zapier](https://images.prismic.io/sharetribe/9PqgndBj9uRp8LWP_Screenshot2026-07-03145224.png?auto=format%2Ccompress&fit=max&w=1920)

Just above the code area below, click the Package icon, then “Add 3rd party package”.

![Screenshot of the Zapier "Run Javascript" window](https://images.prismic.io/sharetribe/NcNcFvsirf6pPz5l_Screenshot2026-07-03144304.png?auto=format%2Ccompress&fit=max&w=3840)

When prompted, click “Update code” then search for sharetribe-flex-integration-sdk in Package name and save (it will automatically select the latest available version).

![Screenshot from Zapier](https://images.prismic.io/sharetribe/_v01P2h7_Ek1Qq38_Screenshot2026-07-03144535.png?auto=format%2Ccompress&fit=max&w=828)

In the code area (you can open a larger code editor), type the code you need to update the listing metadata, using the Integration API SDK. If you’re not familiar with code, you could use AI to write this code for you. Here, we’ll share the code to use for this case:

import sharetribeIntegrationSdk from 'sharetribe-flex-integration-sdk';

export default async function main(ctx) {
  const sdk = sharetribeIntegrationSdk.createInstance({
    clientId: ctx.inputData.clientId,
    clientSecret: ctx.inputData.clientSecret,
  });

const profileSortingScore = parseInt(ctx.inputData.profileSortingScore, 10) || 0;

const res = await sdk.listings.update({
    id: new sharetribeIntegrationSdk.types.UUID(ctx.inputData.listingId),
    metadata: {
      profileSortingScore: profileSortingScore,
    },
  });

  return { listing: res.data.data.id.uuid, profileSortingScore: profileSortingScore };
}

![Screenshot of Zapier after following the steps in this tutorial](https://images.prismic.io/sharetribe/Mrhp0hn_HgfU6iIH_Screenshot2026-07-03154043.png?auto=format%2Ccompress&fit=max&w=3840)

You can then run the code to test it. If everything goes well, you should see the profileSortingScore metadata field value being updated for the listing you’ve selected as a test value! Set the Zap live.

That’s it! From now on, any time you update the score in your Google Sheet, it will be automatically added or updated to the corresponding listing, and the listing profiles will be sorted accordingly, on your marketplace search page.

## You might also like...

[![A glass coffee filter on top of a glass coffee carafe](https://images.prismic.io/sharetribe/aIjDNFGsbswqTaTu_jinhan-moon-NLYI87MUPZI-unsplash.jpg?auto=format%2Ccompress&fit=max&w=3840)Add transaction filtering to your marketplace inbox page](/developer-blog/inbox-filtering/)[![A person in a brown sweater using their laptop.](https://images.prismic.io/sharetribe/c2efe159-443d-4adf-be1b-73529eb9ed23_csp-cover-photo.jpeg?auto=compress%2Cformat&fit=max&w=3840)Content Security Policy](/developer-blog/content-security-policy/)[![Example events query from Console](https://images.prismic.io/sharetribe/Zv-fibVsGrYSwXAw_example-events-query.png?auto=format%2Ccompress&fit=max&w=3840)How to get the most out of events with the Sharetribe CLI](/developer-blog/events-with-cli/)

## Liked this? Get email updates on new Sharetribe Developer Blog posts.

[Subscribe](#subscribe-dev-blog)