⚡ Productivity

Espanso YAML Match File for a Veterinary Front Desk: Triggers, Forms, and Date Offsets

Build a working Espanso match file for repetitive front desk messages: short triggers, date variables with offsets, choice lists, and forms for fill-in replies, organized by file with a trigger naming scheme the whole team can remember.

0.0
0Reviews
P
October 5, 2026

Prompt

Act as a workflow automation specialist who writes Espanso configurations for clinic and office teams. You turn the messages staff retype every day into a clean YAML match file with a trigger scheme people can actually remember, and you test every match for indentation and variable mistakes before handing it over.

Inputs:
- Messages the desk types repeatedly, pasted as real examples with the parts that change marked: [RepeatedMessages]
- Values that come from a fixed list (vets on staff, appointment types, clinic locations): [PickLists]
- Apps where the snippets are used (practice management software, email client, SMS portal): [Apps]
- Operating systems on the desk machines: [DeskOS]
- Phrases or claims the clinic never sends by text (diagnoses, prices, medication doses): [NeverSend]
- Output format: [Format]

Generate:
1. Trigger scheme. One prefix for the whole team (for example a semicolon or colon), a short family code per message group, and a cheat sheet table of trigger, purpose, and file.
2. File layout under the Espanso config folder: which matches go in match/base.yml versus a separate file such as match/frontdesk.yml, and how to find the folder with espanso path.
3. The YAML. For each RepeatedMessages entry write a match with trigger, replace, and vars. Use type date with a format string, and params offset in seconds for tomorrow or next week reminders; type choice for PickLists; a form (form plus form_fields with choice or multiline text) when staff must type a free value such as a pet name; type clipboard where staff paste a value first. Use word: true only where a trigger could appear inside a normal word.
4. App-specific notes for Apps: where a field strips line breaks, where to prefer a form over a long multiline replace, and an optional config/ file with filter_exec or filter_title if expansion should be off in one app.
5. Test script: the exact espanso commands (espanso restart, espanso log if a match does not fire) and a list of each trigger to try with the expected output.

Constraints:
- Valid YAML, two-space indentation, every string with a colon or a hash quoted.
- Never place anything from NeverSend into a replace; if a RepeatedMessages example contains one, rewrite it to route the client to a call.
- Do not invent staff names, locations, or phone numbers; use only PickLists and RepeatedMessages.
- No em dashes.

Instructions

Replace every [bracket] with your details before running. Works on ChatGPT, Claude, and Gemini.

Generated Output

This image was generated using the prompt above.

Espanso YAML Match File for a Veterinary Front Desk: Triggers, Forms, and Date Offsets - Result

Examples

Example Input

RepeatedMessages: (a) 'Hi {owner}, this is a reminder that {pet} has an appointment with {vet} on {date tomorrow} at {time}. Reply C to confirm.' (b) 'Thanks for calling Riverbend Animal Clinic. We have received {pet}'s records request and will send them within 2 business days.' (c) 'Your {pet}'s vaccine reminder: {vaccine} is due. Call us to book.'
PickLists: vets Dr. Okafor, Dr. Lindqvist; vaccines Rabies, DHPP, FVRCP, Bordetella
Apps: practice management notes field, Outlook, browser SMS portal that strips line breaks
DeskOS: Windows 11 on all three desk PCs
NeverSend: diagnoses, prices, medication doses
Format: cheat sheet, YAML, tests

Example Output

1. Trigger scheme
Prefix ; then a family code. Cheat sheet:
| Trigger | Purpose | File |
| ;rem | appointment reminder for tomorrow | match/frontdesk.yml |
| ;rec | records request received | match/frontdesk.yml |
| ;vax | vaccine due reminder | match/frontdesk.yml |
| ;dt | today's date only | match/base.yml |

2. Layout
Run espanso path in a terminal to see the config folder. Keep ;dt in match/base.yml. Put the clinic messages in a new match/frontdesk.yml so the whole desk can share one file.

3. match/frontdesk.yml
matches:
  - trigger: ";rem"
    replace: "Hi {{form.owner}}, this is a reminder that {{form.pet}} has an appointment with {{form.vet}} on {{tomorrow}} at {{form.time}}. Reply C to confirm."
    vars:
      - name: tomorrow
        type: date
        params:
          format: "%A, %B %d"
          offset: 86400
      - name: form
        type: form
        params:
          layout: "Owner [[owner]] Pet [[pet]] Vet [[vet]] Time [[time]]"
          fields:
            vet:
              type: choice
              values:
                - Dr. Okafor
                - Dr. Lindqvist

  - trigger: ";rec"
    form: "Thanks for calling Riverbend Animal Clinic. We have received [[pet]]'s records request and will send them within 2 business days."

  - trigger: ";vax"
    form: "Your [[pet]]'s vaccine reminder: [[vaccine]] is due. Call us to book."
    form_fields:
      vaccine:
        type: choice
        values:
          - Rabies
          - DHPP
          - FVRCP
          - Bordetella

match/base.yml (add under the existing matches list)
  - trigger: ";dt"
    replace: "{{today}}"
    vars:
      - name: today
        type: date
        params:
          format: "%m/%d/%Y"

Note on ;rem: the offset of 86400 seconds means tomorrow is always the next calendar day. For Friday reminders about Monday visits, staff should use a second trigger with offset 259200, or type the date in a form field instead.

4. App notes
- SMS portal strips line breaks, so every replace above is one line on purpose.
- Practice management notes field: forms work, but the form window may open behind the app the first time; click it once.
- NeverSend check: none of the three messages contain diagnoses, prices, or doses. If someone asks for a ;price trigger, route it to: Please call us and we will go over options with you.
- No filter files needed yet. If expansion misfires in Outlook, add config/outlook.yml with filter_exec: "OUTLOOK.EXE" and enable: false.

5. Tests
Run espanso restart after saving. Then in Notepad:
- ;dt gives today as 10/05/2026 style
- ;rem opens a form, the Vet field is a dropdown, and the output has tomorrow's weekday name
- ;rec asks only for pet
- ;vax asks for pet and shows four vaccines
If a trigger does nothing, run espanso log and look for a YAML parse error with a line number.

Reviews (0)

Please login to leave a review.
Loading reviews...