This guide walks you through setting up the Advanced AfterShip integration with Postscript so you can automatically trigger SMS notifications based on real-time shipping updates.
About AfterShip
AfterShip helps ecommerce businesses enhance customers’ post-purchase experience. It offers shoppers a branded tracking experience and enables them to track shipments seamlessly.
Why You Should Set Up AfterShip
Integrating Postscript with AfterShip Tracking combines all message communications in one central portal. When order tracking status updates in AfterShip Tracking, brands can automatically send unified tracking notifications to customers using nine key triggers, ensuring engagement, consistency, and efficiency.
Send branded notifications for shipping statuses like in transit, out for delivery, delivered, and failed attempts.
Get insights into shipments, customer reviews, and notifications. Study customer behavior based on the number of visitors, session duration, and marketing clicks within AfterShip.
Customize reports by setting trigger filters specific to sub-types of shipping status, like cases where the order is available for pickup, held at customs, or packages signed by the customer.
Automatically import tracking numbers from shopping carts, marketplaces, and CSV files to streamline shipping processes.
Note: If you're setting up AfterShip for the first time, skip to Set Up Advanced Integration.
Advanced Integration vs. Basic Integration
Previously, brands integrated AfterShip and Postscript using a tracking webhook (Basic Integration), but now the two solutions integrate via an AfterShip integration flow (Advanced Integration).
This article covers the advanced integration with Postscript. Brands that have already integrated using the basic integration (AfterShip Tracking Webhook method) are advised to migrate to Advanced Integration for a superior experience and expanded capabilities.
Basic vs. Advanced Integration Comparison
Object | Basic Integration | Advanced Integration |
Integration Method | Tracking updates feed from AfterShip webhook | AfterShip official creates events and data pull |
Trigger Events | 4 (no shipment summary events, no pre-ship events, no EDD events) | 15 (including shipment summary, pre-ship, and EDD events) |
Event Filters & Properties | 18 | 40 |
Supported AfterShip Plans | All | 9 events for all plans 6 events are Premium and Enterprise exclusive |
Set Up Advanced Integration
Follow these steps to connect Postscript with AfterShip's advanced integration.
Tip: After migrating to Advanced Integration, brands should stop any automations or campaigns configured with the events using the Basic Integration.
Create a Postscript API Key
Before integrating Postscript in AfterShip, you'll need to generate a private API key that you'll enter into AfterShip later. In this section, we'll walk you through generating your private API key.
Select your Shop Name in the side menu of your Postscript dashboard, then select API.
Select Create Security Key Pair on the right side of the page, then confirm your action by selecting Yes.
Add a label to your API key so you can track where this API key is being used.
Select Show in the Private Key column to reveal your API key. Copy this key-- you'll need to enter it into AfterShip later.
Configure Postscript in AfterShip
After generating an API key, select your store in AfterShip.
Enter the API key you created in Postscript. The key should begin with “sk” as the prefix.
Set up send events configuration.
Phone number only: Only map the phone number to use with Postscript subscribers. When using Postscript to send SMS only, select the phone number mapping only.
Email only: Only map the email to use with Postscript subscribers. When using Postscript to send Email only, select Email mapping only.
Both phone number and Email: For shipment-related events, AfterShip strictly maps both the email and phone number with Postscript subscribers strictly, meaning that only when the phone and email match in Postscript is it treated same subscriber. For order-related events, AfterShip maps email and/or phone, depending on what's possible.
Tip: Disable AfterShip Tracking SMS notifications to avoid duplicate SMS notifications.
Disable AfterShip SMS Notifications
From your AfterShip dashboard, select Notifications in the side menu, then select Emails & SMS.
Locate the Email and SMS section. On the To Customers and To Subscribers tabs, disable the following SMS notifications:
In Transit
Out for Delivery
Delivery
Failed Attempt
Add Your Tracking Subdomain in Postscript
From your AfterShip dashboard, select Tracking Pages in the side menu, then select the tracking page you want customers to visit when tracking their package.
Copy the subdomain of the tracking page. You can find this on the left side of the page.
For example, myshopifystore.aftership.com/?page-name=tracking-page has myshopifystore as the subdomain.
Paste this subdomain in the corresponding field on the AfterShip integration page in Postscript. If you do not want to use a custom tracking page, leave this as Track to use the default AfterShip tracking page.
You should now be all set to start using your AfterShip integration!
Properties
Events and Event Properties
The AfterShip-Postscript integration includes 15 events brands can use to trigger events in Postscript.
Event Type | Description | Supported AfterShip Plans |
AfterShip-PreShip_Order_confirmation | Order confirmed | Premium, Enterprise |
AfterShip-PreShip_Fulfilled_partial_order | Order partially fulfilled | Premium, Enterprise |
AfterShip-DeliverySummary_All_Items_fulfilled | All items in order shipped | Premium, Enterprise |
AfterShip-DeliverySummary_All_Items_Delivered | All split order shipments delivered | Premium, Enterprise |
AfterShip-DeliveryUpdates_Info_received | Package shipped and ready for courier pickup | All |
AfterShip-DeliveryUpdates_In_transit | Package in transit to customer | All |
AfterShip-DeliveryUpdates_Out_for_delivery | Shipment out for delivery | All |
AfterShip-DeliveryUpdates_Available_for_pick_up | Shipment available for pick up at designated point location | All |
AfterShip-DeliveryUpdates_Delivered | Shipment delivered | All |
AfterShip-DeliveryExceptions_General_exception | Package in an exception status (lost, custom delay, general delay, damaged, etc., excluding returning to sender or returned to sender) | All |
AfterShip-DeliveryExceptions_Failed_attempt | Unsuccessful delivery attempt | All |
AfterShip-DeliveryExceptions_Returning_to_sender | Package being returned to sender | All |
AfterShip-DeliveryExceptions_Returned_to_sender | Returned package received by sender | All |
AfterShip-EDD_Delivery_anticipation | Shipment scheduled to arrive the next day | Premium, Enterprise |
AfterShip-EDD_EDD_revised | Change to shipment’s latest estimated delivery date | Premium, Enterprise |
Note: The integration does NOT support adding specific product item variables to message templates.
Shipment-specific Trigger Filters and Properties
Category | Trigger Filters & Property | Description |
SHIPMENT | TrackingNumber | Shipment's tracking number |
SHIPMENT | Source | Import source of AfterShip tracking |
SHIPMENT | LatestStatus | Current delivery status of the AfterShip shipment. |
SHIPMENT | LatestSubStatus | Current sub-status of the AfterShip shipment |
SHIPMENT | Note | Displays additional notes configured in AfterShip |
SHIPMENT | BrandedTrackingURL | URL forAfterShip branded tracking page with “tracking number” as preset parameter |
SHIPMENT | UpdatedAt | Latest update time on the shipment from the courier |
SHIPMENT | CourierEstimatedDeliveryDate | Estimated delivery date provided by the courier and sourced directly through AfterShip’s integration with courier tracking services |
SHIPMENT | AIEstimatedDeliveryDate | AfterShip AI Predicted Estimated Delivery Date (AIEDD) |
SHIPMENT | CustomEstimatedDeliveryDate | Configurable setting within AfterShip Tracking’s admin dashboard for merchants already calculating estimated delivery dates based on the shipping type, courier, and destination |
SHIPMENT | LatestEstimatedDeliveryDate | Determined using the following priority order: Courier estimated delivery date > AfterShip AI predicted estimated delivery date > Promised delivery date > Custom estimated delivery date |
SHIPMENT | DestinationCountryRegion | Destination country |
SHIPMENT | DestinationState | Destination state |
SHIPMENT | DestinationCity | Destination city |
SHIPMENT | DestinationPostalCode | Destination postal code |
SHIPMENT | DestinationAddress | Destination address |
SHIPMENT | OriginCountryRegion | Origin country name |
SHIPMENT | OriginState | Origin state |
SHIPMENT | OriginCity | Origin city |
SHIPMENT | OriginAddress | Origin address (Iso3 format) |
SHIPMENT | OriginPostalCode | Origin postal code |
SHIPMENT | DeliveryType | Types of delivery (eg. Self Pickup) |
SHIPMENT | PickupLocation | Location where customer can pick up package |
SHIPMENT | PackageCount | Number of packages under this shipment |
SHIPMENT | ShippedAt | Ship date |
SHIPMENT | TransitTime | Total time spent on this shipment so far |
SHIPMENT | PickedUpAt | Pickup date |
SHIPMENT | DeliveredAt | Delivery date |
SHIPMENT | SignedBy | Package receiver's information |
COURIER | CarrierSlug | Name of courier slug |
COURIER | CarrierShippingMethod | Displays shipment's courier service type (e.g., UPS Express Saver®) |
COURIER | CarrierRedirectURL | URL where customer can redirect shipment |
COURIER | CarrierTrackingURL | Courier's tracking page URL |
ORDER | Storeslug | Store name |
ORDER | OrderNumber | Customer-facing number identifying a purchase or order |
ORDER | OrderID | Merchant-facing number identifying a purchase or order placed by a customer |
ORDER | OrderURL | Link to view order on store |
ORDER | TotalShipments | Number of shipments under the order |
CUSTOMER | CustomerName | Name of package receiver or the buyer |
CUSTOMER | CustomerLanguage | Language for customer notifications |
Order-specific Trigger Filters and Properties
The following pre-ship and delivery events are for the entire order rather than specific packages.
Category | Trigger Filters & Property | Description |
ORDER | OrderID | Merchant-facing number identifying a purchase or order placed by a customer |
ORDER | Storeslug | Store name |
ORDER | OrderNumber | Customer-facing number identifying a purchase or order |
ORDER | OrderStatus | Order fulfillment status |
ORDER | OrderURL | Link to view order on store |
ORDER | TotalShipments | Number of shipments under the order |
CUSTOMER | CustomerName | Name of package receiver or buyer |
CUSTOMER | CustomerLanguage | Language for customer notifications |
Create AfterShip Automations
Merchants can create an automation message that provides shipping updates for customers. This is possible through a combination of unique AfterShip automation triggers and properties.
From your Postscript Dashboard, select Messaging; then select Automations.
Select Create Automation in the upper-right corner. Select Create Automation Flow.
Select Create a new automation, then Create flow.
Name the automation. Be sure to use a name that will allow you to easily identify and track this automation in the future.
Select the dropdown menu under Trigger event or property, then choose your AfterShip trigger.
Continue customizing your automation flow by dragging and dropping actions into your flow, customizing your message, and adding merge tags.
When you're ready to send your flow, select Schedule or Activate in the top-right corner of the page. You have two options when sending a flow:
Activate immediately: This option will immediately begin the flow, allowing subscribers to enter the automation based on the selected properties.
Activate at a scheduled time and date: Choose when you'd like the flow to begin, allowing subscribers to enter.
Get Support
Have questions? Please feel free to reach out to our Support team at [email protected] or via live chat. You can also submit a support request here!
Need ongoing channel strategy guidance? Please fill out this form and we'll connect you to one of our certified partners.



