Boldem
Email MarketingBoldem is a Czech customer data and marketing automation platform. Agents manage contacts, mailing lists, and consent, send mass and transactional email and SMS, run automations, and sync carts, orders, and coupons for ecommerce campaigns.
What This Integration Enables
Boldem is a Czech customer data and marketing automation platform, and the regional fit is a real reason teams pick it rather than a footnote. What makes it interesting to work with is that the sending is the smaller half. Carts, orders, order line items, products, data sources, coupon pools and custom events are all first class objects with their own operations, which means the platform holds an actual model of what a customer did rather than a list of addresses with tags attached. A cart with no completed timestamp is an abandoned cart by definition. Setting that timestamp is how a cart becomes an order, and it is what stops the abandonment automation.
Consent is modeled with the same care and the same seriousness. An unsubscribe is a record rather than a flag: it can be global or scoped to one mailing list or one campaign, and it can carry a validity window. Double opt in is a separate object with its own lifecycle, from a pending subscribe request through to a confirmed contact. FlowRunner agents drive the whole of it, from ecommerce sync and coupon issuance through to mass sends, transactional messages and the automations in between, and the human-in-the-loop gate on this page sits exactly where that consent model gets genuinely hard to read.
Without FlowRunner
With FlowRunner
Use Case Scenarios
-
The store's own data, kept current
Orders from Shopify or WooCommerce reach the agent as they happen. Create Cart records an open basket, Update Cart marks it completed when checkout finishes, and Create Order writes the order with its line items. Shipping and payment webhooks then use Update Order State, or Update Order State By External ID when the flow holds the shop's own identifier rather than Boldem's, because that route changes one field instead of replacing the order and its lines. List Websites scopes the identifiers correctly, since an external identifier is only unique within a website. Create Product and Update Product keep the catalog behind the product blocks in templates current, with List Data Sources confirming where each product is filed. Get Order State answers the status question without pulling line items nobody needed.
-
Coupons issued from a pool and reconciled back
Create Coupon Group establishes the pool, and Import Coupons loads a batch of codes into it in one asynchronous call, polled through Get Long Running Operation. When a campaign hands a code to a recipient, the coupon carries the timestamp for that. When the shop reports a redemption, Update Coupon records it, which closes the loop that usually stays open: marketing knows what it issued, and now it knows what came back. List Coupons and Get Coupon read the state of individual codes, Delete Coupon removes one from circulation, and Delete Coupon Group is treated carefully because it takes the codes inside it with it. The reconciliation lands in Google Sheets alongside the campaign that issued them.
-
Behavior in, automations out
Create Custom Event records something the customer did in your own systems, and List Custom Event Schemas is what tells the flow which property names an event is allowed to carry. Automations watching for that event start on their own. Add Contact To Automation is the explicit route when a flow should not wait for a match, and List Automation Contact States and Get Automation Contact State report how far each contact has got, since a row without a finished timestamp is still running. Transactional mail follows the same shape: Send Transactional Email is accepted rather than delivered when it returns, so List Transactional Emails and Get Transactional Email confirm what happened, and Get Transactional Email Content returns the body with its variables already substituted, which is what the recipient actually received. Alerts on failures post to Slack.
Human-in-Loop Highlight
Boldem does not store consent as a flag, and that honesty is what makes it hard. Get Unsubscribes By Identifier can return several records for one address: a global unsubscribe, another scoped to a single mailing list, another scoped to one campaign, and any of them may carry a validity window. When a window lapses, the platform's own rules make that person mailable again, even though nobody re-consented and nothing happened except time passing. Delete Unsubscribe goes the other way and removes a record outright, which turns a choice the person made themselves back into a maybe. Neither the expiry nor the deletion is a decision the API can justify, because the record does not say whether the window was set deliberately by a compliance policy or inherited from an import years ago. So before a mass send the agent reconciles the audience against every unsubscribe record held for it, mails the unambiguous portion, and stops on the rest: "These contacts are technically mailable because their unsubscribe window has expired, and these hold a list scoped unsubscribe while sitting in the audience for a different list. None of them have re-consented. Include them, hold them out, or make the lapsed ones permanent with a new global record?" A named owner answers, and the agent applies the decision consistently, records it against each contact, and uses Create Unsubscribe rather than a deletion where the answer was to make a suppression permanent. Reading a hundred consent records before a send is exactly what an agent should do. Deciding that a lapsed window counts as permission is not.
Agent Capabilities
126 actionsAccount
1- Get Account Info Reads the account the credentials belong to. The cheapest confirmation that the connection is working, because it exercises the credential exchange without touching any data.
Contacts
11- List Contacts Reads a page of contacts. Mailing list membership and custom columns are not returned unless they are asked for.
- Get Contact Reads one contact by its identifier or by its address.
- Create Contact Creates a contact, or updates the existing one with the same address. The overwrite mode decides which, and whether fields the request leaves out are kept or cleared.
- Create Contact Async The same write, queued rather than performed. Used when a flow writes many contacts one at a time and does not need each result immediately.
- Get Contact Async State Reads whether a queued contact write has finished, so a flow can confirm the write landed rather than assuming it.
- Update Contact Replaces a contact rather than merging into it. Every field left out is cleared, including the mailing list assignment, which is why the narrower operations below exist.
- Set Contact Mailing Lists Replaces which mailing lists a contact is on and leaves every other field alone. Sending an empty set is how a contact is taken off all of them.
- Delete Contact Deletes a contact and its history. This is not an unsubscribe: an unsubscribe record is what keeps the consent decision when the record itself should stay.
- Change Contact Email Moves a contact to a different address while keeping its history. The only route that changes an address.
- List Contact Activities Reads what a contact has done, newest first: opens, clicks, orders and the rest. A contact has to be named, because this is per contact rather than an account wide feed.
- Import Contacts Imports many contacts in one asynchronous call. Nothing has been written when it returns, so the operation identifier is polled to completion.
Mailing Lists
5- List Mailing Lists Lists the account's mailing lists.
- Get Mailing List Reads one mailing list.
- Create Mailing List Creates a mailing list. A test list is for seed addresses and is not offered as a campaign audience.
- Update Mailing List Replaces a mailing list's settings, so a field left out is cleared.
- Delete Mailing List Deletes a mailing list. Campaigns pointed at it lose their audience.
Consent and Unsubscribes
10- List Unsubscribes Lists unsubscribe records. A record can be scoped to one mailing list or one campaign and can carry a validity window, so a listing is not a simple suppression file.
- Get Unsubscribe Reads one unsubscribe record by its identifier.
- Get Unsubscribes By Identifier Reads every unsubscribe record held for one address or phone number. This is the question a flow actually needs answered before a send, because one contact can hold several records at different scopes.
- Create Unsubscribe Records an unsubscribe. Leaving the mailing list empty makes it global, and the validity fields decide whether it lapses.
- Delete Unsubscribe Removes an unsubscribe record, which makes the contact mailable again. Deleting a record a person created themselves undoes their own choice, which is why this page gates it.
- Import Unsubscribes Records many unsubscribes in one asynchronous call, which is how a suppression list from elsewhere is loaded.
- List Subscribe Requests Lists pending double opt in requests: addresses that asked to join and have not confirmed.
- Get Subscribe Request Reads one pending subscribe request.
- Create Subscribe Request Starts a double opt in, which sends a confirmation email to the address. The contact is not created until they confirm.
- Delete Subscribe Request Cancels a pending subscribe request before it is confirmed.
Transactional Email
9- Send Transactional Email Sends a transactional email. It is asynchronous, so the response means accepted for sending rather than delivered.
- List Transactional Emails Lists transactional messages with their delivery timestamps, which is how a flow checks whether something it sent arrived.
- Get Transactional Email Reads one transactional message and its delivery state.
- Get Transactional Email Content Reads the rendered body of a transactional message with its variables already substituted, which is what the recipient actually received.
- List Transactional Email Groups Lists the groups transactional messages are reported under, such as order confirmations or password resets.
- Get Transactional Email Group Reads one transactional email group.
- Create Transactional Email Group Creates a group to report transactional messages under.
- Update Transactional Email Group Replaces a transactional email group's settings, so a field left out is cleared.
- Delete Transactional Email Group Deletes a transactional email group.
Transactional SMS
3- Send Transactional SMS Sends a transactional message asynchronously, so the response means accepted rather than delivered. It takes either a template or a body.
- List Transactional SMS Lists transactional text messages with their delivery timestamps.
- Get Transactional SMS Reads one transactional text message.
Mass Email Campaigns
12- List Mass Email Campaigns Lists mass email campaigns. Per execution numbers come back only when they are asked for.
- Get Mass Email Campaign Reads one mass email campaign.
- Create Mass Email Campaign Creates a mass email campaign. Creating it does not send it.
- Update Mass Email Campaign Replaces a campaign's settings, including the template and the audience, so it is sent complete rather than partially.
- Delete Mass Email Campaign Deletes a mass email campaign and its scheduling.
- Send Mass Email Campaign Sends a campaign to its whole audience now. This is the irreversible one, and it is asynchronous, so acceptance is not delivery.
- Send Mass Email Campaign Test Sends one test copy of a campaign to a single address without touching the real audience. The rehearsal before the send.
- List Mass Email Campaign Executions Lists the times a campaign was actually sent. A campaign can have several executions, and the per message statistics hang off one of them.
- Get Campaign Execution State Reads how a campaign send is going, including whether it is active, paused, canceled or in error.
- Get Mass Email Campaign Execution Stats Reads per recipient statistics for one campaign execution. The vendor requires the query to be filtered.
- List Mass Emails Lists the individual messages one campaign execution produced.
- Get Mass Email Reads the one message a campaign execution sent to a given address.
Campaign Scheduling
5- List Mass Email Campaign Schedulers Lists the scheduled sends waiting to run.
- Get Mass Email Campaign Scheduler Reads one scheduled send.
- Create Mass Email Campaign Scheduler Schedules a campaign to send at a given moment. The send happens without further confirmation, so a wrong timestamp mails the whole audience.
- Update Mass Email Campaign Scheduler Replaces a scheduled send, so both the campaign and the moment have to be given again.
- Delete Mass Email Campaign Scheduler Cancels a scheduled send before it runs. The campaign itself is untouched.
Split Tests and Mass Messages
5- List AB Email Campaigns Lists split test campaigns, whose settings carry the testing batch size and which variant won.
- Get AB Email Campaign Reads one split test campaign with its variant settings and its winner.
- List Mass Message Campaigns Lists mass message campaigns, which cover the text and other non email channels.
- Get Mass Message Campaign Reads one mass message campaign.
- Schedule Mass Message Delivery Schedules delivery of a mass message. Exactly one of the mass and transactional message identifiers may be given.
Automations
4- List Automations Lists the account's automations.
- Add Contact To Automation Puts an address into an automation, which starts it and can send mail immediately. The custom data supplied is the automation's own input.
- List Automation Contact States Lists which contacts are in which automations and how far they have got. A row without a finished timestamp is still running.
- Get Automation Contact State Reads one contact's progress through one automation.
Templates
5- List Templates Lists templates of every type, including plain text, HTML, drag and drop and text message templates.
- Get Template Reads one template with its body.
- Create Template Creates a template. Only the HTML and drag and drop types can be created on this route.
- Update Template Replaces a template, and unlike the create it accepts every type.
- Delete Template Deletes a template. Campaigns bound to it lose their content.
HTML Templates
5- List HTML Templates Lists HTML templates through the dedicated route, which publishes a full request and response model.
- Get HTML Template Reads one HTML template with its body and alternative.
- Create HTML Template Creates an HTML template. Whether it can be used for transactional sending is set here and cannot be inferred from anything else.
- Update HTML Template Replaces an HTML template, so a field left out is cleared.
- Delete HTML Template Deletes an HTML template.
Template Snippets
5- List Template Snippets Lists the reusable content blocks templates are built from.
- Get Template Snippet Reads one content snippet with its body.
- Create Template Snippet Creates a reusable content block. An HTML snippet carries a body, while a drag and drop snippet carries structured data the body is built from.
- Update Template Snippet Replaces a content snippet, regenerating the body for a drag and drop snippet.
- Delete Template Snippet Deletes a content snippet.
Global Variables
5- List Global Variables Lists account wide values templates can read. Some are readable through the API but not writable.
- Get Global Variable Reads one global variable.
- Create Global Variable Creates an account wide value templates can read. A variable holds either a string or a structured object, and the choice is explicit.
- Update Global Variable Replaces a global variable. One marked as not editable through the API is refused, which is a permission rather than a mistake.
- Delete Global Variable Deletes a global variable. Templates that reference it lose their value.
Custom Events
7- List Custom Events Lists custom events recorded against contacts, which are what behavior driven automations watch.
- Get Custom Event Reads one custom event with its properties.
- Create Custom Event Records a custom event against a contact, which can start an automation watching for it.
- Delete Custom Event Removes a recorded custom event. Automations it already triggered are not undone.
- Import Custom Events Records many custom events in one asynchronous call. Every event still triggers whatever automation watches for it, so a backfill starts live sequences.
- List Custom Event Schemas Lists the shapes custom events can take, which is what tells a flow which property names an event may carry.
- Get Custom Event Schema Reads one custom event schema and the properties it defines.
Coupons
11- List Coupon Groups Lists coupon groups, which are the pools individual codes are drawn from.
- Get Coupon Group Reads one coupon group.
- Create Coupon Group Creates a pool for coupon codes. A group has to exist before any code can be loaded into it.
- Update Coupon Group Replaces a coupon group's settings, so a field left out is cleared.
- Delete Coupon Group Deletes a coupon group and, with it, the codes that live in it.
- List Coupons Lists individual coupon codes. Separate timestamps record when a code was handed out and when it was redeemed.
- Get Coupon Reads one coupon code and what has happened to it.
- Create Coupon Adds one code to a coupon group.
- Update Coupon Replaces a coupon code, and is how a redemption reported by the shop is recorded back.
- Delete Coupon Removes one coupon code from its group.
- Import Coupons Loads many coupon codes into their groups in one asynchronous call, polled to completion.
Carts
5- List Carts Lists shopping carts. A cart with no completed timestamp is an abandoned one, which is what an abandonment automation watches for.
- Get Cart Reads one cart with its items.
- Create Cart Records a shopping cart. Leaving the completed timestamp empty is what makes it an open cart.
- Update Cart Replaces a cart. Setting the completed timestamp is how a cart is marked as having turned into an order, which stops the abandonment automation.
- Delete Cart Deletes a cart record.
Orders
8- List Orders Lists orders.
- Get Order Reads one order with its line items.
- Create Order Records an order. At least one line item is required, each with its own identifier, name, quantity and pricing.
- Update Order Replaces an order, line items included. When only the status is changing, the narrower state operations are the right call.
- Delete Order Deletes an order record.
- Get Order State Reads just an order's status, without pulling its line items.
- Update Order State Changes only an order's status. The right call for a shipping or payment webhook, because it does not touch the line items.
- Update Order State By External ID Changes an order's status using your own shop's identifier rather than Boldem's. The external identifier is only unique within a website, so the website is named alongside it.
Products
5- List Products Lists products in the account's data sources, which is what product blocks in templates draw from.
- Get Product Reads one product.
- Create Product Adds a product to a data source. A product without a URL cannot be rendered in a template.
- Update Product Replaces a product, so a field left out is cleared.
- Delete Product Removes a product from its data source.
Account Configuration
5- List Websites Lists the websites configured on the account. Their identifiers are what carts, orders and order state changes are scoped by.
- List Dispatchers Lists sending configurations. A dispatcher is the verified sending identity a campaign or template goes out through.
- Get Dispatcher Reads one sending configuration.
- List Data Sources Lists product data sources, which is where products are filed.
- Get Long Running Operation Reads how an import is going. Every asynchronous import on this connector points at this operation to confirm completion.
Frequently Asked Questions
What can FlowRunner do with Boldem?
FlowRunner agents can run Get Account Info, List Contacts, and Get Contact in Boldem, plus 123 more actions.
Does connecting Boldem to FlowRunner require OAuth?
No. Boldem connects to FlowRunner with session-based authentication, no OAuth flow required.
Can Boldem trigger a FlowRunner workflow automatically?
Boldem doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with Boldem
Free plan, no card required. Connect in minutes.