In this tutorial, we'll set up a hybrid service marketplace with two transaction flows:
Regular flow: Providers create listings describing their services, and customers browse and request quotes from providers.
Reverse flow: Customers post projects they need done, and providers submit competitive offers to win the work.
This marketplace will work similarly to famous marketplace like Upwork and Thumbtack, which support both flows.
All settings are configured without coding, using Sharetribe's no-code tools. You can follow along and use your own marketplace idea and content.
This dual-flow approach gives your marketplace maximum flexibility. Customers can either browse available services or post their own project needs, while providers can showcase their services or bid on customer projects.
When it comes to any marketplace, the most important things are your user flows:
User creation
Listing creation
Search and matching
Transactions
We'll focus on these main user flows and configure them for a hybrid marketplace with both regular and reverse price negotiation. At the end of the article, you'll find a list of additional features to configure next.
1. Tailor experiences for providers and customers
On a hybrid service marketplace, providers and customers need distinct user experiences that support both transaction flows. Providers need to be able to create service listings and browse customer projects. Customers need to be able to browse services and post their own project requests.
In this section, we'll configure user type settings to enable both flows.
Tip! If you chose B2B or B2C as your marketplace type during onboarding, your test marketplace will already have two user types. You can easily modify these to fit your needs.
If you're building a peer-to-peer marketplace where all users can act as both providers and customers, you can skip user types and move directly to step two of this tutorial.
Modify the provider user type
Go to Console → User types.
Open the Provider user type.
Modify the name to something specific to your marketplace (e.g., "Service Provider" or "Freelancer").
Change or leave the ID as is. If you change the ID, note that any changes won't be reflected in accounts with the old ID. You can update the user type of a user on the user management page.
Choose the user role Provider. This determines the basic user account experience: the user type will see the provider inbox and their public profile will include reviews from customers.
Enable or disable user account links. For the provider user type, we'll enable:
Post and manage listings: Providers need to create service listings in the regular flow.
Payout details: Providers need payout details to receive payments from customers.
Check the default user fields:
Display name: Enabling this is a good idea for B2C or B2B marketplaces. You can use it for business names.
Phone number: This is protected data visible only to the user and marketplace operator. Useful for personal outreach or SMS notifications.
Decide if these fields will be:
Included in the signup form
Mandatory
Save changes.
Tip! You can update "Display name" to "Business name" in the marketplace text editor. Update these marketplace texts:
"ConfirmSignupForm.displayNameLabel": "Display name"
"SignupForm.displayNameLabel": "Display name"
"ProfileSettingsForm.displayNameHeading": "Your display name"
"ProfileSettingsForm.displayNameInfo": "The display name defaults to first name plus initial of last name."
"ProfileSettingsForm.displayNameLabel": "Display name"
"SignupForm.displayNameRequired": "You need to add a display name."
Modify the customer user type
Go to Console → User types.
Open the Customer user type.
Modify the name if you wish.
Change or leave the ID as is.
Choose the user role Customer. This user type will see the customer inbox and their public profile will include reviews from providers.
Enable or disable user account links. For the customer user type, we'll enable:
Post and manage listings: Customers need to post project requests in the reverse flow.
Payment method: Customers can save a payment method to their account.
Check the default user fields:
Do you want to ask customers for a display name or phone number?
Do you want either field to be mandatory?
Save changes.
Tip! You can link to dedicated signup pages for each user type with a URL in the format [your marketplace URL]/signup/user-type-id. You could even hide the general signup link and add user-type-specific links to your top bar instead.
2. Define your listing types and transaction processes
Your listing types determine two key things:
What kind of listings can be added to your marketplace.
What kind of transactions take place on your marketplace.
In this tutorial, we're setting up two listing types to support both transaction flows:
Service listings (regular flow): Providers create listings, customers request quotes.
Project requests (reverse flow): Customers create listings, providers submit offers.
You likely have a default listing type already. You can modify it or create new ones. Note that deleting a listing type will stop existing listings of that type from working.
Create the service listing type (regular flow)
Go to Listings → Listing types.
If you have an existing listing type that fits, modify it. Otherwise, click to add a new listing type.
Listing type name and ID
Set the name to something like "Service" or "Freelancer profile".
Set the ID (such as "service"). To link to listings in this listing type only, you can use the URL:
[your marketplace URL]/s/[listing-type-id](ie.[your marketplace URL]/s/service).
Transaction settings
Choose transaction process type Price negotiation.
Choose negotiation flow type Regular.
Providers create listings describing their services.
Customers reach out providers requesting quotes.
Providers send offers with quotes and details.
Default listing fields
Location: Enable if the service provider's location is relevant.
Images: Enable to let providers showcase their work with photos.
Finally, save changes!
Create the project request listing type (reverse flow)
Go to Listings → Listing types
Click to add a new listing type.
Listing type name and ID
Set the name to something like "Project Request" or "Job Posting".
Set the ID (such as "request"). To link to listings in this listing type only, you can use the URL:
[your marketplace URL]/s/[listing-type-id](ie.[your marketplace URL]/s/request).
Transaction settings
Choose transaction process type: Price negotiation
Choose negotiation flow type: Reverse
Customers create listings describing what they need.
Providers submit offers to customers.
Customers choose the best offer.
Default listing fields
Location: Enable if the customer's location is relevant
Images: Enable or disable depending on whether images are relevant to project requests (often disabled for reverse flows).
And again, save changes!
3. Build a comprehensive search and matching experience
With two listing types, you'll need to create search experiences that work for both providers browsing project requests and customers browsing services. We’ll go through key search features: listing fields and filters and listing search settings, but also touch on top bar links.
Add listing fields and filters for service listings (regular flow)
Custom listing fields help customers learn about services before requesting quotes. They also function as search filters.
Go to Listings → Listing fields.
Click to add a listing field.
Give it a descriptive name and ID.
Choose the field type:
Free text: For free-form information
Number: For numeric ranges
Select one: Dropdown with one choice
Select multiple: Checkbox field for multiple choices
Video: For YouTube embeds
Decide if the field is mandatory.
Configure field-specific settings (options, number ranges, etc.).
Limit the field to a specific listing type. Click to add a listing type ID and enter the ID of your service listing type.
Determine search settings:
Free text: Include in keyword search
Number/select fields: Add as a filter to search page
Save changes.
Example fields for service listings:
Years of experience (Number)
Certifications (Select multiple)
Specialty areas (Select multiple)
Portfolio URL (Free text)
Add listing fields and filters for project requests (reverse flow)
These fields help customers describe their project needs and let providers filter opportunities.
Go to Listings → Listing fields.
Click to add a listing field.
Give it a descriptive name and ID.
Choose the field type.
Decide if the field is mandatory.
Configure field-specific settings.
Limit the field to a specific listing type. Click to add a listing type ID and enter the ID of your project request listing type.
Determine search settings.
Save changes.
Example fields for project requests:
Budget range (Number)
Timeline (Select one)
Required skills (Select multiple)
Project complexity (Select one)
Configure listing search settings
Make it easy for both user types to find what they need:
Go to Listings → Listing search.
Choose your main search type (keyword or location). Most likely, the correct choice for a service marketplace is keyword search, as for custom projects, the location is mostly not fixed.
Enable additional filters:
Listing type filter: Enable this so users can access the listings relevant to them. Service providers will want to filter to see only project requests, and customers will filter to see service listings.
Category filter: Enable if you're using categories
Save changes.
Modify the top bar
In top bar settings, we’ll create links for separate user flows for our customers and service providers.
Go to Content → Top bar.
Under Search bar, choose “Only display on the search page”. This means that users will only see the search bar when they are on the search page, which can be filtered by listing type.
Under Custom links, add listing search links to both listing types (one for customers, one for providers:
Add a link for customers (regular flow):
Link type: Internal link
Internal link text: Browse services
Internal link address:
/s/[listing-type-id]. Add the listing type ID of your service listing.Link placement: Top bar
Add a link for providers (reverse flow):
Link type: Internal link
Internal link text: Find Work
Internal link address:
/s/[listing-type-id]. Add the listing type ID of your project request listing.Link placement: Top bar
Save changes.
Now, there won’t be a search bar in top bar navigation. Instead, both user groups can use the relevant link to get to a search page that is automatically filtered by listing type.
4. Test both transaction flows
Testing both flows thoroughly is critical. Go to your test marketplace by clicking "View marketplace" at the top right of Console.
Tip! As the marketplace operator, you can log in on behalf of users to understand their experience and troubleshoot issues. This is a great feature to speed up testing: in the test environment, you can take any action when logged in as a user.
Test the regular flow (service listings)
Sign up as a provider.
Create a service listing describing what you offer.
Add payout details in account settings.
Log out and sign up as a customer.
Click the "Browse Services" link in the top bar or landing page to go to the search page.
Find the service listing you created with your provider account.
Request a quote from the provider.
Navigate to user management in Console, open the provider user card, click the three dots on the left, and select "Log in as user".
Go to the inbox and open the quote request.
Send the customer an offer with a quote and additional details.
Navigate to user management in Console and log in as the customer. Navigate to the inbox.
Open and accept the offer.
Log in as the provider and mark the order as delivered.
Log in as the customer and accept the order.
Test the reverse flow (project requests)
Log in as a customer.
Create a project request listing describing what you need.
Log out and sign up as a provider (or navigate to user management in Console and use the log in as feature).
Add payout details in the user’s account settings (if you haven’t yet).
Click the "Find Work" link in the top bar or landing page to go to the search page.
Find the project request listing you created with your customer account.
Submit an offer to the customer.
Navigate to user management in Console, log in as the customer, and go to the inbox.
Open and accept the offer.
Log in as the provider and mark the order as delivered.
Log in as the customer and accept the order.
Once the order is delivered, both parties will be prompted to review each other.
Test reviews
Done! You’ve now successfully tested all major user flows: user creation, listing creation, and transactions. Once the order is delivered, the provider and customer will be asked to review each other.
If you want to test the reviews right away:
Go to user management and log in as either user.
Navigate to the inbox and click open the transaction page.
Click to leave a review.
Leave a review.
Repeat steps 1-5 with your other user. The reviews will be published automatically. You can find them on the listing page, user profiles, and Console.
5. Complete your marketplace setup and go live
This tutorial covered the core functionality for a hybrid marketplace. Here are the remaining features to configure before launch.
Minimum settings to configure
These features are essential for any marketplace:
Branding: Add your logo, colors, favicon, and social media image in branding settings. Learn about branding settings.
Footer: Add relevant links, social media profiles, and copyright disclaimer in footer settings. Learn about the footer.
Content pages:
Modify your landing page to explain both transaction flows. Add clear paths to “Post a project” and “List your services, and "Browse Services" and "Browse Projects".
Add terms of service and privacy policy.
Edit or delete the About page.
Add any further pages you need, such as additional landing pages targeted to customers and service providers.
Monetization: Update commission rates in commission settings or set up alternative models like subscriptions. Learn about monetizing your marketplace.
More settings to check out
Depending on your specific needs, explore these features:
Marketplace texts: Edit all button labels, error messages, and help texts to match your marketplace vocabulary. Learn about marketplace texts.
Email texts: Modify automatic email content for key events in both transaction flows. Learn about email texts.
User fields: Collect additional information at signup, optionally limited to specific user types. Learn about user fields.
Layout: Choose search page and listing layouts, plus thumbnail ratios for both listing types. Learn about layout settings.
Zapier: Automate workflows and admin tasks without coding. Learn about Zapier.
Conclusion
You've now set up a flexible service marketplace that supports both provider-created service listings and customer-created project requests. This dual-flow approach maximizes opportunities for transactions and gives users choices in how they engage with each other on your platform.
Even if you plan to customize with code eventually, launching with Sharetribe's no-code tools lets you validate your concept quickly. You can use this setup as an MVP or as a foundation for discussing custom development needs.
Test thoroughly to understand both user experiences, and when you're ready to launch, click "Go live" in Console, start a live subscription, and begin connecting providers with customers!
