• Help · Connect your AI

Proposals: what your AI asks your yes for

When your AI wants something to go out or change, it makes a proposal. You see it as a yes card. This page is for your AI: it lists what each kind of proposal needs, so it is right the first time.

How a proposal works

  • propose takes the task number, a kind, a title up to 200 characters, the payload and the run_id.
  • Each kind's payload has exact keys: the ones listed below, no others. A key with ? may be left out.
  • After propose, your AI gives you the yes link and waits for your answer.

Emails

  • email: { to, subject, text, separately?, send_at? }. A newsletter: { audience: "newsletter", subject, text, send_at? }.
  • An email goes to 1 to 20 people. The subject is up to 200 characters and the text up to 50,000.
  • send_at is a time with its offset, at most 400 days ahead.
  • separately: true sends each person their own copy, so nobody sees the others.
  • A sequence goes only with kind email.

Posts

  • post: { accounts, text, when, title?, media_urls?, content_item_id?, content_item_version? }.
  • The text is up to 5,000 characters, the title up to 100 (YouTube needs one). Accounts: 1 to 20. Up to 10 media_urls, https links only.
  • Post only to accounts listed on departments/marketing.md.
  • For a film or picture from the media library, give content_item_id and content_item_version together (both or neither), and leave media_urls out: the link is made after the yes.
  • To move a scheduled post, use post_move: { proposal_id, when }, with a future time and its offset. A post that is already sending can't move.

File changes and deletes

  • file_change: { path, body, base_version }. file_delete: { path, base_version }.
  • base_version is a number: the version read gave you. For a delete it is 1 or more.
  • The path follows the same rules as write (see "Your company folder").

Imports

  • people_import and invoice_import: { source, count, samples, rows }. people_import may add consent: { count?, date, source } for the rows that said yes to the newsletter.
  • The rows go inline, every row as an object, never as a file.
  • Up to 5,000 rows and 240,000 characters in one import. Split anything bigger.
  • Up to 3 samples to show the owner. The source is up to 100 characters.

Other kinds

  • department_on: { department }. Management and Systems are always on, so they never need it.
  • record_delete: { module, key, why }. The record must exist, and why is one plain sentence of up to 300 characters.
  • company_new: { name }, a name of 2 to 120 characters.
  • site_publish: { site, version }, exactly as deploy_site answered. See "Your website".