{
    "componentChunkName": "component---src-templates-article-page-template-js",
    "path": "/operator-guides/features/",
    "result": {"data":{"markdownRemark":{"frontmatter":{"title":"Features","slug":"features","updated":"2023-02-04T00:00:00.000Z","category":"operator-guides-concepts","ingress":"This article provides an overview of the most important features of Sharetribe Flex.","skills":null},"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Flex offers a large set of features that make it very fast for you to\nbuild your marketplace exactly the way you want. In addition, if a\nspecific feature you need is not listed on this page, you can often\nbuild it yourself. If you don't spot the feature you need,\n"},{"type":"element","tagName":"a","properties":{"href":"mailto:flex-support@sharetribe.com","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"contact Sharetribe support"}]},{"type":"text","value":" to\nlearn more about how to get it built."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"users-and-authentication","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#users-and-authentication","ariaLabel":"users and authentication permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Users and authentication"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can allow visitors to browse products and services in your platform\nwithout signing up. However, at the point where they want to either make\na purchase, contact another user, or list their own products or services\nin your marketplace, they need to create a user account. "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nFlex allows an unlimited number of users to create user accounts to your\nmarketplace. Here are some examples of what you can do with Flex user account\nfunctionality:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Sign up with email and password or Open ID Connect (Facebook, Google,\n...)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Log in with email and password or Open ID Connect (Facebook, Google,\n...)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Verify email address after signup"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Change email and password"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Reset password if it's forgotten"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can store following information about each user:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Basic user information (bio, profile picture)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Public data."}]},{"type":"text","value":" Data to display in the public profile of the user –\nwebsite, social media handles, is this user a customer (buyer) or\nprovider (seller), and other such information."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Private data."}]},{"type":"text","value":" Data displayed only to the user themselves and the\nmarketplace operator (like an ID number for verification purposes,\ntheir preferred language, or a list of listings they have stored on\ntheir private wishlist)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Protected data."}]},{"type":"text","value":" Data that is private by default but displayed to\nother users during a transaction (like their phone number or home\naddress)"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/references/extended-data/"},"children":[{"type":"text","value":"Read more about storing data about users"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"listings","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#listings","ariaLabel":"listings permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Listings"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A listing describes a product or a service that a provider (seller) is\noffering on your marketplace. (see\n"},{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/operator-guides/concepts/#listing"},"children":[{"type":"text","value":"concepts article"}]},{"type":"text","value":" for more\ninformation on terminology used in Flex)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Here's a list of information you can store about a listing."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Basic information (title, description)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Geolocation"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Photos (unlimited amount)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"#flexible-pricing"},"children":[{"type":"text","value":"Pricing"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"#availability-management"},"children":[{"type":"text","value":"Availability"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"#stock-management"},"children":[{"type":"text","value":"Stock"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Public data."}]},{"type":"text","value":" Data to display publicly about the listing (category,\ncustom data fields, etc)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Private data."}]},{"type":"text","value":" Data collected privately about a listing (can be\nused if the provider needs to provide some information to the operator\nfor the listing approval process)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Metadata."}]},{"type":"text","value":" Metadata is visible to everyone publicly, but the\nprovider can't edit it – only the operator can. A typical use case for\nmetadata is that the operator can feature some listings to be\ndisplayed in the landing page of the marketplace, or at the top of\nsearch results in various categories."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/references/extended-data/"},"children":[{"type":"text","value":"Read more about storing data about listings"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A listing can have several different states:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Draft."}]},{"type":"text","value":" The provider hasn't yet published this listing, so it's\nvisible only to themselves and the operator. The listing might still\nmiss some essential information. Perhaps the provider started creating\na listing but was missing high quality photos."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Published."}]},{"type":"text","value":" The listing is visible to all other users, and can be\nfound in searches."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"element","tagName":"em","properties":{},"children":[{"type":"text","value":"Pending approval."}]}]},{"type":"text","value":" The listing is ready, but this marketplace\nrequires the operator to approve each listing before they are\npublished, so the listing is waiting for operator's approval before it\nis published. You can enable or disable the listing approval\nfunctionality for your marketplace in\n"},{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/introduction/getting-started-with-flex-cli/#enable-and-disable-listing-approval-functionality"},"children":[{"type":"text","value":"Flex CLI"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Closed."}]},{"type":"text","value":" The listing used to be published, but has since been\nclosed, either by the provider or by the operator. The listing is\nstill visible to the provider, but not discoverable via search."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If your providers are offering services like pet sitting, you might want\nthem to have only one listing, that acts as their \"storefront\", through\nwhich customers can purchase their services. If, on the other hand,\nyou're building a rental marketplace where one provider might offer\nmultiple listings, you can allow each provider to also have a profile\npage, which acts as their storefront, listing all their listings. You\ncan allow each provider to have as many listings as you want."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"flexible-pricing","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#flexible-pricing","ariaLabel":"flexible pricing permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Flexible pricing"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Flex allows lots of flexibility for your providers in terms of how they\ncan set their pricing."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Add-ons."}]},{"type":"text","value":" Upsell additions on top of the regular price. Examples:\ncleaning fee, insurance, delivery."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Discount based on booking length."}]},{"type":"text","value":" An example: daily price is\n$20, weekly price $70, and monthly price $200. Another example: 20%\ndiscount on daily rate for bookings of 5 or more days, 30% discount on\nbookings of 10 or more days, and so on."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Taxes."}]},{"type":"text","value":" Add any type of tax rates to the listing price and display\nthem as separate line items in the receipt."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Offer multiple pricing packages in the same listing."}]},{"type":"text","value":" An example: a\nhairdresser offers both haircuts and hair dying."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Seasonal pricing."}]},{"type":"text","value":" Examples: weekends cost more than weekdays,\nsummers cost more than winters, and so on."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Quantity discount."}]},{"type":"text","value":" For example: booking a room for two people\ncosts $100, and after that each additional person costs $20 extra.\nAnother example: after 5 items, additional items are $2 cheaper each."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Different pricing for different groups."}]},{"type":"text","value":" An example: price per\nadult is $50/day and price per child $25/day."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Price negotiation."}]},{"type":"text","value":" Customer can propose a discounted price or ask\nfor a quote. Provider can approve the proposal or offer a quote.\nParties can negotiate until a consensus is reached."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"…and a lot more!"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/concepts/pricing/"},"children":[{"type":"text","value":"Read more about the Flex pricing engine"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"availability-management","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#availability-management","ariaLabel":"availability management permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Availability management"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Each listing can have a calendar that determines when it's available. If\nyou're building a service marketplace, the calendar of the listing acts\nas the calendar of the provider: a physiotherapist is either available\nor not at any given time. If you're building a rental marketplace, the\nprovider might have multiple listings, with each having their own\ncalendar: apartment 1 is booked this weekend, but apartment 2 is still\navailable."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Day-based and time-based availability"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Availability comes in two variations: day-based availability and\ntime-based availability. Day-based availability is simpler and\nrecommended, if all the rentals or services in your marketplace happen\n\"per day\" or \"per night\". Time-based availability allows your providers\nto determine their availability on an hourly level, or even on a five\nminute level."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Weekly default schedule and exceptions"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"With both availability variations, providers can set both their weekly\nschedule and exceptions to this schedule. As an example, they could say\nthat by default they're available from Monday to Friday from 9am to 12pm\nand 1pm to 5pm, but exceptionally, they won't be available on Tuesday\nnext week because of a holiday, and next Saturday they are exceptionally\ndoing morning shift, being available from 9am to 11am."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A listing can only be booked if it is fully available during the time\nrange provided by the customer who is making the booking. If a booking\nis made, the calendar is updated automatically, so other users can't\nbook the same slot."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Multiple seats per time slot"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Both day-based and time-based availability support the ability to have\nmultiple seats available during a specific time slot. For instance, if\nthe marketplace is about booking seats for a yoga class with space for\n10 people every Tuesday and Thursday, this can be accomplished by using\nseats. Seats can be added both to the weekly default schedule and to the\nexceptions. When seats are used, a customer can only book a certain slot\nif that slot has enough seats available."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/references/availability/"},"children":[{"type":"text","value":"Read more about listing availability management"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"stock-management","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#stock-management","ariaLabel":"stock management permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Stock management"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Each listing can have a quantity of available units associated with it.\nIf you're building a product marketplace, the stock quantity is\ntypically the number of items available for purchase for each listing.\nWhen stock management is incorporated in a transaction process, a\npurchase for certain quantity of units can happen only if the listing's\navailable stock is sufficient."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/references/stock/"},"children":[{"type":"text","value":"Read more about listing stock management"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"search-engine","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#search-engine","ariaLabel":"search engine permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Search engine"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Flex has a powerful search engine, which can find listings based on\nmultiple criteria:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Geolocation."}]},{"type":"text","value":" The search can be used to display only listings that\nare within a provided radius from certain coordinates."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Free text."}]},{"type":"text","value":" The search can be used to find listings that have a\ncertain keyword provided by the user. The search can find from listing\ntitle and description. You can also choose to index some public data\nfields (like listing category) so the search finds from them as well."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Price."}]},{"type":"text","value":" It's possible to filter out listings with too high or too\nlow price."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Availability."}]},{"type":"text","value":" It's possible to filter out listings that have\ninsufficient availability during a given time range. Works together\nwith seats so that you can filter for availability with minimum number\nof seats. It is also possible to filter by required minimum duration\nof availability for the given time range."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Stock."}]},{"type":"text","value":" It's possible to show all listings or only listings with\npositive stock."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Custom filter: any value."}]},{"type":"text","value":" Any number of custom filters can be\nadded. \"Any value\" filters out listings that don't have the given\nvalue (or any of a set of given values) in their public data. A\ntypical use case is filtering by category or subcategory."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Custom filter: all values"}]},{"type":"text","value":". Filters out listings that don't have\nall values in a given set. A typical use case is choosing among\n\"amenities\": an apartment must have both balcony and floor heating in\ntheir public data to be displayed in the search."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Custom numeric filter."}]},{"type":"text","value":" Filters out listings that don't have a\ncertain numeric value in their public data. For example, you might\nwant to build a slider filter for the skill level of the user, ranging\nfrom 0 to 10."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Sorting."}]},{"type":"text","value":" Listing sorting order can be customized per query.\nSorting is supported by one or more of: listing price, listing\ncreation time, or any numeric attribute in the listing's public data\nor metadata."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"transactions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#transactions","ariaLabel":"transactions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Transactions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The purpose of any marketplace is to facilitate transactions between its\nusers. In Flex, any exchange of value between a customer and a provider\nis called a transaction. Transaction always has two parties (a customer\nand a provider), and it's always related to a listing."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A transaction doesn't necessarily involve a payment. In its simplest\nform, a transaction could mean simply a thread of free messages between\na customer and a provider. However, quite often a transaction involves a\nbooking (a specific slot is reserved from the calendar of a listing) or\norder (an item is removed from the stock of a listing), price\ncalculation (the customer and provider agree on how much the customer\nshould pay for the service provided by the provider), and a credit card\npayment. In addition, you can store "},{"type":"element","tagName":"em","properties":{},"children":[{"type":"text","value":"protected data"}]},{"type":"text","value":" to each\ntransaction, for instance if you want to ask specific details from the\ncustomer regarding their order."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In Flex, a transaction can involve any number of steps, called\n"},{"type":"element","tagName":"em","properties":{},"children":[{"type":"text","value":"transitions"}]},{"type":"text","value":". Each transition can be performed either by the customer,\nby the provider, by the operator (for example, the operator could choose\nto cancel a transaction and refund a customer if the provider doesn't\nshow up or hasn't sent the items), or automatically at a specific point\nin time (for instance, payouts to providers are done automatically after\na booking period has been completed)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Flex transaction engine is extremely flexible, allowing an unlimited\nnumber of transaction process configurations. Here are some example use\ncases:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Different types of bookings."}]},{"type":"text","value":" Book a date range, a number of hours\non a given date, or a seat at an event."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Manage listing stock."}]},{"type":"text","value":" When an item is ordered, the listing stock\nchanges."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Allow instant booking or require provider approval."}]},{"type":"text","value":" Either require\neach provider to accept a booking before charging the credit card, or\nallow "},{"type":"element","tagName":"em","properties":{},"children":[{"type":"text","value":"instant booking"}]},{"type":"text","value":", charging the credit card immediately when a\ncustomer makes a booking."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Collect custom data when making an order."}]},{"type":"text","value":" For example: request\ninformation on food allergies for each participant when booking a seat\nfor a dinner party event, or ask if an item should be wrapped as a\ngift."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Collect custom data during the booking period."}]},{"type":"text","value":" An example: require\nthe customer to provide photos of the rented vehicle before and after\nthe rental period."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Design custom cancellation policies."}]},{"type":"text","value":" An example: if a customer\ncancels 7 days before the booking period starts, they get a full\nrefund, but if they cancel later, they won't get a refund. You can\nalso allow your providers to choose from multiple different policies."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Decide who can order."}]},{"type":"text","value":" An example: require the customer to verify\ntheir identity before their first order."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"...and a lot more!"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/concepts/transaction-process/"},"children":[{"type":"text","value":"Read more about the Flex transaction engine"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"payments","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#payments","ariaLabel":"payments permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Payments"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Flex uses "},{"type":"element","tagName":"a","properties":{"href":"https://stripe.com/connect","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Stripe Connect"}]},{"type":"text","value":" for processing\nonline payments between your users. The Flex payment system offers you\nlots of helpful features. Here are some of them:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"White label Know-Your-Customer process."}]},{"type":"text","value":" Create Stripe accounts to\nyour providers with minimal personal information. They don't need to\ncreate a Stripe account for themselves, but can instead receive money\ndirectly to their bank accounts."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Preauthorize credit cards."}]},{"type":"text","value":" You can either charge the customer's\ncredit card directly when they make a booking request, or preauthorize\nit, and only make the charge if the provider accepts the booking."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Delayed payout (escrow)."}]},{"type":"text","value":" Either move the money to the provider\nimmediately when a customer pays, or hold it until the booking period\nis over, and release it to the provider's bank account only after that\n(after automatically deducting your commission). You can hold money up\nto 6 months before releasing it to the provider."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Refunds."}]},{"type":"text","value":" If something goes wrong with the order or the customer\nwants to cancel, you can easily refund them."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Charge your commission."}]},{"type":"text","value":" You can charge a commission from the\ncustomer, the provider, or both parties. You can also set multiple\ndifferent commission rates for different users or listing categories."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Automated payouts."}]},{"type":"text","value":" Your commission is automatically deposited to\nyour bank account, while the rest is deposited to the bank account of\nthe provider at the time of your choosing."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Storing payment cards and creating delayed charges."}]},{"type":"text","value":" You can store\na payment card of the customer to make future purchases faster, or use\nthe card to create delayed or additional charges.\n"},{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/concepts/privileged-transitions/"},"children":[{"type":"text","value":"Read more about using stored payment cards"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Strong Customer Authentication."}]},{"type":"text","value":" European regulation changed in\n2019 to require support for\n"},{"type":"element","tagName":"a","properties":{"href":"https://stripe.com/en-fi/guides/strong-customer-authentication","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Strong customer authentication"}]},{"type":"text","value":"\n(SCA) when European customers are making online payments. Flex\nsupports SCA out of the box."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"reviews","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#reviews","ariaLabel":"reviews permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Reviews"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As a part of the transaction process, you can allow one or both parties\nto review each other. A review consists of a five star rating and a text\ndescription. You can choose to display the reviews a user has received\npublicly in their profile, in the page of the listing (if the review was\nabout a listing), or next to search results."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By default, Flex uses a \"double blind\" review process. This means that\nif both parties are allowed to review each other, they will see the\nother party's review only once they've left a review themselves, or once\nthe finite review period (you can decide its length) has ended."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"email-notifications","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#email-notifications","ariaLabel":"email notifications permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Email notifications"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Flex comes with a standard set of built-in email templates. These are\nrelated to automated emails sent from your marketplace: verification\nemail, welcome email when a new user joins, email about resetting\npassword, security notifications if email address or password are\nchanged, and a notification when a user sends a message to another."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can also use the transaction engine to send any email notifications\nto the users. These could include invoices, notifications of new orders,\nor reminders about the booking period starting. Flex offers a set of\ndefault transactional emails out of the box, but you can easily add any\nnumber of additional email notifications and time them exactly the way\nyou want. You can give multiple conditions for when each notification is\nsent: for instance, you might want to send a reminder about leaving a\nreview 7 days after the order was delivered or the booking period ended,\nbut only if the user hasn't left a review yet."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can customize the design and contents of all email notifications\nfreely. You can use smart variables to include user generated content,\nor even personalize the templates based on who the recipient is."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/references/email-templates/"},"children":[{"type":"text","value":"Read more about customizing email templates"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"multiple-languages-and-currencies","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#multiple-languages-and-currencies","ariaLabel":"multiple languages and currencies permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Multiple languages and currencies"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Flex Template for Web includes default language-specific microcopy files\nfor English, Spanish, French and German, but you can easily translate it\nto the language of your choice. With some development work you can make\nyour marketplace multilingual, allowing your users to use it in the\nlanguage of their choice."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can also use any currency you want, as long as it's in the list of\n"},{"type":"element","tagName":"a","properties":{"href":"https://stripe.com/docs/currencies","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"100+ currencies supported by Stripe"}]},{"type":"text","value":".\nWith some development work, you can have your marketplace work with\nmultiple currencies. Remember, though, that if you're looking to process\nonline payments in your marketplace, your platform should be based in\none of the\n"},{"type":"element","tagName":"a","properties":{"href":"https://stripe.com/docs/connect/custom-accounts#requirements","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"countries supported by Stripe custom accounts"}]},{"type":"text","value":"\nand everyone receiving money through your marketplace should be based in\none of the "},{"type":"element","tagName":"a","properties":{"href":"https://stripe.com/global","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"countries supported by Stripe"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"content-management","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#content-management","ariaLabel":"content management permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Content management"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can manage much of your marketplace texts and images in Flex\nConsole. In Flex, the term "},{"type":"element","tagName":"em","properties":{},"children":[{"type":"text","value":"microcopy"}]},{"type":"text","value":" refers to small snippets of text\nin the user interface, such as button labels, error messages and help\ntexts. You can modify existing microcopy messages in Flex Console with\nno development work required, and add new messages with custom\ndevelopment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition, you can create content pages, and modify the content of\nexisting ones, using Flex Console. You have full control over how the\ndifferent pages are shown in your client application. You can, for\ninstance, create multiple landing pages for different use cases, and add\nour free template content to your Terms of Service and Privacy Policy\npages."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"custom-design","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#custom-design","ariaLabel":"custom design permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Custom design"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You have full control over the user interface of your marketplace. You\ncan decide fully things like which fonts and colors to use, what kind of\npages or views there should be, and how those should be laid out. There\nare no limits to what you can do in terms of visual design."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It's easy for you to get started with the design, since beautiful\n"},{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/introduction/getting-started-with-ftw-daily/"},"children":[{"type":"text","value":"Flex Templates for Web"}]},{"type":"text","value":"\noffer an ideal starting point. The templates are fully responsive so\nthey look great both on desktop and mobile devices."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Your users won't see Sharetribe mentioned anywhere. The web address is\nyour own domain, the email notifications get sent from your email\naddress, and the entire user experience is fully tailored to match your\nbrand."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"seo","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#seo","ariaLabel":"seo permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"SEO"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/introduction/getting-started-with-ftw-daily/"},"children":[{"type":"text","value":"Flex Templates for Web"}]},{"type":"text","value":"\nare optimized for search engines by default, and you have full control\nto tailor the experience the way you wish. You can decide the exact URL\nstructure, edit meta tags freely, and do any other optimizations you\nwant."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"build-a-website-or-a-mobile-app","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#build-a-website-or-a-mobile-app","ariaLabel":"build a website or a mobile app permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Build a website or a mobile app"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Since Flex is a \"headless\" marketplace solution, you can use it to build\neither a website or a mobile application or both. Building a web app is\nquicker today, because of\n"},{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/introduction/getting-started-with-ftw-daily/"},"children":[{"type":"text","value":"Flex Templates for Web"}]},{"type":"text","value":",\nwhich offer a great starting point for development. A similar template\ndoesn't exist yet for mobile."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"integrations","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#integrations","ariaLabel":"integrations permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Integrations"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A great way to extend your marketplace is to integrate third party\nservices. You have full control over the code of your marketplace\nwebsite or app, so you can call third party APIs directly from there.\nOnce you receive information from those APIs, you can easily store it to\nyour users, listings or transactions. You can also bulk export data from\nyour marketplace to third party services in CSV format."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Some examples of integrations you might want to add:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"The map provider of your choice (Flex Template for Web offers default\nimplementations for "},{"type":"element","tagName":"a","properties":{"href":"https://www.mapbox.com/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Mapbox"}]},{"type":"text","value":" and Google Maps)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"The analytics provider of your choice, like Google Analytics,\n"},{"type":"element","tagName":"a","properties":{"href":"https://www.hotjar.com/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Hotjar"}]},{"type":"text","value":", "},{"type":"element","tagName":"a","properties":{"href":"https://mixpanel.com/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Mixpanel"}]},{"type":"text","value":",\nor "},{"type":"element","tagName":"a","properties":{"href":"https://amplitude.com/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Amplitude"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Add Facebook pixels and other tools that help with paid acquisition"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Add a live chat tool like "},{"type":"element","tagName":"a","properties":{"href":"https://www.intercom.com","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Intercom"}]},{"type":"text","value":",\n"},{"type":"element","tagName":"a","properties":{"href":"https://www.olark.com/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Olark"}]},{"type":"text","value":",\n"},{"type":"element","tagName":"a","properties":{"href":"https://www.zendesk.com/chat/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Zendesk Chat"}]},{"type":"text","value":" to talk directly to your\nusers."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Add social media sharing buttons to your favorite platforms like\nFacebook, Twitter, Instagram, Pinterest, and so on."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Link a blog, a help center, or a community forum to your site."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Export your data to an email marketing tool like\n"},{"type":"element","tagName":"a","properties":{"href":"https://mailchimp.com/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"MailChimp"}]},{"type":"text","value":" to send beautiful newsletters."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Do A/B testing with "},{"type":"element","tagName":"a","properties":{"href":"https://www.optimizely.com/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Optimizely"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"...and a lot more!"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"zapier-integration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#zapier-integration","ariaLabel":"zapier integration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Zapier integration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"With our Zapier integration, you can connect your Flex marketplace with\nmore than 3,000 other web apps with just a few clicks. You can then\nbuild \"Zaps\", which are automated workflows or sequences of actions that\nget kicked off by a trigger. An event in one app can set in motion an\naction in a second app and another action in a third app etc."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Once you’ve created a Zapier account and connected your Flex marketplace\naccount, you can use nine different events in your marketplace as a\ntrigger for actions in other apps. Zapier can also perform \"search\nactions\" in your marketplace data about users, listings or transactions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Together this allows you to create complex workflows based on things\nhappening in your marketplace. A new booking or order can trigger the\nsending of a text message with Twilio. A new user sign-up can set into\naction a campaign of drip emails in Mailchimp. A new listing can be\nautomatically posted to any of your marketplace’s social accounts. And\nso much more."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"admin-console","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#admin-console","ariaLabel":"admin console permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Admin console"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Flex admin console allows you, the marketplace operator, to manage the\ncontent your users create in your marketplace. Here are the features it\noffers:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Users"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"View a list of all your users,"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"View the details of an individual user"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"View listings, transactions and reviews of the user"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Edit user details"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Send the user an email"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Ban a user (removes them from the marketplace, without allowing them\nto sign up again)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Export all user information to a CSV file"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Listings"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"View a list of all your listings"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"View the details of an individual listing"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"View transactions and reviews related to the listing"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Edit listing details"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Close a listing"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Approve a listing that is pending operator approval"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Export all listing information to a CSV file"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Transactions"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"View a list of all your transactions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"View the details of an individual transaction"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"View possible next transitions of a transaction"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Read the messages between the customer and the provider related to a\ntransaction"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"View reviews related to a transaction"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Transition the transaction from one state to another (cancel, refund,\netc)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Export all transaction information to a CSV file"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Reviews"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"View a list of all your reviews"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"View the details of an individual review"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"View the transaction related to this review"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Export all review information to a CSV file"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition, the Admin Console features a \"Build\" section, where you can\nmanage the information related to the structure of your marketplace.\nHere are the features it offers:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"General settings."}]},{"type":"text","value":" Change things like marketplace name and URL."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Transaction processes."}]},{"type":"text","value":" See a list of your\n"},{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/concepts/transaction-process/"},"children":[{"type":"text","value":"transaction processes"}]},{"type":"text","value":" and view the\ndetails of each process."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Content."}]},{"type":"text","value":" Modify your marketplace microcopy and content pages."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Payments."}]},{"type":"text","value":" Add your Stripe keys to be able to accept online\npayments."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Built-in email templates."}]},{"type":"text","value":" Edit and preview the contents of your\nbuilt-in email templates."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"comment","value":" Docs to Markdown version 1.0β16 "}],"data":{"quirksMode":false}},"headings":[{"value":"Users and authentication","depth":2},{"value":"Listings","depth":2},{"value":"Flexible pricing","depth":2},{"value":"Availability management","depth":2},{"value":"Stock management","depth":2},{"value":"Search engine","depth":2},{"value":"Transactions","depth":2},{"value":"Payments","depth":2},{"value":"Reviews","depth":2},{"value":"Email notifications","depth":2},{"value":"Multiple languages and currencies","depth":2},{"value":"Content management","depth":2},{"value":"Custom design","depth":2},{"value":"SEO","depth":2},{"value":"Build a website or a mobile app","depth":2},{"value":"Integrations","depth":2},{"value":"Zapier integration","depth":2},{"value":"Admin console","depth":2}]}},"pageContext":{"slug":"features","category":"operator-guides-concepts"}},
    "staticQueryHashes": ["3794076007","439097193","717698143"]}