Design Considerations

These considerations should help technical teams with designing the solutions before starting the integration work.

Set Up

  • Assets ownership – Manage business assets such as your developer app, catalog, page and shop, Instagram account under one Business Manager. For example, if you have an agency working on your catalog, you can still grant them access to work with the catalog on your behalf.
  • Safeguarding access tokens – Safeguard your production system user and page access token.


  • Product details updates – If using scheduled product feed uploads via HTTPS or SFTP in Catalog Manager, be sure that the Facebook crawler is able to pull the latest version of your feed file with all latest changes (product description, prices, etc.). Do not cache feed files on your server or CDN.
  • Inventory updates – Choose a strategy for sending inventory updates. The minimum Scheduled Feed updates frequency is hourly. If you require more frequent inventory updates (for faster-selling inventory), use the Catalog Batch API or Direct Feed Upload API on your own cron. Another strategy is to implement a stock threshold and set availability to “out of stock” if the product inventory is less than the threshold value. If products are marked as “out of stock” on Instagram when they are actually “in stock” on your website, buyers may have negative experiences. When implementing inventory thresholds, make sure they are adequately small to prevent products going out of stock on Instagram. Overselling is possible, so make sure the threshold is not too small.
  • Enhanced product description – the value of the rich_text_description field from the product feed is visible on Instagram PDP (falls back to description if rich_text_description is not provided). This is the only text field that is rendered on Instagram PDP. In addition to your regular product description, you may want append additional details to rich_text_description, such as: item size, volume, origin, etc. to provide customers with more useful information about the product.
  • Using product variants – Product variants are grouped by the item_group_id field. Provide the value for item_group_id that will be shared by all product variants within the group. Product variants can be based not only on fields like color or size, but any other custom attribute too. Color and size values are not fixed and can be arbitrary. Provide values for all product variants, even for variants that are out of stock, or the variants dropdown may not be rendered on the Instagram PDP.
  • Using sale price – define whether or not sale price should be added to the feed. In addition to a sale price, you can specify a sale effective date.
  • Using final sale – define whether or not final sale info should be added to the feed.

Order Management

  • Payment method – no order payment details will be available in your e-commerce system or OMS. Consider which payment method to use (e.g. “pre-paid order”) and what payment method name (e.g “Paid on Instagram”) will be displayed in your systems and on order invoices.
  • Order pull schedule – Consider how often new orders are pulled from the API. A typical frequency is every 5-15 minutes.
  • Order workflow – Decide when to create orders in your system and manage state accordingly. Orders typically flow through the following workflow: create an order in a PENDING state in your e-commerce platform or OMS, then send an acknowledgment request to Facebook and attach your internal order ID. Upon successful acknowledgment, you can move the order into PROCESSING state in your system. Do not attempt to move state on an order without successful acknowledgement.
  • Storing FB order number – Facebook Orders are of variant length. Use an appropriate data type in your e-commerce platform, OMS, and any other downstream order fulfillment system. The recommended data type is string (varchar).
  • Retry and error handling strategy – implement a retry and error handling strategy for order updates.
  • Preventing order duplicates – Make sure an order with the given Facebook ID does not exist in your system before creating a new order to avoid duplicates. As a best practice, use a secondary lookup column for Facebook IDs.
  • Using self-serve shop UI for managing orders – define whether self-serve shop UI will be used to manage orders.
  • Suppressing order transactional emails – Define how order transactional emails will be suppressed in your e-commerce platform or OMS, as Instagram will be sending transactional updates to the buyers on your behalf.
  • Marketing opt-in – define how to handle marketing opt-in flag and integrate with your CRM. Customers should not receive any marketing emails unless explicitly opted-in.


  • Report delivery automation – define how tax and cash reconciliation report delivery will be automated.

Customer Service

  • Customer service and returns flow – Customer service requests can be initiated within Instagram and relayed to you via email, or a customer can be directed to your website via URL that you provide.
  • Refunds flow – Define how customer service team will trigger the refund, either via an automated process integrated directly to your OMS, or manually via the Facebook shop UI.