← All posts

Vocion 8.0: one place for when, and a Marketing app

Vocion 8.0 puts every schedule and event in automations, on a named clock, and sends a mission's result when its check finishes. The new Marketing app runs Google Ads with an agent, and every spend change waits for a person.

Vocion Teamvocion-v8.0.0

Status: shipped. #1454 and #1453, cut as v8.0.0. One migration (0220) and a manifest codemod. This is a major version: read Upgrading to 8.0 before you pin it.

One place for when

A schedule or an event now lives in one place: an automation. A mission says what it is for and where its result goes. It no longer carries a schedule of its own.

# automations/marketing-daily-update.yaml
when:
  schedule: '30 6 * * 1-5'
  timezone: workspace          # or an IANA zone, e.g. America/Los_Angeles
do:
  checkMission: daily-marketing-update

Results go out when the work is done

A mission names where its result goes:

# missions/daily-marketing-update.yaml
deliver:
  email: true                  # the workspace's accountable person, or a list of addresses

The briefing a check published is mailed when that check finishes. A check that published nothing sends nothing. A check that failed sends a short note with the reason and a link to the run, never an older briefing under today's subject. Before 8.0 a second automation mailed the briefing at a fixed time after the first, so a slow or failed check sent yesterday's.

Wake up when something happens

An automation can start from an event instead of a clock. The Marketing app below runs a light guard every four hours. It uses no model and raises three events:

Each rings once. An automation on those events has the Marketing lead say what happened in three lines and propose the fix as a card for you to approve.

A Marketing app

Marketing runs paid search with an agent (#1453). Connect Google Ads with one Google login.

Google retired Ads API developer tokens in September 2026, and the connector no longer needs one. See Marketing.

Also since 7.4

Upgrading to 8.0

What breaks, and what happens if you do nothing:

WasIsIf you do nothing
workspace.yaml version: 1version: 2Version 1 loads through 8.x with warnings. It is removed in 9.0.
A mission's schedule:An automation with when.schedule and do.checkMissionIn a version-1 workspace it runs as the automation <mission>-check, in UTC. In version 2 it is an error.
Every schedule read in UTCRead in when.timezone, else the workspace's zoneVersion-1 workspaces keep UTC, so nothing moves.
A report mail timed after a checkThe mission's deliver:The timed mail still sends, and says when its briefing is not new.
  1. Deploy 8.0.0. Migration 0220 runs with the deploy. It backs up every schedule, pins the ones with no time zone to UTC, and moves each mission schedule to an automation.
  2. Run workspace:apply for each workspace right after the deploy.
  3. Move each workspace repo to version 2 with the codemod. It shows a diff first, and a second run changes nothing:
npm run migrate:automations -w @vocion/core -- path/to/workspace            # the diff
npm run migrate:automations -w @vocion/core -- path/to/workspace --write    # apply it
npm run migrate:automations -w @vocion/core -- path/to/workspace --write --localize  # move simple schedules onto the workspace's clock

Then run workspace:check and apply. To roll back, deploy your last 7.x pin and apply; the upgrade guide in the repository has the SQL that restores the backed-up schedules. The runner image line is now 8.x. See Missions, workflows and automations and Release lines.