# Local Services Ads Redirect Support

## Frequently Asked Questions

The following are questions that our partners frequently ask, as well
their solutions.

### Feeds

Can partners include merchants with more than one location?
:   Yes, partners can do this if they add each location separately in the
    Merchant feed.

Can time slots overlap?
:   Yes, slots might overlap because intervals between time slots don't have to
    be equal in duration. These intervals can be much shorter than service
    duration. This allows you to handle business logic on your end. For example,
    there can be one time one slot from 9 AM to 10 AM and another slot from 9:15AM
    to 10:15AM for the same service.

When you use recurrence, can exception times that are back-to-back be combined into one?
:   Yes, they can be combined.

What's shown to the user when min_advance_online_canceling is set versus when it's not set?

:   The following messages are shown to the user dependent on the value of
    min_advance_online_canceling\`:

- If set to a specific time: "If you made a booking and cannot attend, please cancel your booking \<`min_advance_online_canceling`\> in advance."
- If not set: "If you can't make it to your booking, please call \<`merchant`\> directly at \<`phone number`\> to inquire about your refund/cancellation policy."

### Booking server

Should a partner generate the booking ID when a new booking in the Create Booking API is called?
:   Yes, generate a booking ID on your end. We treat it as an opaque identifier.

### Real-time booking updates

If a user changes the start time, duration, or services on a booking, would these changes be restricted by the availability feed?
:   Yes. For example, a user can't update their 10:00 AM booking to start at
    10:05 AM since there are no open availability slots in the availability feed.

If a partner deletes a merchant or service, does that delete all of its associated services and availability slots?
:   Yes, if a partner deletes a merchant or service, sub-levels are
    automatically disabled in our system.

Does the `UpdateBookingRequest` booking contain the whole booking from `CreateBookingResponse` or only updated fields?
:   Both. It contains a mask that contains the updated fields, and the
    whole booking from
    [`CreateBookingResponse`](https://developers.google.com/actions-center/reference/grpc-api/createbooking-method).
    For example, for a booking cancellation, the `FieldMask Path="status"`
    booking object only has `Booking.status = 'BookingStatus.Canceled'`.

### Payments

When can Google support my preferred payment processor?
:   The latest list of supported processors is at the
    [Google Pay website](https://developers.google.com/pay/api).

For any given availability slot, can a business provide a different price for each staff member who performs the same service?
:   Yes, you can provide a per-staff member, per-availability slot price for a
    service if you provide a collection of payment options within the merchant
    feed. See the `PaymentOption` message for details on the exact set of fields
    that define a `payment_option`.
    **Note:** A `payment_option_id` is unique across all your merchant feeds, so if two different merchants have a payment option with the same ID, it's considered to be the same payment option. Once you've defined the [payment options](https://developers.google.com/pay/api/web/reference/object#PaymentOptions), you can set a `payment_option_id` at the availability slot level within the availability feed. Currently, a maximum of one `payment_option_id` is supported per slot. Lastly, you need to remove the price from the services feed once you provide payment option IDs at the availability slot level.

Is there any dependency between prepayments, deposits, and no-show fees?
:   There's no dependency between prepayments, deposits, and no-show fees that
    are specified in the service feed. You can have valid deposits and no-show
    fees without having prepayments enabled. However, for either of those three
    to function correctly, you need to complete your payments integration.

How are tax fees shown to users?
:   If a tax rate is set and payment online is required, tax fees are shown
    separately from your service costs. They are included in the total price
    shown to the user.

### Sandbox environments

How do I access the links to the sandbox frontend?
:   You can access sandbox links via the
    [Partner Portal \> Inventory](https://developers.google.com/actions-center/verticals/local-services/redirect/partner-portal/inventory/inventory) page.

Is there a sandbox environment where partners can see their data and use their data to run tests?
:   Yes, a sandbox environment is available for you to run end-to-end
    integration tests. For more information, see
    [our end-to-end testing guide](https://developers.google.com/actions-center/verticals/local-services/redirect/integration-steps/end-to-end-testing).

Is there a version of the API that accesses the sandbox environment?
:   Yes, enable the Maps booking API (dev) in your Google Cloud project. It's
    only accessible to users of the Partner Portal that are automatically allowed
    access. Once enabled, all you need to do is change the endpoint of your API
    calls to `https://partnerdev-mapsbooking.googleapis.com/`.

What is the difference between sandbox and production?

:   The sandbox environment is an independent environment that allows you to test
    changes without impacting your production systems. The Actions Center provides
    the following pieces of the sandbox environment:

- [Sandbox feed SFTP server](https://partnerdash.google.com/apps/reservewithgoogle/configuration/feeds?env=sandbox)
- [Sandbox booking server configuration](https://partnerdash.google.com/apps/reservewithgoogle/configuration/booking-server?env=sandbox)
- [Sandbox RTU endpoints](https://developers.google.com/actions-center/verticals/local-services/redirect/integration-steps/real-time-api-updates#sandbox-and-production-endpoints)
- [Partner Portal sandbox environment](https://developers.google.com/actions-center/verticals/local-services/redirect/partner-portal/overview/environment-switcher)
- [Sandbox product front-end](https://developers.google.com/actions-center/verticals/local-services/redirect/partner-portal/inventory/inventory-view#accessing_environment_specific_ui_troubleshooting_links)

When all of the sandbox environment components are connected to a non-production
environment in your systems (e.g. a development or staging environment) you can
fully simulate a production environment, without impacting your production
systems. Note, the following caveats:

1. Connect your staging or testing feeds, booking server, and real-time update APIs to the sandbox environment.
2. Provide a subset of real world inventory in your Sandbox environment to test against. This ensures that any edge cases with your inventory are covered.
3. A sandbox booking server should never complete booking requests or updates against live inventory. Instead, point the sandbox environment to your staging or test environment.
4. Asynchronous bookings should be managed by the sandbox version of your merchant tools to accept/decline bookings. This will allow testing of the BookingNotification real-time update in sandbox.

### Partner Portal

#### Inventory View

Why are there no results shown after applying filters?
:   Check to see if there are typos in your filter values (e.g. trailing spaces).
    Additionally, if the inventory is deleted from the feeds, it will not appear
    in the search results unless the Integration State = `Deleted` filter
    is explicitly set.

How do I sort by inventory state?
:   To add an inventory state filter, first add a filter for the integration type.
    For example, set an integration type filter to `E2E` (end-to-end integration)
    and then set the Inventory state filter to `Live`. For more information
    on how to set filters, see \[here\]/actions-center/partner-portal/inventory#applying_filters.

## Terminology

The following terms appear throughout the site.

### appointments

Used synonymously with bookings. A user books or makes an appointment for a
particular slot.

### bookings

A booking is the association of a service offered by a merchant for a specific
block of time. A Google user may create a booking. A service offering may be a
fitness class or a haircut, for example.

### inventory

The set of merchants, services, and slots that you send to the Actions Center.

### leases

The Actions Center requests a lease after a user has selected a particular
slot. The lease places a hold on the slot so that no other user can book this
particular appointment until the lease expires or the booking is completed.
Leases are optional in v2 of the API and we recommend using CheckAvailabilty
instead.

### reservations

A reservation is a tentative booking. It applies specifically to dining.

### services

Services are offered by merchants. A particular service slot may be booked by a
Google user.

### slots

A slot is a specific instance of a service that is available for booking. There
can be multiple slots for each day and slots may overlap.

### scheduling partners

A scheduling partner sends inventory data to Google. We send you user data when
a user makes a booking and you perform the actual booking.

## Content Editorial Guidelines

When providing service names and descriptions, your submissions should follow
three principles:

- Be honest and factual.
- Describe service clearly and accurately.
- Include relevant and complete information about merchant services with attributes.

In addition, make sure you:

- Use standard spelling and grammar.
- Avoid any repeated and unnecessary use of punctuation, capitalization or symbols. Don't use exclamation points in your service titles. The use of symbols, numbers, and letters should adhere to the true meaning of the symbol.
- Avoid repetition. You may not post excessive, repetitive, or irrelevant keywords.
- Avoid offensive or inappropriate language.
- Do not include double quotes around the description field.
- Do not include any extraneous characters, e.g. asterisks that do not point to a footnote. If you must include a footnote or disclaimer, make sure to include it as the last line in the attribute.
- Make sure to include relevant variant information in services to allow customers to distinguish them.
- Do not include misspelled or incorrectly punctuated text in any field.

## Partner Portal alerts

Reference this page to find out more information about Partner Portal alerts.
There are links to the appropriate next steps for your issue included in each
section.

### Merchants missing availability

A merchant needs to have one or more future availabilities in the
Availability feed. If the merchant doesn't have at least one future
availability in the Availability feed, the merchant cannot be live on
Actions Center. Refer to the "Merchants Missing Future Availability" table in
the *Inventory Details* dashboard of the [Partner Portal](https://partnerdash.google.com/apps/reservewithgoogle/dashboards)
to see a full list of these merchants. This table is
updated every two hours.

### Merchant missing services

A merchant needs to have one or more services in the Services feed. If the
merchant doesn't have at least one service in the Services feed, the merchant
cannot be live on the Actions Center. Refer to the "Merchants Missing
Services" table in the *Inventory Details* dashboard of the
[Partner Portal](https://partnerdash.google.com/apps/reservewithgoogle/dashboards)
to see a full list of these merchants. This table is updated every two hours.

### Merchants in an unsupported country

A merchant needs to be within a supported country that your implementation
supports. If the merchant's country isn't supported by the Actions Center,
or your implementation doesn't support that country, the merchant cannot be
live on the Actions Center. Refer to the "Total Live Merchants by Country"
table in the *Live Merchants* dashboard of the
[Partner Portal](https://partnerdash.google.com/apps/reservewithgoogle/dashboards)
to see your full list of merchants by country. This table is
updated every two hours. Open a case in the [Partner Portal](https://partnerdash.google.com/apps/reservewithgoogle/support/cases/create)
to see which countries your implementation currently supports or which merchants
aren't live due to the country they're in.

### Merchants missing a complete address

In order to be live on the Actions Center, a merchant needs to be matched to a
listing on Google Maps. The address of a merchant is a big determinant for how
Google detects which merchant goes to which Google Maps listing. It's strongly
recommended to regularly view the "Merchants Without Complete Addresses" table
in the
[Partner Portal](https://partnerdash.google.com/apps/reservewithgoogle/dashboards)
to see your full list of merchants without a complete
address. These merchants aren't live on the Actions Center. The table is
updated every two hours.

### Merchants missing a telephone number

In order to be live on the Actions Center, a merchant needs to be matched
to a listing on Google Maps. The telephone number of a merchant is a
determinant for how Google detects which merchant goes to which Google Maps
listing. It's strongly recommended that you include the telephone number to
increase the chances that Google can automatically match your merchants to a
Google Maps listing. Refer to the
[Merchants feed](https://developers.google.com/actions-center/verticals/local-services/redirect/reference/feeds/merchants-feed)
to see the proper format of the telephone number.

### Services without a price

A service which has an additional cost associated with it must include a valid
price. If the service's price doesn't reflect a valid price, or is $0.00, the
service cannot be live on the Actions Center. Refer to the
"Services With No Prices" table in the *Inventory Details* dashboard of the
[Partner Portal](https://partnerdash.google.com/apps/reservewithgoogle/dashboards)
to see a full list of these services. This table is updated every two hours.

### Services without a description

A service needs to include a valid description. If the service's description
is missing, we strongly encourage you to provide one. This allows important
details to the users who need to know what they're booking. Open a [case on Partner Portal](https://partnerdash.google.com/apps/reservewithgoogle/support/cases/)
to receive a list of services that don't have a description.

## How to get help

Here are instructions for finding help.

### New partners

If you're interested in integrating with the Actions Center, complete [this interest form](https://services.google.com/fb/forms/reservationsappointmentsonlinebooking-interestform/).

### Existing partners

#### Filing an inquiry or complaint

If you are a current Actions Center partner and have a question or complaint, you can [create a new case](https://partnerdash.google.com/apps/reservewithgoogle/support/cases/create) in the Partner Portal to contact us. From within the Partner Portal, you can access your case history from going to the [Help and Support \> Cases page](https://partnerdash.google.com/apps/reservewithgoogle/support/cases/open). To create a new case, fill in the "How can we help?" box and click "Start" to go to the new case form.

When creating a new case, you will be asked a few questions that will allow us to better assist you. Please answer these questions to the best of your ability.

Once you open a case, you will be able to view and respond from your inbox or from the Partner Portal. You will receive an email whenever there is an update to your case. Once a case is closed, you will not be able to respond to that case again and will need to open a new case for any future questions.

> [!NOTE]
> **Note:** Please keep each case limited to one issue and feel free to create additional cases as needed.

Anyone that you grant access to your Partner Portal account (see [the Accounts \& Users guide](https://developers.google.com/actions-center/verticals/local-services/redirect/partner-portal/testing/accounts-and-users) on how to manage access) will be able to see any previous cases and respond to any open case from within the Partner Portal. Each case will have a case number that you may reference at any time. In addition, emails we send to you may have a reference id associated with them as well. Please include that reference id, or any other identifiers (such as a merchant id) that are applicable to the case within your inquiry.

#### Following up on a case

If a case you submitted has been closed and you have a follow up to that case, you can "re-open" it using the Follow up on a case button. This button is located at the top of the closed case when viewing the case from the Partner Portal Help and [Support \> Cases page](https://partnerdash.google.com/apps/reservewithgoogle/support/cases/open).

Your follow up case will appear as a new case within the Partner Portal after you click "Submit".

#### Request for business data

To initiate a new request for business data that is not already available using the reports in the Actions Center, contact us using the [Business User Data Access Request Form](https://support.google.com/reserve/contact/business_data_availability_and_access).