Convoy AI

Product Station · HR & scheduling

Shiftly

DemoTemplate

Look up teams, timesheets and overtime reports.

The control station, in brief

This station sits between your agent and the tool. Before any call, it checks who is acting, shows only the useful tools, applies the rules below and keeps track of the task.

It can

  • Look up a team
  • Read a timesheet
  • Produce an overtime report

It asks a human for

  • Nothing in particular

It never has access to

  • Edit a timesheet

Scenario Replays

An agent works through the station. Simulated scenarios, no real data, no key required.

Overtime report

What you will see: The agent reads what is needed, nothing more, and only for the requester's own teams.

Agent connected to the station through MCP
  1. HumanWhat overtime did my team log this week?
  2. AgentI'll find your team, then run the report.
  3. MCP calllookupTeam(manager: "moi")
  4. StationKitchen team found, 8 people.OKRule applied: own-teams-only
  5. MCP callovertimeReport(team: "cuisine", week: "courante")
  6. StationReport ready: 3 people went over 4 hours.OKRule applied: playbook overtime-review
These rules are not yours?

Copy the station, change a limit or an approval step in its configuration file, and get your own station.

Copy and adapt

The configuration in detail

shiftly.yamlRead the docs →

Everything the station does fits in this file. The replay above applies it, and a copy starts from it. The values are examples to adapt, not a recommendation.

station:
  id: shiftly
  kind: product
  policies:
    - {policy: own-teams-only, at: submit}

global:
  language: en
  timezone: Europe/Paris

apis:
  - id: shiftly-api
    operations:
      lookupTeam:          {access: read}
      readTimesheet:       {access: read}
      overtimeReport:      {access: read}
    # not listed, so not available to the agent:
    # editTimesheet

profiles:
  manager-assistant:
    allow: [lookupTeam, readTimesheet, overtimeReport]

policies:
  own-teams-only:
    type: rule
    when: "team not in caller.teams"
    effect: deny
    reason: "A manager sees only their own teams."

skills:
  - {id: lookup-team, uses: lookupTeam}
  - {id: read-timesheet, uses: readTimesheet}
  - {id: overtime-report, uses: overtimeReport}

playbooks:
  - id: overtime-review
    tasks: [lookup-team, overtime-report]

Shared copies

Copies that their authors choose to share will appear here. Each one keeps a link to this original station.