# Connect Printful to Smile.io and automate your tasks

## Why integrate Printful with Smile.io

The Printful to Smile.io integration helps you sync data, automate manual tasks, and keep your stack aligned — without writing code.

### Send Shopify orders to Printful for fulfillment automatically

When an order is placed in Shopify, MESA routes it to Printful with the right product details, variants, and shipping information already attached. Your print-on-demand fulfillment starts the moment a customer checks out without anyone manually submitting the order.

### Keep Shopify product and variant data in sync with Printful

When a product is added, updated, or repriced in Shopify, MESA reflects the change in Printful. Your fulfillment partner always works from accurate product data without a manual sync step between your store and your print provider.

### Update Shopify the moment Printful ships an order

When Printful generates a tracking number and marks an order as shipped, MESA writes the update back to Shopify and triggers any downstream actions — a Klaviyo notification, a customer tag, a loyalty point. Your post-purchase workflow starts the moment Printful ships, not when someone checks the dashboard.

### Keep loyalty data in sync with your marketing tools

When a customer earns or redeems points in Smile.io, MESA updates their record across your stack — email platform, CRM, Shopify tags. Every tool reflects where each customer stands in your program.

### Enroll customers in your loyalty program automatically

When a customer meets a condition in Shopify — first purchase, spend threshold, product type — MESA adds them to Smile.io without any manual steps. Your program grows as your store does.

### Trigger rewards at the moments that matter most

When a customer hits a milestone — a birthday, a VIP tier, a win-back window — MESA triggers the right Smile.io action and can notify them through your preferred channel. No manual monitoring required.

## Build any Printful and Smile.io automation

MESA helps you connect apps to automate repetitive tasks. A trigger is an event that starts a workflow, and actions are the steps that occur when it's running.

###### Order Canceled  
Starts when an order is canceled.

###### Order Created  
Starts when an order is created.

###### Order Failed  
Starts when an order has failed.

###### Order Updated  
Starts when an order is updated.

###### Package Returned  
Starts when a package is returned.

###### Package Shipped  
Starts when a package is shipped.

###### Create Activity  
Create an activity.

- Activity

###### Create Points Transaction  
Add or remove points from a customer’s points balance by creating a points transaction.

###### Get List of Customers  
Obtain a list of customers.

- ID
- First Name
- Last Name
- Email
- Date Of Birth
- Points Balance
- Referral URL
- Vip Tier ID
- State
- Created At
- Updated At

###### Retrieve Customer  
Grab all details about a customer.

- ID
- First Name
- Last Name
- Email
- Date Of Birth
- Points Balance
- Referral URL
- Vip Tier ID
- State
- Created At
- Updated At

###### Add File  
Upload a new file to the library by providing URL of the file.

- Type
- ID
- URL
- Options
- Hash
- Filename
- Mime Type
- Size
- Width
- Height
- Dpi
- Status
- Created
- Thumbnail URL
- Preview URL
- Visible

###### Approve Design  
Uses the confirm hash of an approval sheet to approve a design and remove the hold on an order.

- Message

###### Calculate Shipping Rates  
Obtain a list of available shipping options and rates for a given list of products.

- Code
- Result

###### Calculate Tax Rate  
Calculate sales tax rate for a given address if required.

- Code
- Result

###### Cancel Order  
Cancel a pending order or draft. Charged amount is returned to the store owner's credit card.

- ID
- External ID
- Store
- Status
- Shipping
- Shipping Service Name
- Created
- Updated
- Recipient
- Items
- Branding Items
- Incomplete Items
- Costs
- Retail Costs
- Pricing Breakdown
- Shipments
- Gift
- Packing Slip

###### Change Packing Slip  
Modifies packing slip information of the currently authorized Printful store.

- Code
- Result

###### Confirm Draft for Fulfillment  
Approve a draft order for fulfillment. Store owner's credit card is charged when the order is submitted for fulfillment.

###### Create Mockup Generation Task  
Create an asynchronous mockup generation task.

- Variant Ids
- Format
- Width
- Product Options
- Option Groups
- Options
- Files
- Product Template ID

###### Create New Sync Product  
Create a new sync product together with its sync variants.

- Sync Product
- Sync Variants

###### Create Order  
Create a new order and optionally submits it for fulfillment.

###### Create Sync Variant  
Create a new sync variant for an existing sync product.

- ID
- External ID
- Sync Product ID
- Name
- Synced
- Variant ID
- Retail Price
- Currency
- Is Ignored
- Sku
- Product
- Files
- Options
- Main Category ID
- Warehouse Product Variant ID

###### Delete Product Template  
Remove a product template.

- Success

###### Delete Sync Product  
Remove a sync product with all of its sync variants.

- Sync Product
- Sync Variants

###### Delete Sync Variant  
Remove a single sync variant.

- Sync Variant
- Sync Product

###### Disable Webhook Support /Webhooks  
Removes the webhook URL and all event types from the store. Method returns current webhook configuration after the update.

###### Estimate Order Costs  
Calculates the estimated order costs including item costs, print costs, shipping, and taxes.

- Costs
- Retail Costs

###### Get List of Approval Sheets  
Obtain a list of approval sheets confirming suggested changes to files of on hold orders.

- ID
- Status
- Confirm Hash
- Submitted Design
- Recommended Design
- Approval Sheet

###### Get List of Available Thread Colors from Provided Image URL  
Obtain a list of colors in hexadecimal format.

- 0

###### Get List of Categories  
Obtain a list of catalog categories available in Printful.

- ID
- Parent ID
- Image URL
- Size
- Title

###### Get List of Countries  
Obtain a list of countries and states that are accepted by Printful.

- Code
- Name
- States

###### Get List of Countries for Tax Calculation  
Obtain a list of countries that requires sales tax calculation.

- Code
- Result

###### Get List of Layout Templates  
Obtain a list of templates that can be used for client-side positioning.

- Version
- Min Dpi
- Variant Mapping
- Templates
- Conflicting Placements

###### Get List of Orders  
Obtain a list of orders from your store.

###### Get List of Products  
Obtain a list of products available in Printful.

- ID
- Main Category ID
- Type
- Type Name
- Title
- Brand
- Model
- Image
- Variant Count
- Currency
- Files
- Options
- Is Discontinued
- Avg Fulfillment Time
- Description
- Techniques

###### Get List of Sync Products  
Obtain a list of sync product objects from your custom Printful store.

- ID
- External ID
- Name
- Variants
- Synced
- Thumbnail
- Thumbnail URL
- Is Ignored

###### Get List of Templates  
Obtain a list of templates.

- Items

###### Get List of Warehouse Products  
Obtain a list of warehouse products from your store.

- ID
- Name
- Status
- Currency
- Image URL
- Retail Price
- Variants

###### Set Up Webhook Configuration /Webhooks  
Allows to enable webhook URL for the store and select webhook event types that will be sent to this URL. Note that only one webhook URL can be active for a store, so calling this method disables all existing webhook configuration. Setting up the Stock updated webhook requires passing IDs for products that need to be monitored for changes. Stock update webhook will only include information for specified products. These product IDs need to be set up using params property. Method returns current webhook configuration after the update.

###### Update Order  
Modify an unsubmitted order and optionally submits it for the fulfillment.

###### Update Sync Product  
Modifies an existing sync product with its sync variants.

- Sync Product
- Sync Variants

###### Update Sync Variant  
Modifies an existing sync variant.

- ID
