Tour Dash

Every email opens its job

The "Angel has disputed it" email had a See the job button that went to Posted jobs, where Michael would have had to find 304 Mitchell Avenue among everything else he has posted. Every email about a job worked like that, because the emails knew the street and the time but never which job it was. They all know now, and each button opens the job it is talking about.

Asked 16 September Status Live in production Checked 16 September, on the live deploy
01

What a click does now

Same email, same button. The difference is where it lands.

BeforeSee the job opened Posted jobs at the top. Every job he has posted, grouped by who it is waiting on, and 304 Mitchell somewhere in it.
NowSee the job opens Posted jobs scrolled to 304 Mitchell, with that job outlined. If the email was about one action, like reviewing applicants or saying a job didn't happen, that dialog opens too.
02

Every email, and where it goes

Every email Tour Dash sends. … is the job's id, filled in when the email goes out.

EmailGoes toButtonOpens
Applying and booking
Somebody appliedAgent who postedReview their application/my-listings?job=…&open=applicants
Opens the applicants on that job
A counter-offerAgent who postedReview the offer/my-listings?job=…&open=applicants
Job sent to youContractorSee the job/my-opportunities?job=…
Opens the invite
You are bookedContractorSee the booking/my-opportunities?job=…
Somebody is covering itAgent who postedSee the booking/my-listings?job=…
Calendar kept as a second link
Who to call on the dayContractorSee who to call/my-opportunities?job=…
The booking shows the contact
Invite declinedAgent who postedSee the job, or Invite somebody else/my-listings?job=…&open=edit
Edit is where invites are sent from
The day itself
ReminderContractorGet directions, then See the booking/my-opportunities?job=…
ReminderAgent who postedSee the booking/my-listings?job=…
Calendar kept as a second link
Your cover pulled outAgent who postedFind cover/my-listings?job=…
After the job
Did it happen?Agent who postedPay now instead/my-listings?job=…
Brings her to the button. Paying is never pressed for her
Did it happen?Agent who postedIt didn't happen/my-listings?job=…&open=dispute
Your pay is on its wayContractorSee the job/my-opportunities?job=…
Released automaticallyAgent who postedSee the job/my-listings?job=…
Was "See your jobs"
Disputes
On holdContractorThat's not right/my-opportunities?job=…&open=contest
Was a blank email to info@. Now it opens the in-app answer, which reaches support with the booking attached
Angel has disputed itAgent who postedSee the job/my-listings?job=…
The email in your screenshot
Dispute settledBoth sidesSee the job/my-listings or /my-opportunities ?job=…
These two had no template and sent people to the wallet; they now open the job
Left where they were, on purpose
Not chosen / job called off / booking cancelledContractorSee what else is open/find-opportunities
The job is gone for them, so the board is the useful place
Paid, review request, review receivedEitherReview them / See your profile/profile/…
The subject is the person, not the job
Refund, lead sold, lead disputedEitherOpen your wallet/my-wallet
Money, not a job
Welcome, finish payoutsEitherPost a showing / Set up payouts/create-service, /settings
No job exists yet
03

Where it stands

Live. The app, the eleven database functions that queue these emails and the five edge functions that send them are all deployed. Each link was opened on the live deploy: an invite, an application, a booking, a job that is gone, applicants, a booked job, and the dispute and edit dialogs.
Emails already sent keep their old links. That includes the one in the screenshot, and anything already queued without a job id falls back to the list page it used before.
Not changed: nothing about the wording, apart from button labels that said "See your jobs" where there was only ever one job.