Skip to main content
Configure an Emailx draft after creating it and selecting its audience. Read the saved setup, change the fields you need, then read it back. Saving configuration keeps the campaign inactive.
Configuration requires package 0.4.0 or newer, a matching API host and a newly issued campaigns:configure grant. Existing keys retain their current grants. Discover capabilities to check request permissions.

Read before editing

Use the returned revision as expected_revision in your next edit. It changes when saved setup or selected email template content changes. Treat the revision as opaque. The response reports editable and edit_blockers for stored campaign state; sender permissions and API scopes are checked separately. IDs in this guide are examples. Discover senders and reply owners in the selected workspace. sender_ids uses Emailx sender IDs, not provider account IDs or email addresses. Disconnected senders may be saved for later repair; selection is not a readiness guarantee.

Configure LinkedIn

Create setup.json with your actual revision and sender IDs:
setup.json
The dry run validates locally and makes no HTTP call. It cannot check the revision, sender ownership or campaign eligibility. Replace the revision placeholder before running it. This configuration supports normal, manual-source drafts with autopilot disabled. AI sourcing, shared-pool workflows and special campaign modes still require the app. You can change audience and sender_context as text context; these fields do not run a search or qualify leads. Use at most one connection request, first, and five message steps. Messages require nonempty text. Notes have at most 300 characters; provider account limits can be lower. Waits are integers from 0 to 14 days. Daily configuration allows 1 to 30 connection requests and 1 to 100 messages; these are validation bounds, not recommended volumes or provider guarantees. Follow recommended sending limits.

Configure email

Use existing template IDs from your workspace. A selected template may be a regular or smart template already created in Emailx; saving its reference does not generate or approve personalized content.
setup.json
Run the same configure/read commands with --channel email. This endpoint supports up to ten template steps, waits of 0 to 90 days, daily volume of 1 to 100 per mailbox and an initial wait of 0 to 90 days. These are API configuration bounds. Mailbox health, warmup, subscription and delivery budgets still apply before sending. Your selected contacts remain unchanged. Add subscribed contacts using the email prospects endpoint. Legacy graph sequences and campaigns with preview, scheduled or sent execution records require the app.

Replacement and recovery rules

Send only the top-level fields you want to change. An omitted field stays unchanged. sender_ids and steps replace their complete lists; an empty list clears that draft selection. schedule replaces the entire schedule and requires every channel-specific schedule field. Use an IANA timezone, unique weekday names and HH:MM start/end within one day, with start before end. When changing existing steps, include their returned id to keep their identity. LinkedIn attachments stay with that ID; changing a step’s type or removing an attached step through this endpoint is rejected. Manage those attachments in Emailx first. Unknown or other-workspace IDs are rejected rather than silently replaced with defaults. For email, reply_owner_subclient_id=null means the workspace owner; a teammate ID must identify an active real teammate. LinkedIn supports reply_routing=sender for the sending profile owner, or person for the selected reply owner. These configure notifications, not an automated reply sender. On stale_revision, read again and reconcile your intended change before submitting a new logical edit with a new idempotency key. After a timeout or uncertain result, reuse the exact original key and body; a revision change under the same key conflicts. Read back after replay because its saved response can describe an earlier revision. approval_status=not_evaluated and activation_status=not_requested make the boundary explicit. Review the audience, generated content and sender settings in Emailx before activation. These configuration endpoints do not launch campaigns or send messages.