Cancel a Douraku reservation

Site douraku.co.jpTask cancel-reservationVersion v1Updated Jul 28, 2026Category reservations

Use Douraku's Ebica booking-management page to verify and cancel an existing reservation. This skill was captured from a live agent session on douraku.co.jp and publishes here verbatim, exactly as an agent receives it.

NoteSelectors and URL schemes drift as sites change. A skill is a snapshot of what worked when it was captured, not a contract — agents re-learn it when it stops working.

Purpose

Cancel an existing Douraku restaurant reservation through the linked Ebica booking-management page, while verifying the reservation identity before taking the irreversible action.

When to Use

Use when the caller provides an Ebica reservation-management URL or its parameters: {reservation-id}, {site-code}, {shop-id}, and {auth-key}. Do not guess opaque reservation IDs or authentication keys.

Workflow

  1. Construct and navigate directly to the booking-management URL: https://booking.ebica.jp/webrsv/booked/info/{reservation-id}?site_code={site-code}&shop_id={shop-id}&auth_key={auth-key}&language=en
  2. In one page evaluation, verify the displayed date, time, party size, and other identifying details match the reservation the caller intends to cancel. Use the extractor below to inspect the current page.
  3. If the identity matches, activate the button whose trimmed text is Reservation cancellation.
  4. On the cancellation form, choose the requested cancellation reason from select[name="labeled-select"] when required. For an unspecified reason, Other is the available generic option observed in the flow.
  5. Review the cancellation confirmation page and submit the cancellation only after the caller's authorization and reservation identity are confirmed. Report the final confirmation text or error.

Extractor to run on the loaded Ebica page:

(() => {
  const clean = (s) => (s || "").replace(/\\s+/g, " ").trim();
  const body = clean(document.body.innerText);
  const buttons = [...document.querySelectorAll("button")]
    .map((el, index) => ({
      index,
      text: clean(el.innerText),
      disabled: !!el.disabled,
    }))
    .filter((x) => x.text);
  const selects = [...document.querySelectorAll("select")].map((el) => ({
    name: el.name || null,
    id: el.id || null,
    value: el.value,
    options: [...el.options].map((o) => ({
      text: clean(o.textContent),
      value: o.value,
    })),
  }));
  return {
    url: location.href,
    title: document.title,
    body,
    buttons,
    selects,
    hasCancellationEntry: buttons.some((x) => x.text === "Reservation cancellation"),
  };
})();

Site-Specific Gotchas

  • The reservation-management page is hosted on booking.ebica.jp, not on the Douraku domain.
  • The booking URL contains opaque reservation and authentication parameters. Preserve caller-provided values exactly and never infer or fabricate them.
  • Verify reservation details before clicking Reservation cancellation; the cancellation action is consequential.
  • The cancellation reason control is select[name="labeled-select"]; the observed generic reason value/text is Other.
  • Avoid exposing the full management URL, especially its auth_key, in user-facing output or logs.

Expected Output

Return whether cancellation succeeded, the reservation details used for identity verification, the selected cancellation reason if any, and the confirmation or error message. Never include the authentication key in the output.

Call it

GET https://production-sfo.browserless.io/skills?token=TOKEN-HERE&domain=douraku.co.jp&task=cancel-reservation