Appointments


Scheduling an Appointment

Scheduling an appointment involves both the buyer agent and seller agent, hence, both the listing agent’s application and the buyer’s default scheduling application. This is a several step process. Although both the buyer and listing agents can use the same application provider, the steps are the same because the appointment data in the ShowingHub must always be up to date.

Typically speaking, the buyer’s agent will search for a listing in the MLS to find an appropriate listing to schedule the appointment and then navigate to his showing provider. It’s up to his showing provider to display the calendar with the available appointments for the registration.

Alternately, it’s possible for the buyer agent to know the listing id and could find the listing in his showing provider, if they support it.

Notes:

  1. The ShowingHub will never automatically cancel or deny appointments, even if the appointment was requested during a restricted time. That is the responsibility of the Listing Application.

image.png

Each step below maps to the step in the diagram above.

  1. The buyer agent will navigate to his buyer showing provider. If he is redirected from the MLS, then the querystring will contain the listing id(s).
  2. The Buyer Application returns the available appointment times from the ShowingHub. ** Specifics for this API are elsewhere in this document, but here is the request:
    1. API: GET {{showinghubBaseUrl}}/api/v1/registrations/{registrationId}/availability?ShowDate=yyyy-mm-dd
  3. Once a buyer wants to schedule an appointment, the Buyer Application requests one through the ShowingHub
    1. API: POST {{showinghubBaseUrl}}/api/v1/requests
    2. Request:
  1. Response:
  1. The ShowingHub notifies the Listing Application Provider through a webhook.

    WebhookEvent Name: RequestCreated

  1. It’s up to the Listing Application to Accept or Decline the webhook by sending an API to the ShowingHub
    1. If it’s declined:
      1. API: POST {{showinghubBaseUrl}}/api/v1/requests/{{appointmentRequestId}}/decline
      2. Request body: None
      3. Response body:

.
2. If it’s accepted:
1. API: POST {{showinghubBaseUrl}}/api/v1/requests/{{appointmentRequestId}}/accept
2. Request body: None
3. Response body:

  1. As always, the ShowingHub will forward it to the Buying Application.
    1. If it’s declined, this is the webhook

      WebhookEvent Name: RequestDeclined

  1. If it’s accepted, this is the webhook

    WebhookEvent Name: RequestAccepted

  1. If accepted, it’s the responsibility of the Buying Application to “Confirm” they have received it. The only purpose of the confirmation, is to ensure they have received the Acceptance.
    1. API: POST {{showinghubBaseUrl}}/api/v1/appointments/{{appointmentId}}/confirm
    2. Request body:  None
    3. Response:
  1. The Listing Application receives the webhook indicating the Buyer has confirmed it.

    WebhookEvent Name: AppointmentConfirmed