Skip to the documentation
CLI

Sign-up forms

Every command for sign-up forms and the people who fill them in, with worked examples.

How it fits together

A sign-up form adds the people who fill it in to your audiences. It keeps a draft and a live copy: update changes the draft and the settings, and publish puts the draft live. Reading needs forms:read and changing needs forms:write. resend-confirmation, and any change that makes the form send mail, also needs emails:send.

Terminal
openemail forms create --name "Newsletter sign-up" --starter newsletter --publishopenemail forms list-submissions frm_3b9d2e7a1c4f80d56e2a9b14 --status pendingopenemail forms analytics frm_3b9d2e7a1c4f80d56e2a9b14 --days 30

Forms

CommandWhat it does
openemail forms listOne page of the forms, newest first, with their status and numbers
openemail forms create --name <value>Make a draft from --starter, a --document file or one email field. --publish puts it live at once
openemail forms get <id>One form with its draft, its live copy and its settings
openemail forms update <id>Change the name, the --document draft or any settings, such as --settings-double-opt-in, in one call
openemail forms publish <id>Put the draft live
openemail forms pause <id>Stop a published form taking sign-ups
openemail forms resume <id>Open a paused form again
openemail forms duplicate <id>Copy a form into a new draft, without its sign-ups
openemail forms design --brief <value>Design a new draft form from a written brief, as Create with AI does in the app. It spends one AI action
openemail forms redesign <id> --instructions <value>Change the draft of a form from written instructions, as Ask AI does in the form builder. It spends one AI action
openemail forms delete <id>Delete a form and its sign-ups after you confirm. A browser sign-in also asks for a verification code
openemail forms list-startersThe starting points a new form can begin from
openemail forms get-starter <slug>One starting point with its document
openemail forms analytics <id>Views, sign-ups and people added over a window, 30 days unless --days or --minutes says otherwise

Submissions

CommandWhat it does
openemail forms list-submissions <id>One page of sign-ups, newest first. --q searches email addresses and --status picks pending or added
openemail forms get-submission <id> <submission-id>One sign-up with every answer
openemail forms delete-submission <id> <submission-id>Delete one sign-up after you confirm. The person stays in your contacts
openemail forms delete-submissions <id> <submission-ids...>Delete up to 200 sign-ups after you confirm
openemail forms approve-submission <id> <submission-id>Add a waiting sign-up without its confirmation. Needs contacts:write too
openemail forms resend-confirmation <id> <submission-id>Email a waiting sign-up a fresh confirmation link, unless one went out in the last ten minutes. Needs emails:send too

Signing someone up

subscribe posts to a published form as its page does. It needs no key and no sign-in, so it works signed out. Pass the other answers as JSON with --data, and the page the form was on with --oe-source.

Terminal
openemail forms subscribe frm_3b9d2e7a1c4f80d56e2a9b14 --email [email protected] --data '{"first_name":"Ann","consent":true}'

A missing or wrong answer exits with code 7 and lists each field and its reason. A paused form exits with 6, and too many sign-ups from one network with 8.