Saved Replies

Saved replies are reusable response templates stored as Markdown files in your repository. Answer common questions in one command instead of typing the same reply every time.

How it works

  1. Create Markdown files in .github/scitor/replies/ (or a custom path)
  2. Each .md file is one reply β€” the filename becomes the reply name
  3. Use /reply <name> to expand and send the reply as an email
.github/
  scitor/
    replies/
      billing-faq.md
      reset-password.md
      known-issue-login.md
      feature-request-ack.md

Because replies are files in your repository, they’re versioned, reviewable via pull requests, and editable directly in GitHub’s web interface β€” the same workflow you use for code and documentation.

Reply file format

A reply file is plain Markdown with optional YAML frontmatter:

---
description: Answer common questions about billing, plans, and invoices
tags: [billing, pricing]
---

Hi {{customer_name}},

Thanks for getting in touch about your plan.

Here's what's included on each tier:

| Plan | Price | Outbound emails |
|------|-------|-----------------|
| Free | $0/month | 100/month |
| Pro  | $9/month | 500/month |

You can upgrade at any time by typing `/upgrade` on any open ticket.

Frontmatter fields

Field Type Description
description string Shown in /reply list and AI suggestions
tags string[] Used for /reply search filtering

Both fields are optional. If omitted, the reply still works β€” it just won’t have a description in the list view.

Template variables

Variables use {{double_braces}} syntax and are expanded from the current ticket context when the reply is sent:

Variable Resolves to
{{customer_name}} First name from the sender’s email header (falls back to β€œthere”)
{{customer_email}} Sender’s email address
{{issue_title}} Issue or Discussion title
{{issue_number}} Issue number (e.g. #42)
{{issue_url}} Full URL to the GitHub Issue or Discussion
{{repo}} Repository name (e.g. acme/support)
{{agent_name}} GitHub username of the agent who ran the command
{{today}} Current date (YYYY-MM-DD)

Unknown variables are left as-is and a warning is posted so you can fix the template.

Commands

/reply <name>

Expand the template, apply variables, and send the result as an email to the customer.

/reply billing-faq

Scitor will:

  • Fetch the reply file from your repository
  • Expand all {{variables}} from the ticket context
  • Render Markdown to HTML (same pipeline as /send)
  • Send the email to the customer
  • Add a πŸš€ reaction to your comment
  • Post a confirmation (unless disabled with /skip-success-comment)

/reply <name> draft

Expand the template and post it as a preview comment β€” without sending an email. Use this to review the expanded content before committing to a send.

/reply billing-faq draft

The preview is posted as a bot comment marked β€œnot sent”. If it looks good, run /reply billing-faq to send.

/reply list

Show all available saved replies with their descriptions.

/reply list

Returns a formatted table of every .md file in your replies folder.

/reply search <keyword>

Search replies by name, description, or tag.

/reply search billing

Configuration

Configure the replies path and AI suggestions in your .github/scitor.yaml:

replies:
  path: .github/scitor/replies   # default
  ai_suggest: true               # Suggest replies after AI triage (Pro)
  ai_suggest_threshold: 0.75     # Confidence threshold (0–1)
Field Type Default Description
path string .github/scitor/replies Folder containing reply files
ai_suggest boolean true Post reply suggestions on inbound (Pro)
ai_suggest_threshold number 0.75 Minimum confidence for suggestions

AI reply suggestions (Pro)

When AI triage is enabled, Scitor checks if any saved reply matches the detected category (e.g., billing, bug-report). If a match is found, a suggestion comment is posted on the new ticket:

πŸ’‘ Suggested reply: This looks like a billing question. Try /reply billing-faq to respond instantly.

This is posted alongside the AI triage labels β€” before the agent has read the ticket. The agent sees both the AI classification and a ready-made reply in one glance.

Matching works by comparing the AI-detected category against reply names, tags, and descriptions. Name your reply files after common categories for the best experience.

Caching

Reply files are cached at the edge (Cloudflare Workers KV) for 5 minutes. When you push changes to your reply files, the cache is automatically invalidated.

Tips

  • Name files descriptively β€” use billing-faq.md, not reply-1.md
  • Add tags β€” they make /reply search more useful
  • Write descriptions β€” they appear in /reply list and help agents find the right reply quickly
  • Use draft mode first β€” /reply <name> draft lets you preview before sending
  • Review via PR β€” reply quality improves when the team reviews changes like any other content

Info

Saved replies are available on both Free and Pro plans. AI reply suggestions are Pro only.

Scitor β€” Turn GitHub into your support platform