Skip to content

Motions by Pruma

Run your go-to-market routine as code.

A motion takes a list of companies through the steps your team does by hand every week. It looks each one up, asks the right person when something is unclear, and proposes CRM updates that an approver signs off before anything is written.

A batch of eight companies moving through a six-step motion
CompanyLane
Metalúrgica AuroraMoving
Laticínios Serra VerdeMoving
Pátio LogísticaWaiting
Café BandeiranteDropped
Nuvem ClaraMoving
Ateliê IpêMoving
Vale do Aço UsinagemParked
Rio Doce TêxtilMoving
  • Done
  • Running
  • Retrying
  • Asked
  • Failed
  • Approval
  • Stopped
  • Pending
  • Write the routine once

    A motion is a folder in git: a motion.yaml that lists the steps, and a short TypeScript file for each one. You test it on your laptop against recorded answers, then push it.

  • People decide the unclear cases

    When a step can't tell on its own, it asks a closed question, with evidence and a recommended answer, to whoever owns that kind of decision. A deadline and a default keep the batch moving.

  • Nothing reaches the CRM unapproved

    Steps only propose CRM changes. Motions seals them into a changeset that shows the before and after of every record, and nothing is written until an approver signs it off.

motion.yaml lists the steps and who answers each kind of question. Each step is a TypeScript function that gets one company and returns facts, a question, or a change it proposes to the CRM.

This one checks who registered each company’s domain, asks when the registrant looks like a different company, and drafts a CRM note for an approver to sign off. It’s the motion the Quickstart runs.

motions/domain-check/motion.yaml
title: Domain check
approvers: [ana]
reasons: [no_domain, unregistered]
input: { list: first-batch }
steps:
- id: domain
title: Look up the domain
run: steps/domain.ts
sources: [rdap.lookup]
- id: note
title: Draft a CRM note
run: steps/note.ts
crm: { propose: [notes.create] }
- id: write
kind: changeset
title: Write the notes
approval: required
queues:
domain_owner: { title: Who owns this domain?, owner: ana, deadline: 1d, default: hold }

Motions is built by Pruma. These docs describe what the platform does today; Limitations lists what it doesn't do yet. Open the app