openemail automations
كل أمر في مساحة الأسماء هذه، مع وسائطه وخياراته وأمثلته.
الأوامر
Emails and other steps that run by themselves for each contact, such as a welcome series or a birthday note: build a draft from a starter or your own trigger and steps, publish, pause, resume and archive it, send a test, read its versions and statistics, and enroll contacts or take them out.
يقبل كل أمر هنا أيضًا الخيارات العامة، مثل --json و--profile و--dry-run. اطّلع على الخيارات العامة
automations listautomations createautomations list-startersautomations getautomations updateautomations deleteautomations publishautomations pauseautomations resumeautomations archiveautomations duplicateautomations send-testautomations list-versionsautomations restore-versionautomations statsautomations list-enrollmentsautomations get-enrollmentautomations enrollautomations exit-enrollment
openemail automations list
List one page of the automations in the workspace
lsالاستخدام
openemail automations list [flags]
Returns one page of the automations the caller can reach, the most recently saved first, without their definitions or settings. Paging is keyset: --limit takes 1 to 100 and defaults to 50, and nextCursor goes back as --cursor while hasMore is true.
Each automation carries its status, triggerKind, how many steps and emails the draft holds, hasUnpublishedChanges, publishedVersion and counts: the contacts in it now, and the ones that completed or left in all its time, counted at the moment of the read. A paused automation says why in pausedReason.
Read one with get for the draft definition, the published one, the settings and the problems that would stop a publish.
Add --all to walk every page: a table on a terminal, one JSON object per line when piped or with --ndjson, and one { items, hasMore, nextCursor } document with --json. --max <n> stops after that many items.
الخيارات
--status <value>Only automations in this state:
draft,live,pausedorarchived.--limit <n>Rows per page, a whole number from 1 to 100. The server defaults to 50.
الافتراضي50--cursor <value>The
nextCursorfrom the previous page, passed back exactly as it came. One that names no automation is a 400invalid_cursor.--allFetch every page and stream the items as they arrive.
--max <n>Stop after this many items. Implies
--all.--ndjsonPrint every item as one JSON object per line. Implies
--all
أمثلة
openemail automations listopenemail automations list --status liveopenemail automations list --all --max 100openemail automations list --all > automations.ndjsonمتاح أيضًا في
openemail automations create
Create an automation as a draft
newaddالاستخدام
openemail automations create --name <value> [flags] openemail automations create --data <json|@file|-> [flags]
Makes a draft automation and returns it whole, in the shape get returns. Its trigger and steps come from definition when you send one, from the starter named in starter when you do not, and otherwise the draft starts empty. settings changes any of the defaults.
A draft may be incomplete: problems in the answer lists what is still missing, such as a template or a from address a starter leaves for you. Nothing runs until publish, which needs a complete draft and emails:send.
الخيارات
--name <value>What the workspace calls the automation, trimmed, 1 to 120 characters. Contacts never see it, and it need not be unique. Required, here or in
--data.--description <value>A note for the workspace, at most 500 characters. Contacts never see it.
--starter <value>Begin from a starter, by the
sluglistStartersreturns:welcome-series,trial-follow-up,birthdayorwin-back. Ignored whendefinitionis sent. An unknown slug is 422invalid_automation.--definition <json|@file|->The trigger and the steps, in the shape
getreturns asdefinition.triggersays what starts the automation:audience_joinedwithaudienceIdandincludeImported,form_submittedwithformId,eventwitheventNameandfilters,datewithfield,audienceIdandoffsetDays, ormanual.entryis the key of the first step, andstepsholds every step:send_email,wait,branch,add_to_audience,remove_from_audience,update_field,webhookorexit. Each step has a uniquekeyof 3 to 24 lowercase letters and digits starting with a letter, and names the next step by key innext, or inyesandnofor a branch. Null ends the path. Paths never join or loop, and a definition holds at most 50 steps. Leave it out to usestarteror an empty draft. JSON shaped asAutomationDefinition, inline or from a file with @path.--settings-timezone <value>The IANA time zone the sending window and waits until a day and time are read in, such as
Europe/London. Defaults toUTC.--settings-send-window <json|@file|->When emails may go out:
daysof the week, where 0 is Sunday, andstartMinutetoendMinuteof the day, counted from midnight. An email due outside it waits for the window to open. Null, the default, sends at any time. JSON shaped asAutomationSendWindow | null, inline or from a file with @path.--settings-reentry-days <n>How many days after a contact finishes before they may enter again, from 1 to 3650. Null, the default, lets each contact through once only.
--settings-exit-on-leaveTake a contact out when they leave the audience that started the automation. Defaults to true.
--settings-list-audience-id <value>The audience an unsubscribe from one of these emails is recorded in. Null, the default, uses the audience that starts the automation, or the built-in audience of every contact when no audience starts it. An id that is not an audience of the workspace is 422
invalid_automation.--data <json|@file|->The whole
bodyas JSON, inline, from a file with @path, or - for standard input. Flags override its keys.
أمثلة
openemail automations create --name 'Welcome series'openemail automations create --name 'Welcome series' --starter welcome-series --settings-timezone Europe/Londonopenemail automations create --data @automation.jsonمتاح أيضًا في
openemail automations list-starters
List the ready-made automations to start from
الاستخدام
openemail automations list-starters [flags]
Returns the starting points the app offers when somebody makes an automation: a welcome series, a trial follow-up, a birthday note and a win-back. Each comes with its whole definition, so you can read it, change it and send it to create, or pass its slug to create as starter.
A starter leaves the audience, the templates and the from address as empty strings for you to fill in. The list is the same for every workspace and is not paginated.
أمثلة
openemail automations list-startersopenemail automations list-starters --jsonمتاح أيضًا في
openemail automations get
Retrieve an automation with its definition and settings
showviewالاستخدام
openemail automations get <id> [flags]
Returns the whole automation: the draft definition you edit, published, the definition of the version that is running, settings, fresh counts and problems.
problems is what is wrong with the draft at the moment of the read, each with a code, the path of the field, the stepKey, a message and blocking, which is false for a warning. An empty list means the draft is ready, though publish checks more: that every template can be sent and that the caller may send from every from address.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.
أمثلة
openemail automations get aut_5c1e9a7b3d2f48e6a0b4c7d1openemail automations get aut_5c1e9a7b3d2f48e6a0b4c7d1 --jsonمتاح أيضًا في
openemail automations update
Change the draft, the settings or the name of an automation
editالاستخدام
openemail automations update <id> [flags]
A partial update that returns the automation whole. definition replaces the draft, and a live automation keeps running its published version until you publish again, so an edit never changes the path of a contact who is halfway through. settings is merged field by field and takes effect at once.
Read the automation, change it and send --expected-updated-at with the updatedAt you read. If someone saved it in between, the call is refused with 409 version_conflict instead of writing over their change.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.
الخيارات
--name <value>New name, trimmed, 1 to 120 characters.
--description <value>New note, at most 500 characters. Null clears it.
--definition <json|@file|->The new draft, whole. The trigger and the steps, in the shape
getreturns asdefinition.triggersays what starts the automation:audience_joinedwithaudienceIdandincludeImported,form_submittedwithformId,eventwitheventNameandfilters,datewithfield,audienceIdandoffsetDays, ormanual.entryis the key of the first step, andstepsholds every step:send_email,wait,branch,add_to_audience,remove_from_audience,update_field,webhookorexit. Each step has a uniquekeyof 3 to 24 lowercase letters and digits starting with a letter, and names the next step by key innext, or inyesandnofor a branch. Null ends the path. Paths never join or loop, and a definition holds at most 50 steps. JSON shaped asAutomationDefinition, inline or from a file with @path.--settings-timezone <value>The IANA time zone the sending window and waits until a day and time are read in, such as
Europe/London. Defaults toUTC.--settings-send-window <json|@file|->When emails may go out:
daysof the week, where 0 is Sunday, andstartMinutetoendMinuteof the day, counted from midnight. An email due outside it waits for the window to open. Null, the default, sends at any time. JSON shaped asAutomationSendWindow | null, inline or from a file with @path.--settings-reentry-days <n>How many days after a contact finishes before they may enter again, from 1 to 3650. Null, the default, lets each contact through once only.
--settings-exit-on-leaveTake a contact out when they leave the audience that started the automation. Defaults to true.
--settings-list-audience-id <value>The audience an unsubscribe from one of these emails is recorded in. Null, the default, uses the audience that starts the automation, or the built-in audience of every contact when no audience starts it. An id that is not an audience of the workspace is 422
invalid_automation.--expected-updated-at <value>The
updatedAtyou read, as an ISO 8601 instant. When the automation was saved since, the call is refused with 409version_conflictand nothing is written.--data <json|@file|->The whole
patchas JSON, inline, from a file with @path, or - for standard input. Flags override its keys.
أمثلة
openemail automations update aut_5c1e9a7b3d2f48e6a0b4c7d1openemail automations update aut_5c1e9a7b3d2f48e6a0b4c7d1 --jsonمتاح أيضًا في
openemail automations delete
Delete an automation with its versions and history
rmdelremoveالاستخدام
openemail automations delete <id> [flags]
Deletes the automation with its versions, its enrollments and its statistics. Contacts in it stop at once and get nothing more. The emails it already sent stay in emails.list.
There is no undo. To retire an automation and keep its history, use archive.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.
أمثلة
openemail automations delete aut_5c1e9a7b3d2f48e6a0b4c7d1openemail automations delete aut_5c1e9a7b3d2f48e6a0b4c7d1 --yesمتاح أيضًا في
openemail automations publish
Publish the draft and turn the automation on
الاستخدام
openemail automations publish <id> [flags]
Saves the draft as the next version and sets the automation live, so its trigger starts taking contacts in. Contacts already in it stay on the version they entered on. Publishing a paused automation turns it back on. It takes no body.
The draft has to be complete: a trigger, at least one step, every email with a published template that declares unsubscribeUrl and a from address the caller may send as, and every audience, form and webhook it names still there. Anything else is 422 invalid_automation, and the error's body lists every problem that blocks it under error.problems.
The automation sends as whoever published it. When that API key is revoked, expires or is turned off, the automation pauses itself with pausedReason key_revoked.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.
أمثلة
openemail automations publish aut_5c1e9a7b3d2f48e6a0b4c7d1openemail automations publish aut_5c1e9a7b3d2f48e6a0b4c7d1 --yesمتاح أيضًا في
openemail automations pause
Stop a live automation without losing anybody
الاستخدام
openemail automations pause <id> [flags]
Stops a live automation. Nobody new enters, and everyone in it stays where they are and moves on when it is resumed. The automation.paused webhook event fires. Pausing a paused automation changes nothing. It takes no body.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.
أمثلة
openemail automations pause aut_5c1e9a7b3d2f48e6a0b4c7d1openemail automations pause aut_5c1e9a7b3d2f48e6a0b4c7d1 --jsonمتاح أيضًا في
openemail automations resume
Turn a paused automation back on
الاستخدام
openemail automations resume <id> [flags]
Turns a paused automation back on with the version it was running, without publishing the draft. Contacts that were held move on, and from now on it sends as the caller. Resuming a live automation changes nothing. It takes no body.
The published version is checked again first, exactly as publish checks a draft. An automation OpenEmail paused, because its from address, its templates or an audience went away, stays paused with 422 invalid_automation until what stopped it is fixed.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.
أمثلة
openemail automations resume aut_5c1e9a7b3d2f48e6a0b4c7d1openemail automations resume aut_5c1e9a7b3d2f48e6a0b4c7d1 --yesمتاح أيضًا في
openemail automations archive
Retire an automation for good and keep its history
الاستخدام
openemail automations archive <id> [flags]
Retires an automation. Everyone in it leaves with the exit reason archived, nobody enters again, and it can no longer be changed, published or resumed. Its versions, enrollments and statistics stay readable. Archiving an archived automation changes nothing. It takes no body.
An automation with many contacts in it empties in the background over the next minutes. To start again from its steps, use duplicate.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.
أمثلة
openemail automations archive aut_5c1e9a7b3d2f48e6a0b4c7d1openemail automations archive aut_5c1e9a7b3d2f48e6a0b4c7d1 --yesمتاح أيضًا في
openemail automations duplicate
Copy an automation into a new draft
الاستخدام
openemail automations duplicate <id> [flags]
Makes a new draft with the same draft definition and settings, named after the original with (copy) on the end. The copy has no versions, no contacts and no statistics, and it works on an archived automation too. It takes no body.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.
أمثلة
openemail automations duplicate aut_5c1e9a7b3d2f48e6a0b4c7d1openemail automations duplicate aut_5c1e9a7b3d2f48e6a0b4c7d1 --jsonمتاح أيضًا في
openemail automations send-test
Send yourself the email of one step
الاستخدام
openemail automations send-test <id> --step-key <value> [flags] openemail automations send-test <id> --data <json|@file|-> [flags]
Sends the email of one step of the draft to one address, so you can read it before publishing. Contact values are filled from a sample contact, values that come from an event are left empty, and the subject starts with [Test]. It counts toward the monthly sends, is not tracked and enrolls nobody.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.
الخيارات
--step-key <value>The
keyof the email step to send, from the draftdefinition. Required, here or in--data.--to <value>Where the test goes. Left out, it goes to the account email of the person the key or app acts for: the workspace owner for an API key.
--data <json|@file|->The whole
bodyas JSON, inline, from a file with @path, or - for standard input. Flags override its keys.
أمثلة
openemail automations send-test aut_5c1e9a7b3d2f48e6a0b4c7d1 --step-key welcomeopenemail automations send-test aut_5c1e9a7b3d2f48e6a0b4c7d1 --step-key welcome --to [email protected]openemail automations send-test aut_5c1e9a7b3d2f48e6a0b4c7d1 --data @automation.jsonمتاح أيضًا في
openemail automations list-versions
List the published versions of an automation
الاستخدام
openemail automations list-versions <id> [flags]
Returns every published version, the newest first, each with its whole definition. current marks the one that is running. A publish that changed the definition adds a version, and each contact stays on the version they entered on. A draft that was never published has none. The list is not paginated.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.
أمثلة
openemail automations list-versions aut_5c1e9a7b3d2f48e6a0b4c7d1openemail automations list-versions aut_5c1e9a7b3d2f48e6a0b4c7d1 --jsonمتاح أيضًا في
openemail automations restore-version
Copy an earlier version back into the draft
الاستخدام
openemail automations restore-version <id> <version> [flags]
Copies the definition of an earlier version into the draft, replacing what the draft holds. Nothing that is running changes until you publish. It takes no body.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.<version>مطلوبThe number of the version, from
listVersions. A whole number from 1 up.
أمثلة
openemail automations restore-version aut_5c1e9a7b3d2f48e6a0b4c7d1 1openemail automations restore-version aut_5c1e9a7b3d2f48e6a0b4c7d1 1 --jsonمتاح أيضًا في
openemail automations stats
Read how an automation has performed
الاستخدام
openemail automations stats <id> [flags]
Returns the numbers of an automation over a window: totals for the whole automation, steps with the same numbers step by step, and series with a point for each UTC day on which something happened. The window defaults to the last 30 days and reaches back at most 366 days before until.
The steps are those of the published version, or of the draft when nothing is published. totals.active and the waiting of each step are counted at the moment of the read, whatever the window. Opens are a floor, because many mail apps hide them.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.
الخيارات
--since <when>Where the window starts, as a
Dateor an ISO 8601 string. Left out, 30 days beforeuntil.--until <when>Where the window ends, as a
Dateor an ISO 8601 string. Left out, now. It has to be later thansince.
أمثلة
openemail automations stats aut_5c1e9a7b3d2f48e6a0b4c7d1openemail automations stats aut_5c1e9a7b3d2f48e6a0b4c7d1 --since 2026-09-01T00:00:00Zopenemail automations stats aut_5c1e9a7b3d2f48e6a0b4c7d1 --jsonمتاح أيضًا في
openemail automations list-enrollments
List one page of the contacts in an automation
الاستخدام
openemail automations list-enrollments <id> [flags]
Returns one page of everyone who is in the automation or has been, the most recent entry first. Each enrollment says who the contact is, the --step-key they are at, whether they are waiting and for which event, what holds a step that is due in heldFor, when they move next in nextRunAt, and how it ended in exitReason.
--limit takes 1 to 200 and defaults to 50. Pass nextCursor back as --cursor, with the same filters, while hasMore is true.
Add --all to walk every page: a table on a terminal, one JSON object per line when piped or with --ndjson, and one { items, hasMore, nextCursor } document with --json. --max <n> stops after that many items.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.
الخيارات
--status <value>Only enrollments in this state:
active,completedorexited.--step-key <value>Only contacts at the step with this
key.--q <value>Only contacts whose address or name contains this text, compared without case, up to 200 characters.
--limit <n>Rows per page, a whole number from 1 to 200. The server defaults to 50.
الافتراضي50--cursor <value>The
nextCursorfrom the previous page, passed back exactly as it came. One that names no enrollment of this automation is a 400invalid_cursor.--allFetch every page and stream the items as they arrive.
--max <n>Stop after this many items. Implies
--all.--ndjsonPrint every item as one JSON object per line. Implies
--all
أمثلة
openemail automations list-enrollments aut_5c1e9a7b3d2f48e6a0b4c7d1openemail automations list-enrollments aut_5c1e9a7b3d2f48e6a0b4c7d1 --status activeopenemail automations list-enrollments aut_5c1e9a7b3d2f48e6a0b4c7d1 --all --max 100openemail automations list-enrollments aut_5c1e9a7b3d2f48e6a0b4c7d1 --all > automations.ndjsonمتاح أيضًا في
openemail automations get-enrollment
Retrieve one contact's way through an automation
الاستخدام
openemail automations get-enrollment <id> <enrollment-id> [flags]
Returns one enrollment with runs: what each step did for the contact, oldest first, up to 200. A run has the stepKey, the kind of step, an outcome such as sent, waited, yes, no, skipped or failed, the emailId a send step produced and a detail that says why a step was skipped or failed.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.<enrollment-id>مطلوبEnrollment id such as
aen_2b8d4f6a1c3e5079b6d8f0a2, fromlistEnrollments.
أمثلة
openemail automations get-enrollment aut_5c1e9a7b3d2f48e6a0b4c7d1 aen_2b8d4f6a1c3e5079b6d8f0a2openemail automations get-enrollment aut_5c1e9a7b3d2f48e6a0b4c7d1 aen_2b8d4f6a1c3e5079b6d8f0a2 --jsonمتاح أيضًا في
openemail automations enroll
Put a contact into a live automation
الاستخدام
openemail automations enroll <id> [flags]
Puts one contact into a live automation at its first step, whatever its trigger is. Name the contact with email or --contact-id, never both. The contact has to exist already: save one with contacts.create first. data gives the steps the values they would otherwise read from an event.
A contact is in an automation once at a time, and comes back in only after settings.reentryDays. An address on the suppression list, or one that unsubscribed from the audience the automation sends through, is refused.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.
الخيارات
--email <value>The contact, by email address. Send this or
--contact-id.--contact-id <value>The contact, by id, as an event or another enrollment carries it. Send this or
email.--body-data <json|@file|->Values the steps can read wherever a value comes from the event, such as an order number for an email. At most 50 keys and 4 KB of JSON. JSON shaped as
Record<string, unknown>, inline or from a file with @path.--data <json|@file|->The whole
bodyas JSON, inline, from a file with @path, or - for standard input. Flags override its keys.
أمثلة
openemail automations enroll aut_5c1e9a7b3d2f48e6a0b4c7d1openemail automations enroll aut_5c1e9a7b3d2f48e6a0b4c7d1 --email [email protected]متاح أيضًا في
openemail automations exit-enrollment
Take a contact out of an automation
الاستخدام
openemail automations exit-enrollment <id> <enrollment-id> [flags]
Ends an active enrollment at once with the exit reason removed. The contact gets nothing more from this automation, and stays in the contacts and in their audiences. It takes no body.
الوسائط
<id>مطلوبAutomation id such as
aut_5c1e9a7b3d2f48e6a0b4c7d1.<enrollment-id>مطلوبEnrollment id such as
aen_2b8d4f6a1c3e5079b6d8f0a2, fromlistEnrollments.
أمثلة
openemail automations exit-enrollment aut_5c1e9a7b3d2f48e6a0b4c7d1 aen_2b8d4f6a1c3e5079b6d8f0a2openemail automations exit-enrollment aut_5c1e9a7b3d2f48e6a0b4c7d1 aen_2b8d4f6a1c3e5079b6d8f0a2 --yes