← SitemapWF-48 · Requests inboxPopdance wireframes · low-fidelity · numbered markers match the notes at the bottom
URL/dashboard/requests
AudienceTeacher
TemplateApp screen (list)
PriorityLaunch (P1)
🔔 3✉ Messages
 

Requests1

Customers who want to book you. Reply within 48 hours or the request expires and your response rate drops.

Response rate / average reply96% / 1h 40m
New (3)Offer sent (2)Accepted (4)Declined (6)Expired (1)All

Tabs are status filters with live counts.2

Search customer, event or location
Service: All
Event type: All
Date range
Sort: Expiring soonest
Clear filters

Sort options: Expiring soonest, Newest, Event date, Highest value.3

CustomerRequestEvent dateWhereBudget (example)TimerStatus
☐Sophie T.
New customer
Birthday party, 12 children aged 7
Service: Street dance party, Standard
Sat 14 Nov, 2pmHeadingley, LS6 (3 miles)GBP 1805h leftNewReply
☐Hannah B.
2 past bookings
Hen party, 10 guests
General request sent to 3 teachers
Sat 21 Nov, 7pmLeeds city centre (6 miles)GBP 2501 dayNewReply
☐Oakfield Primary
School account
After-school club, 8 weekly sessions
Multi-quote request
From 11 JanPudsey, LS28 (9 miles)GBP 60 per session2 daysNewReply
☐Priya K.
Repeat customer
Birthday party, 15 children
Instant book, awaiting payment
Sat 31 Oct, 2pmRoundhay, LS8 (5 miles)GBP 180-AcceptedBooking
☐Mark D.Wedding first dance, 4 lessonsFlexibleHarrogate (18 miles)GBP 240-DeclinedView
Bulk actions on selected:Decline with quick replyMark as read

Columns are the same on every tab. Unread rows are bold. Row click opens the request detail. Bulk decline asks for a reason.4

«123»

Showing 1 to 20 of 56 requests · 20 per page

Response tips

Reply with a short message first if you need more detail; the 48 hour timer keeps running. Turn on email and push alerts in settings so you never miss a request.

Out of office? Block your dates or pause services so customers do not wait for a reply.

Empty state preview5

icon
No new requests right now

Requests appear here when someone asks to book you. Make it easier to be found.

Notes

  1. Header and response metrics. Response rate and average reply time over the last 90 days, also shown to customers on the public profile. A rate under 80% triggers a tip. Metrics exclude requests declined within 2 hours for reasons marked "not a fit".
  2. Status tabs. New (awaiting reply), Offer sent, Accepted (customer paid or instant booked), Declined, Expired (48 hours with no reply), All. Live counts, updated by polling or websocket. New tab opens by default. Notification badge in the header links here.
  3. Search, filters and sort. Free text search across customer name, event type and location. Filters: service, event type, event date range. Sort: expiring soonest (default for New), newest, event date, highest value. Filter state persists in the query string and local storage.
  4. Request table. Columns: customer (with new or repeat tag), request summary and linked service, event date, location with distance from base postcode, budget (example), response timer, status, action. Timer turns red under 6 hours. Customers' phone numbers and exact addresses are not shown until the booking is paid. Bulk decline requires a reason from the same list as 49-request-detail-offer.html. Analytics: request_row_click, request_bulk_decline.
  5. Empty state. Shown when the selected tab has no rows. Copy differs for first-time teachers ("Your profile is live. Share it to get your first request") and for filtered results ("No requests match your filters. Clear filters").

Rules. Requests expire 48 hours after being sent. A request becomes Accepted when the customer pays an offer or when an instant book is paid. Multi-teacher general requests show a "Sent to 3 teachers" label, but never reveal who else received it.

Mobile

The table becomes a card list with the customer, event, date and timer visible, and a full-width Reply button. Filters collapse into a "Filter and sort" bottom sheet. Tabs scroll horizontally. Bulk selection is available via long press.

States

Loading: row skeletons. Error: "We could not load your requests. Try again." with retry. Empty: as noted above. Teacher paused or unverified: banner "You will not receive new requests until your profile is live" and the table is read-only. Expired rows are greyed with an explanatory tooltip. Real-time: a new request slides in at the top with a "1 new request" pill, never reordering the list while a user is mid-interaction.