Templates
Each template is an agent and the workflows it calls. Every write to another service waits for an approver, except the Slack post to your own channel. Each agent runs on a small model, so every template works on Free. A template's agent and workflows count toward your plan's agents and workflows.
Start from a template
- In the dashboard:
Agents → Start from a template, then Deploy. Developers and admins can deploy.
- In a project:
write it into a directory, change what you like, then deploy it as one release.
npx shiftlabs init # list the templates
npx shiftlabs init --template support-triage support-agent
cd support-agent
npm install --save-dev shiftlabs
npx shiftlabs deploy
After a deploy, add the secrets, connections and vars the template needs, then try its sample message. See Templates.
The five templates
| Template | What it does | Waits for approval | Needs |
|---|---|---|---|
github-actions-runbook | Runs a runbook in your own GitHub Actions, waits for its result, and lists recent runs | Starting the runbook | The connection github-actions with the secret GITHUB_ACTIONS_TOKEN, the secret GITHUB_RUNBOOK_SIGNING_KEY and the var GITHUB_RUNBOOK_REPO |
github-triage | Reads an issue, suggests labels and a reply, and posts them | Posting the comment and setting labels | The secret GITHUB_TOKEN for api.github.com |
support-triage | Sorts a support message by kind and urgency, drafts a reply, and posts the triage to your team's Slack channel | Nothing: it only posts to your own channel | The secret SLACK_BOT_TOKEN and the var SLACK_CHANNEL |
lead-qualifier | Looks up a lead in HubSpot, rates it hot, warm or cold with reasons, and records the rating as a note | Writing the note | The secret HUBSPOT_TOKEN for api.hubapi.com |
invoice-assistant | Answers questions about Stripe invoices and refunds them | The refund | The secret STRIPE_KEY for api.stripe.com |
github-actions-runbook
Runs runbooks/<runbook>.sh from your repository in GitHub Actions after an approver says yes. The GitHub workflow signs its result and posts it back, even when the runbook failed. If no signed result arrives in time, the workflow asks GitHub how the run ended.
- Workflows:
github-runbook-runs, andgithub-runbookafter approval. The main workflow is in TypeScript and Python. - Credentials: the GitHub token is a connection's secret, added at the gateway. The credentials your runbooks use stay in GitHub secrets and variables.
- A self-hosted GitHub runner inside your network can reach private systems. It needs outbound HTTPS to
hooks.shiftlabs.orgto send the result. - Setup: Run tools in GitHub Actions.
github-triage
Reads a GitHub issue, suggests labels and a reply, and posts them once an approver agrees.
- Workflows:
github-issue, andgithub-commentandgithub-labelsafter approval. - Token: a fine-grained token with read and write access to the repository's issues.
support-triage
Sorts a support message by kind and urgency, drafts a reply, and posts the triage to your team's Slack channel.
- Workflow:
slack-post. - Token: a Slack bot token (
xoxb-…) with thechat:writescope, invited to the channel, and the channel's id, such asC0123456789.
lead-qualifier
Looks up a lead in HubSpot, rates it hot, warm or cold with reasons, and records the rating as a note after approval.
- Workflows:
hubspot-contact, andhubspot-noteafter approval. - Token: a HubSpot private app token with the
crm.objects.contactsread and write scopes.
invoice-assistant
Answers questions about Stripe invoices and refunds them after approval. A code tool, format-amount, shows Stripe's amounts.
- Workflows:
stripe-invoice, andstripe-refundafter approval. - Key: a Stripe secret or restricted key that can read invoices and create refunds.
Plan limits that apply
| Free | Pro | |
|---|---|---|
| Agents | 3 | 25 |
| Workflows | 10 | 50 |
| Agent messages | 1,000 per 24 h | 250,000 per 24 h |
Template budgets are $0.15 to $0.25 a conversation. See Pricing.