Guide
Create and Run an Email Campaign
Draft, preview, test, schedule, send, and reconcile recipient outcomes.
SoundSync
Prepare, test, and schedule
-
Set the audience
Choose current contacts or a saved dynamic segment; inspect consent, suppressions, product ownership, and date filters.
-
Write the message
Review subject, preview text, HTML/text content, links, and generated brand footer.
-
Test delivery
Use the saved developer support recipient and inspect sender/provider readiness. A test is not an arbitrary audience send.
-
Choose the time
Select send now or a schedule with its timezone. Check daylight-saving transitions; give a duplicated campaign a new intended date.
-
Read the report
Separate provider acceptance, delivery, bounce, open, click, and unsubscribe events.
SoundSync
Build a product cart link
-
Open a campaign
In the campaign editor, open Custom cart link. Set up your storefront first if no storefront URL is available.
-
Choose the products
Use Find products and select between 1 and 100 product IDs. Repeated IDs are deduplicated; the customer still needs an available, checkout-eligible product.
-
Copy or insert
Choose Copy link, or Add cart button to email. The inserted Review your cart button is an ordinary email block: edit its text, preview it and save the campaign.
-
Review the customer journey
Open the generated storefront URL with test products. It adds missing products at quantity one, keeps existing cart items and their quantities, and then shows cart review.
-
Test and send
Test the email and the destination before scheduling or sending. Creating or copying a cart link does not send a campaign, reserve a price or collect a payment.
A prepared cart is not a purchase
The link uses the configured storefront cart URL and an ss_cart query parameter containing comma-separated positive product IDs. It contains no customer session, serial, entitlement or private credential. Link creation does not apply a coupon or promise a discount; checkout recalculates current prices, offer eligibility and tax.
The customer reviews the cart and completes the normal account and checkout steps. Existing cart items are not replaced. If any selected product is unavailable or not checkout-eligible, the link adds none of its selected products and keeps the existing cart. A merge that would exceed 100 cart items is also rejected without changing that cart.
SoundSync
What the generated link contains
https://audio.example/cart?ss_cart=123%2C456
Hosted, branded and embedded storefront destinations
Use the builder-generated URL for the configured storefront, including its hosted path or custom domain. Do not replace its destination with an arbitrary website URL. Other existing query parameters can be retained, but ss_cart must appear only once.
For an embedded storefront, use the current full storefront loader and a host route that actually serves the embedded cart page. The parent forwards ss_cart to the permitted storefront frame; after successful application, the frame and parent clear the parameter to avoid replaying it on refresh. If the external site does not serve the generated cart path, use a reachable hosted storefront destination instead. Standalone page embeds are not a full cart package.
SoundSync
When a cart link cannot be applied
| What the customer sees | What to check |
|---|---|
| Products are no longer available | Check publication, storefront membership and checkout eligibility for every selected product. The existing cart stays intact. |
| The cart is full | The merged cart cannot contain more than 100 items. Remove items before reopening the link. |
| An invalid link or storefront warning | Use a generated link with one ss_cart value and valid IDs, and open it on the configured developer storefront. |
| Products could not be loaded | Retry after the temporary loading failure. Do not treat that message as a completed checkout. |
Keep the campaign list useful
Rename a campaign, including one already sent, without changing its historical message. Duplicate a campaign for a new send. Delete with confirmation only when it is not sending. Deletion removes the recipient report, not billing records, suppressions, or the validity of old unsubscribe links.
A scheduled deal can prepare a campaign draft; it does not authorize an automatic marketing send. Review its audience, content, and schedule separately.
Usage follows provider acceptance
Drafting, scheduling, and a skipped suppressed contact are not billed campaign sends. Provider acceptance records usage even if a later bounce occurs. Campaign test-send accounting is separate; consult the usage guide rather than assuming all tests are charged.
Retry the failed send, not the whole campaign
SoundSync automatically retries eligible failures that happened before provider acceptance, within a bounded retry policy. Retry failed sends handles the remaining safe failures without resending successful recipients.
If a connection fails after the provider may have accepted a message, its outcome needs review. An uncertain-send retry requires a separate confirmation because it can duplicate a message. Provider acceptance is not proof of inbox delivery.
Current email services
Marketing campaigns and growth-flow messages use Elastic Email. Resend delivers supported transactional messages, including account verification and security, purchase and redemption notices, licensing and activation codes, program verification, and subscription billing and recovery. Transactional messages do not consume the marketing-email allowance.
SoundSync
Campaign action errors: recover without duplicate sends
| Operation / code | Next step |
|---|---|
| send-now: CAMPAIGN_SEND_STATE_INVALID, CAMPAIGN_STATE_CHANGED | Reload the campaign. Only send from a supported current state; do not repeat a completed send. |
| send-now: CAMPAIGN_SCHEDULED_NOT_DUE | Wait for the scheduled time or deliberately change the schedule through supported controls. |
| send-now: MARKETING_AUDIENCE_EMPTY | Review the eligible audience and exclusions. Do not override suppression or unsubscribe choices. |
| test, send-now, schedule, retry-failed: MARKETING_PROVIDER_DISABLED / MARKETING_PROVIDER_LOCKED / DEVELOPER_MARKETING_DISABLED | Resolve the named sending configuration or account readiness condition. These 409 responses do not authorize bypassing a gate. |
| MARKETING_FROM_EMAIL_REQUIRED / MARKETING_REPLY_TO_REQUIRED / MARKETING_BUSINESS_ADDRESS_REQUIRED / MARKETING_BRANDING_REQUIRED | Complete the verified sender, reply-to and required business identity/footer before trying again. |
| MARKETING_SUBJECT_REQUIRED / MARKETING_CONTENT_REQUIRED | Complete the message, preview it and then deliberately retry the intended action. |
| schedule: CAMPAIGN_NOT_SCHEDULABLE; INVALID_SCHEDULED_AT / INVALID_DELIVERY_TIMEZONE | Reload state for a 409 conflict. For a 400 input error, use a future date and a valid IANA timezone. |
| resume-send: CAMPAIGN_NOT_SENDING | Reload progress. Resume is for an existing sending campaign, not a resend command. |
| retry-failed: CAMPAIGN_RETRY_STATE_INVALID | Reload. Retry supports campaigns that started sending, not a new draft or analytics repair. |
| retry-failed: CAMPAIGN_RETRY_SCOPE_INVALID / CAMPAIGN_RETRY_CONFIRMATION_REQUIRED | Use safe or uncertain scope; uncertain requires confirmUncertain:true and accepts duplicate-delivery risk. Both input errors are 400. |
| cancel: CAMPAIGN_NOT_CANCELABLE / delete: CAMPAIGN_NOT_DELETABLE | Reload current state; an active send cannot be erased by deleting its campaign. |
| test: TEST_RECIPIENT_REQUIRED | Save the developer support recipient before testing. This 400 response does not allow arbitrary bulk recipients. |
SoundSync
