Product launches
?pf_customer_id=
, ?pf_business_id=
, ?pf_campaign_id=
. Use these parameters in tandem with your booking links to track the source of bookings and drive ROI calculations for the SMB’s marketing effortsImprovements and changes
409 Conflict
error, indicating that they are freely retryable. Before, we returned a 422 Unprocessable Entity
error, which made the error appear identical to actual validation errorsProduct launches
GET /businesses/:id/phone_numbers
. Contact the team to provision them and learn moreImprovements and changes
Bug fixes
Product launches
POST /businesses/:id/email_templates
and pass { ..., one_off: true }
in the POST
bodyPOST /email_templates/:id/copy_one_off
to create a one-off copy of a business’s template in their template libraryPOST /project_email_templates/:id/copy_one_off
to create a one-off copy of a project template
One-off templates have the semantic that they belong to a business and can be attached to their campaigns, triggers, and email blasts, but they do not show up in the GET /businesses/:id/email_templates
endpoint. We created one-off templates to support the use case of designing an email during campaign/trigger/email blast creation without it cluttering the business’s template libraryReply-To
field. Marketing emails that are sent with this field set will receive replies at the address specified in the Reply-To
field. Contact the team about setting this field on business or project email addressesImprovements and changes
draft
status if they have not yet been sentdraft
status. Once a trigger is activated, further deactivations move them to the inactive
status insteadDELETE /email_blasts/:id
"value" in customer.values_list
filter
field in trigger creation/updating) now supports checking for customer segment membership via the induced field customer.segments
. For example, to check if a customer is a member of segment with ID seg_123
, you can now write "seg_123" in customer.segments
Bug fixes
{{ customer.first_name }}
Product launches
Improvements
Bug fixes
Product launches
GET /email_blasts/:id/executions
to see the data!Improvements and changes
?expand[]=estimated_message_segments
to fetch them on campaigns/email_templates/:id/send
now bypass daily sending limits to better support the “Test Send Email Template” use casecreated_at
and updated_at
timestampsProduct Launches
Improvements
Bug Fixes
Product Launches
FilterDefinition
s per business. Use these to define known values for customer metadataImprovements
.matches
on strings and .exists
and .map
on arraysImprovements
Bug Fixes
customer
being passed as an object with key id
Improvements
Bug Fixes
Product Launches
Bug Fixes
Product Launches
Improvements
Product Launches
Bug Fixes
Improvements
Bug Fixes
Improvements
hide_toasts=1
query paramBug Fixes
Product Launches
Email blasts
Email blasts are a pre-packaged primitive for sending a single email template to a set or segment of customers
You can now create and manage email blasts via API
Implemented HIPAA-compliant email sending with Paubox
Created comprehensive email blast system with creation, listing, and management features
Added email blast execution functionality
HIPAA-compliant email marketing
Project-Defined Events
Improvements
Bug Fixes
Product Launches
Improvements
Bug Fixes
Product launches
Improvements
Product launches
We now have embeddable SMS template editors! Like our email template editor,
you can now embed an iframe
to enable visual editing of SMS templates with
variable support. Find full documentation
here
You can now create triggerable sequences! Specify an event (really just a string) and a sequence of messages to follow after it. When Pocketflows receives that event with a customer attached, the customer will automatically start receiving the sequence of messages. View the full documention here
Bug fixes
Improvements
You can now change the background color of buttons in email templates
Project phone numbers now have automatically added prefixes in sent messages
Automatic unsubscribe links in email templates
Unsubscribe responses to text messages sent through Pocketflows automatically unsubscribe the customer’s phone number
Bug fixes
Product launches
Improvements
"finished"
status when all enrolled customers have
gone through all stepsProduct launches
POST /businesses/:id/customers/batch
to create multiple customers at once.
Note: failure to create any one customer will rollback all customer
creationsImprovements
You can now hide the “Save” and “Send Test Email” buttons in the email
template editor. Pass ?hide_save_button=true
to hide the “Save” button,
?hide_send_test_email_button=true
to hide the “Send Test Email” button, or
?hide_buttons=true
to hide both
You can now trigger the “Send Test Email” dialog from outside the iframe
.
Simply send { pocketflows: true, action: "openTestEmailDialog" }
to the
iframe
’s content window
The iframe
hosting the email template editor now posts the resulting email
template object to the parent window. Previously, this was only posted when
the save was triggered by a message to the iframe
The email template editor now shows a placeholder when there is no content in the email template
POST /businesses/:id/email_templates
with a simple payload of
{ name: "your template name here", subject: "your subject" }
now fills
template_json
with a sane default
The attachment icon in the email template editor now shows the count of attachments
Improvements
/sms_templates/:id/preview.png
as the source of an img
HTML tag./campaigns/:id/preview.png
as the
source of an img
HTML tag.Bug fixes
Improvements
/email_templates/:id/preview.png
as the source of an img
HTML tag.Bug fixes
Improvements
Customer and business objects now support metadata. API users can post
arbitrary JSON data to the metadata
field on POST /businesses
,
POST /businesses/:id
, POST /businesses/:id/customers
and
POST /customers/:id
. The metadata
is returned in the relevant GET
endpoints and can be accessed in email and SMS templates
Email template embeds
iframe
. Use the window.postMessage
API to send a message to the
iframe
, example below:
const iframe = document.getElementsByTagName("iframe")[0];
iframe.contentWindow.postMessage(
{ pocketflows: true, action: "save" },
"*",
);
?hide_top_bar=true
to the GET /email_template_embeds/:id/show
endpointCampaigns now return sending statistics. See how many customers are
currently enrolled in the campaign and their status within the campaign. See
the statistics
field on the Campaign
object
here
Product launches
Improvements
Email templates
GET /email_templates/{id}/preview
. See full documentation
here.You can now schedule campaigns to start sending at a later date rather than
immediately. Specify the scheduled_at
parameter when creating or updating
a campaign.
errors
key in the response body.
errors
is an array of { message: string, path: string }
objects.© Pocketflows