Store email from the store's own domain.
Verify the store's domain once, add a sending address on it, and Arky sends receipts, sign-in codes, booking, cart, form, return, and renewal emails at their moments. A newsletter is a free customer group people join, and each issue is a broadcast to its members.
Best for
- order receipts
- booking reminders
- staff alerts
- newsletters
Use it when the store should send its own transactional email and newsletters without another email tool.
What this module gives your project.
Verified domains
Use this capability from your custom frontend while the operational side stays manageable in Arky admin.
Sending and receiving addresses
Use this capability from your custom frontend while the operational side stays manageable in Arky admin.
Template families with explicit moment selections
Use this capability from your custom frontend while the operational side stays manageable in Arky admin.
Broadcasts to customer groups
Use this capability from your custom frontend while the operational side stays manageable in Arky admin.
Unsubscribe and bounce handling
Use this capability from your custom frontend while the operational side stays manageable in Arky admin.
Custom UX with backend state managed in Arky.
- Emails sent by checkout, forms, and bookings
- No email code in the frontend
- Emails in the language of the order
- Newsletter sign-up as a free customer group
A client-facing back office for the same module.
- Domain DNS lines ready to copy
- Template editor with preview and test send
- Broadcast scheduling
- Email history by address
- Suppression list
Code the frontend. Connect Arky as the backend.
Start with the frontend stack the project deserves, then connect only the Arky modules it needs. The Admin, API, SDK, and store email stay behind the custom experience.
- Connect the store's provider and verify its domain there
- Add a sending address and explicitly select templates
- Edit the templates and send broadcasts
import { createOrderToken, initialize } from "arky-sdk/storefront";
const arky = initialize("arky_pk_...", {
locale: "en",
createVisitorIdentity: () => ({
customer_id: crypto.randomUUID(),
session_id: crypto.randomUUID(),
}),
createSessionId: () => crypto.randomUUID(),
createId: () => crypto.randomUUID(),
createOrderToken,
});
const website = await arky.content.load({ collection: { key: "website" } });
const {
items: [catalog],
} = await arky.eshop.catalog.find();
const cart = arky.eshop.cart({ buyer: { type: "customer" }, catalog_id: catalog.id });
const current = await cart.ensure();
const services = await arky.eshop.bookingService.find({
catalog_id: catalog.id,
limit: 6,
});
await arky.actions.track({
key: "website_action",
data: {
page: website.record.id,
cart: current.id,
services: services.items.length,
},
}); Useful API touchpoints.
-
POST /v1/stores/{store_id}/email-provider -
POST /v1/stores/{store_id}/email-addresses -
POST /v1/stores/{store_id}/broadcasts