Spaces:
Sleeping
Sleeping
{"questions": {"5883390a-2821-46d2-9db3-3235f155c729": "What is an action in the context of Shopify Flow?", "dbe711fa-d752-49e2-81d1-05c63bf46467": "Where can you find a guide to create and test a Flow action?", "e751ca63-ede0-4cad-95da-4bd45eeb2403": "What information must be included in the action that merchants add to their workflows?", "5a689df3-b2d9-475a-ba82-62906e4ca6fe": "What are the requirements for setting up a test environment to create an action for Shopify Flow?", "aa6aa330-b6d7-4b1b-85f1-8f77a17e8ec9": "What guidelines should be followed to name a Flow action in Shopify?", "d449a8cd-1415-4de2-8b5d-37839b6f9c43": "What command is used with the Shopify CLI to generate a new extension for a Flow action?", "904d9445-12f1-4b4f-a490-03044688adae": "What is the format for naming a Flow action in Shopify?", "648655c0-6ead-45d2-8bd1-dd5dc8b50a23": "What command is used to generate a new extension using the Shopify CLI?", "3f4d5f1b-e481-44aa-ada7-9411cb69c4a4": "What type of extension should be selected when creating a new Flow Action in Shopify?", "2efec970-37e7-4560-8d3d-7c51a59f7aba": "Where can you find the file representation of your extension after using Shopify CLI?", "73eec5f2-1753-4228-a23e-41a13436c172": "What steps must be taken in the Partner Dashboard to add a Shopify Flow action to an app?", "2c2203a8-1972-47b5-b7d8-14421df1710f": "What information is required in the Extension name field when creating a Flow action?", "39937797-a5e2-4ed5-b2db-b81a9d2b7d7a": "What should you change the description to when customizing a Flow action configuration file?", "96e3f8e6-8ce5-406f-9804-de7e7698b191": "What type should the second settings.fields field be updated to in the Flow action configuration?", "142c4d9b-4d46-4608-9605-95c2941948cb": "What is the purpose of the `runtime_url` in the auction bid configuration?", "83da9547-049d-4d84-9be3-2109dbfc4828": "What type of value is expected for the `Bid Amount` field in the auction bid settings?", "71e3676c-1f81-4c30-a80c-0f05096a5042": "What type of field is required for customer reference in the settings?", "d8d2dfa5-9a37-4d0a-949a-f666b6811a69": "What is the purpose of the \"Bid Amount\" field in the settings?", "346b7c65-9a4c-4f1a-bcdc-e1e7bcd04e12": "What is the purpose of the endpoint where the automation tool sends the action's payload in a Shopify Flow action?", "ace1d91b-8ace-4c8c-85cb-a670a1c8d022": "Why is a custom validation endpoint required when using a custom configuration page in Shopify Flow?", "b88e76d7-e171-45b7-9c79-b172ad3a0c72": "What should you refer to in order to learn about the endpoint requirements for your server?", "31dd067b-6f27-469f-ae13-0c0120e4b429": "How can you identify draft versions of a task in your development store?", "714ac088-8d11-4955-965d-c4a7aaea7b10": "What command should you run to start using draft versions of your extension(s) in your app directory?", "6a9bc91d-7d0d-4fa1-9d3d-6e3b670c5085": "What should you ensure about the custom configuration page after creating an action in the Partner Dashboard?", "aaf43508-ec97-44ed-91c5-462251f6183b": "What should you ensure about the custom configuration page after creating it?", "b1792585-b870-4fbc-b64a-3664c62559d1": "What command is recommended to deploy your extensions using Shopify CLI?", "527fb3da-37df-466b-9e0c-f3b444459f06": "What command is used to deploy extensions using Shopify CLI?", "34bdf182-d256-48fc-bd11-d2826d591204": "Why is it recommended to test changes using app dev or a test app before deploying to a production app?", "83e4310b-8768-44b9-a5b7-a38560915cbb": "What elements should be verified in each request for security reasons?", "760b475d-e094-4880-8aa8-b6ad1a8b230e": "How can you connect your app to Shopify Flow to trigger workflows based on events?", "761d4f85-a18d-4b0c-8e27-ac4f3ee50c61": "What is generated when you create a new trigger extension using Shopify CLI?", "062101f8-bce9-4dbf-b3af-d0c455fb6b21": "What should developers expect as the Flow's CLI capabilities continue to evolve?", "320bd940-f90e-4c9c-973a-dfa3310affe8": "What is the purpose of the TOML configuration file structure when creating Flow extensions using Shopify CLI?", "9f9bead0-32f0-481f-9e51-3c9115592ea1": "What are the key components included in the example TOML configuration for a trigger extension?", "1c993acf-0e9b-4b5d-a497-7e982a6161ab": "What is the purpose of the properties listed in the [[extensions]] section of the TOML configuration file for a trigger extension in Shopify CLI?", "279ef3ed-00db-40b8-bf4b-3b24cba1a344": "What types of fields are defined in the settings section of the TOML configuration file example provided?", "23bf99f2-4b2e-4cdd-85fe-bbf26470d7a7": "What is the required type for an extension property in the context of Flow triggers?", "4d516953-ddef-452b-8093-07bb05fe2269": "What are the rules for the 'handle' property in the extension properties?", "311ca0ca-02db-46a9-9c67-d366e58ee3fe": "What is the purpose of trigger extension fields in the context of Flow?", "58cdb691-2fbc-4449-ad8d-372d6807fa98": "What are the requirements for the 'key' property in trigger extension fields?", "812b119c-00f8-4cff-934e-342733031b3d": "What are the two types of fields that can be added when creating a trigger for Shopify Flow?", "11e0e1c0-b581-458b-b9cc-a2b103440b80": "How does a reference field benefit merchants when building workflows in Shopify Flow?", "7166457b-808c-424b-8040-5de98f61fc34": "What are the conditions that a merchant can create in Shopify Flow using customer data?", "b60d2983-444a-47b3-a681-c609dc2c267a": "How can a merchant include customer template variables in their actions within Shopify Flow?", "1d846d80-5013-4d20-81d2-5f4b08daa6fa": "What is the purpose of the `customer_reference` field in the provided context?", "4d0a3061-b5eb-48f2-8f72-5dad1691e04f": "What are the available custom field types mentioned in the context?", "b1b97306-7267-4401-baed-5f94beea1679": "What is the purpose of including the payload key when making a request to Flow?", "d19dd3cb-0ce6-41ee-8e74-eb1675d59e75": "Can you provide an example of a custom field type and its corresponding value?", "e507361e-31cb-45e1-b847-20af761f3a6a": "What are the available custom field types mentioned in the context?", "a7292cd2-acdd-4eb2-834b-40ac583ae9fd": "How should custom field names be formatted when referring to them in the payload sent to Shopify Flow?", "2f16bdde-9e63-4f2a-b2f9-46f7733a3368": "What format should custom field names follow to ensure they are self-describing and readable?", "fe47bc45-ebe4-4998-a270-96b653c5dd84": "How does Shopify Flow convert key properties when used as template variables in the editor?", "8e028ea8-84ee-4185-9ace-021d135ab860": "How does Shopify Flow convert key properties when used as template variables in the Flow editor?", "400f8a1a-bd2d-4832-b11b-336e577ea6a0": "What is the purpose of the `flowTriggerReceive` mutation in the context of Shopify Flow?", "f021296a-a6f4-4fde-b490-5c7172a98669": "What is the purpose of the `handle` property in the `flowTriggerReceive` mutation?", "3215ec5e-6270-490a-9f12-a0bab46479d3": "What are the limitations regarding the size and content of the payload sent to Shopify Flow?", "1f6d2017-c37f-45bc-8bf0-68f193e54980": "What is the purpose of the shopify.extension.toml file in a Flow template extension?", "dbc0533a-9f6d-4242-b86c-50934a07ca75": "What are the categories specified in the example TOML configuration for the Flow template extension?", "e96ad361-dcfa-4313-a69b-977c4122fa25": "What is the required property that serves as a globally-unique identifier for your extension and cannot be changed after running the app dev or deploy command?", "c5712523-ac3e-4f33-9e46-db9f8170391c": "How many categories must be chosen for the template, and what is the maximum number of recommended categories?", "3d236a2d-8740-4727-b221-468ea7e7bc69": "What are the valid categories that can be used to describe the function of a template?", "fef81927-90ac-450c-84f1-4a7a4140da9c": "What does the 'require_app' property determine regarding the visibility of a template?", "20208547-9891-4bdd-8778-e971eab68fcb": "What are the optional parameters that can be set for a template in the extension's folder?", "8b48a9e9-17ea-4a94-9068-152954bfb40a": "How does the 'require_app' parameter affect the visibility of a template to merchants?", "bb11b5d1-da80-45de-a337-fcbc55805256": "What are the benefits of localizing a template for a wider audience?", "d5b3696f-50ea-4e3f-99e9-5852ca9fec55": "How can you add new locales for a template according to the provided context?", "8e4aa580-987d-4b28-9bd9-294d454475cd": "What is the purpose of adding new .json files prefixed with the locale in the workflow?", "8204809f-ff97-4f91-829f-2a8574a02d66": "How can you provide translated custom step descriptions in the workflow?", "8b33ac53-be85-4806-a35f-02d5a1a3548f": "How can you add a translated custom step description in the workflow?", "367ed64a-eee2-4e56-8a42-53f612ee3fb9": "What criteria must be met before submitting a template extension for approval?", "ce63eb2e-6b68-4b8b-915d-f6e2ab8a061c": "What criteria must a template extension meet before it can be submitted for approval?", "483c9b43-b723-413f-b782-07d3338920f9": "Why is it important for the template extension to include a default localization and an English translation?", "f39bec90-b8fa-4e46-b69a-391a64183ef0": "What format should titles use when creating templates?", "92dc539a-eddb-4577-8ee4-e90294983424": "What is the maximum number of templates that can be submitted for each app?", "4a12acc4-521d-4684-a156-5fa30c88ab2c": "What is a trigger in the context of Shopify Flow?", "d2e334f4-74dd-49bb-9e23-95be4d69b967": "What file format is used to specify details about a trigger in a trigger extension?", "29583de0-bf72-4a59-8e82-de624649aab3": "What is the purpose of a template in Shopify Flow?", "68d2dc19-1491-4b40-8129-08b1b4ce3aad": "What are the requirements needed to create a workflow template for Shopify Flow?", "8e8bd31a-a4fd-4802-9efa-f692f658e74d": "What is the first step to create a workflow in Shopify Flow according to the provided context?", "b399b403-13a0-43ad-9b51-1b537d550dc7": "Why is it important to remove shop specific test data when exporting a workflow?", "7559ee5c-d214-4af4-9d3d-6dba5837fb6a": "What should you do with shop-specific test data when preparing a workflow for export?", "71141eb3-5b81-4182-b474-0e6b2e0867b5": "How can you create a new Flow template extension using the Shopify CLI?", "be5b2d09-25e5-4d94-971e-0e64a7ca4291": "What command should you run to generate a new Flow template extension using the Shopify CLI?", "9d111dfc-74e3-4ad2-8947-588be0d0110f": "What guidelines should you follow when naming your Flow template extension?", "93021416-7b41-48a9-8999-f5ff08bdc562": "What directory does Shopify CLI generate for the extension's file representation", "67eb1370-fa18-4c72-8769-b5dbada31cc4": "How many templates can each Flow template extension contain", "7ef4f360-ac98-4c72-8544-c81006764262": "What files are included in the file structure of the extension as described in the context?", "1ca17be2-d475-47e6-80fc-f924b4527101": "What command should be run in Shopify CLI to preview the template extension before deployment?", "057c9427-d82d-49b0-8c5d-8446b8934a02": "What command should be run in Shopify CLI to preview the template extension before deployment?", "e1e5d51c-1186-479c-a449-43266d1ca55b": "Where can you find the workflow, template card, and custom step descriptions for previewing in your development store's Shopify admin?", "521475b3-aafc-4e8b-a940-5294dc629b77": "What command is used to start deploying your extension in Shopify CLI?", "208356fa-f8f3-4b78-91f7-09a30c2ed0be": "Where can you preview your workflow, template card, and custom step descriptions in your development store's Shopify admin?", "1cb025a2-0fdf-4012-8470-2e3f3c361ed8": "What is the required format for naming a Flow action in Shopify Flow?", "6f0d18ea-5b9a-4492-8028-860986ee467c": "What permissions must your application have to build a trigger using a customer reference?", "13b58876-f902-4b3b-8ae4-0d592179ee86": "What format should be used for naming a Flow action in Shopify?", "a69e5052-4f68-45bd-89f2-4c371dd8b666": "What command is used to generate a new extension using Shopify CLI?", "888ba232-4a37-4786-bd71-41ceb67e40b4": "What command should you run to generate a new extension in your app directory?", "f2aa7cd9-1af7-427f-b124-a2e0c2cdb65a": "Where can you find the file representation of your generated extension after using the Shopify CLI?", "a0330674-f987-411a-8275-59ef08bc34bf": "What is the file structure required for the extension mentioned in the context?", "88cce890-95bf-408d-bbc2-09ed690d9bf1": "How do you add a Shopify Flow trigger to your app using the Partner Dashboard?", "524188dc-ef7d-482c-8004-42d8e3c34e4b": "What is the purpose of copying the GraphQL endpoint in the context of creating a trigger for Shopify Flow?", "285c15dd-e91b-477b-ac8d-4aab2f090701": "What changes need to be made to the description and type in the trigger configuration file for auction bids?", "f5a2a1d7-8b1c-4c05-b0a2-f0ea18362ec8": "What is the purpose of changing the description in the flow trigger configuration file?", "2f1350dd-e643-47a0-9349-5f1754de03ee": "What command is used to enable the draft version of your trigger in the development store?", "accc74d4-b086-40ce-a130-5c8d5872f756": "What is the purpose of the \"Auction Bid Placed\" trigger in the context provided?", "2a587ba8-ab08-479f-9f2e-7a696b052754": "How can a developer identify the draft version of a task in their development store?", "46f1252c-85d3-4620-bb6d-f8bf82fcefa3": "What happens to the draft version of a task when \"Development store preview\" is enabled in the app development environment?", "161ab785-060d-44f4-8385-4b437e43edca": "How can you view the deployed version of a task in your development store while using the app development command?", "c2ad7dfa-b1e0-4270-94dd-b5fed53aa52d": "What command should you run to start using draft versions of your extension(s) in your app directory?", "3ddfd48e-f372-4d7f-b42d-6ae32918fbeb": "What is the maximum size limit for the payload when sending a flowTriggerReceive mutation using the Admin GraphQL API?", "2fb0412f-ba0a-46d9-89b4-08443dfc308d": "What is the maximum size limit for the payload in a trigger request to Shopify?", "ce562e26-b6a8-400c-9ac3-fbb907b1c9c5": "What error message does Shopify return if the properties body exceeds the size limit?", "a2d5aa07-b663-47d5-af66-f44885c916f1": "What is the purpose of the `flowTriggerReceive` mutation in the provided context?", "fa4ed5ff-159e-4f5f-a229-475f24d416c7": "How is the `flowTriggerReceive` mutation authenticated when sent as a curl request?", "c1af587c-21b1-441f-ab3c-6ead75ba06d7": "What command is used to deploy extensions in Shopify CLI?", "5c1a06e6-457e-4c93-8f9b-1f34b5f112d0": "What should you do before deploying changes to a production app?", "4ec4181f-3b8d-40ea-8ac0-379e6950a4b9": "What is the purpose of templates in Shopify Flow?", "5c385776-2cf9-4cce-9ac8-8ad53fbd0721": "How can merchants utilize the template library in Shopify Flow?", "b7213ebd-bdd0-4d31-a801-59113733d19c": "What are some examples of actions that merchants can automate using the Review created trigger in Shopify Flow?", "d61c0ae4-cf45-4ea7-a6b7-0149976c34eb": "How can integrating with Shopify Flow increase the value of an app for merchants?", "3cf0521f-d373-4a9b-a05c-9c6144a94238": "How does building for Flow enhance the value of an app for merchants?", "0dd3c539-ea9e-4781-bbfe-fa9174d85d81": "What are the benefits of integrating with Flow instead of creating direct integrations with multiple apps?", "e8b08632-5289-4012-8459-efcf318f31fb": "What benefits does integrating with Flow provide for app developers in terms of development time and features?", "780c833f-033f-4ab7-86e6-0915e4277bf0": "How can merchants discover templates or tasks related to an app that is integrated with Flow?", "e868cd18-7cd4-487d-83c7-9bef724cbfde": "What is an example of a trigger in a workflow as described in the context?", "a786a6d0-0a85-4cbf-8f1f-d922e8867815": "What type of plan is required for Shopify merchants to access the Flow app?", "afd2f484-0dd4-4271-9b69-fac178ade3b8": "What is the primary difference in Flow features for merchants with custom apps compared to those without?", "6df4f4af-c900-486d-957d-7e61cc1ace0f": "How do templates in Shopify Flow assist merchants in automating specific use cases?", "c484df3f-380e-41a3-a610-71c2c1e84321": "What is the purpose of connecting your app to Shopify Flow in relation to triggers?", "67b8351e-3aea-420f-8d85-80c5c7198aa5": "How can you create workflow templates in Shopify Flow?", "8cd039c4-9f9d-4d53-91b6-0705f1591540": "What is the purpose of embedding a page from an app in the Shopify Flow editor for merchants?", "61687816-984d-4dad-ad5a-b0bada1610ab": "What resources are required to implement a custom configuration page in Shopify Flow?", "a0f65c2a-454b-4c1a-a688-e971c37d8f00": "What are the prerequisites for implementing a custom configuration page in Shopify Flow?", "89070b30-94b9-4472-972a-6dd1034e80a8": "Which tools and components are necessary to build a custom configuration page using Shopify App Bridge?", "2446a7b3-3914-46db-add5-3539628b8249": "What is the purpose of using Shopify App Bridge when building a custom configuration page?", "444d3880-b3f3-4480-bb38-d0b740306ae1": "How can you access step and property information on the custom configuration page?", "522f3999-9814-4242-85ef-d7d5343a37ad": "What is the purpose of the step_reference search parameter in the context of the custom configuration page for Shopify Flow?", "5a5ae796-5a74-42c4-9cf8-b6c66d177df0": "How can you access the property data that makes up the action payload schema when integrating Shopify App Bridge?", "c55b778e-c97b-4ecb-aa37-3b6c605e2943": "What is the purpose of the properties object in the action payload schema for Shopify App Bridge?", "06b5530f-234f-40e3-b6b8-768d64f23fa4": "How can you register to the Custom Configuration Page's intent using Shopify App Bridge version 4.X.X and up?", "7680acc9-1558-4c83-8d3f-7d9d647aebc1": "What is the purpose of the `useAppBridge` hook in the provided context?", "ecf2e643-663c-41d7-9e8c-252c3294e7a8": "How does the `finish` method in the intent object function within the Application component?", "27e72e20-5273-4781-abda-4a4713ea0474": "What does the register method return that can be used when a component is unmounting?", "c55c56ef-95a2-41d6-ad84-a1bb62c5664f": "How can you trigger a redirect to the previous page in the custom configuration page?", "e16ac9e4-7e86-4ec3-8667-492eb17bc59e": "What elements can be added to the navigation bar using the ui-title-bar element?", "0d2c75a5-2954-4e19-bfe6-6199dfbccaf6": "How can you access property data in a Shopify App Bridge integration?", "928c8655-ca30-4321-a720-c406247ea516": "What event must you subscribe to in order to access property data in the provided context?", "71e220b9-6602-4542-aaaa-147faa57af38": "In the example code, what action is triggered to request the properties after subscribing to the properties event?", "ea45ae29-3bb2-436e-bd85-641e3866d111": "What event does the app subscribe to in the first useEffect hook?", "02461067-bb33-4cea-8482-0ec23f7b66ec": "How can a redirect to the previous page be triggered in the application?", "f622a3ac-7de2-4cba-af5b-72b4341bdb73": "What is the default function of the Exit button on the custom configuration page's title bar?", "8fb2c044-eb63-49dd-a406-ccf781836dc7": "How can additional actions be added to the App Bridge title bar using @shopify/app-bridge?", "e85ce457-7590-40a6-82a6-315fd80d42aa": "What is the purpose of keeping a reference to the Titlebar instance after its initialization?", "e3cf9bd2-1a85-4a3c-bde1-1d02874fefe5": "Which actions are supported on the TitleBar when using @shopify/app-bridge-react?", "c5f017a8-68a8-487b-923c-503feb2c3653": "What actions are triggered when the primary and secondary buttons are clicked in the provided code?", "a9f7fc4c-f4d8-43cd-b47f-ca58d58e6023": "How is the title bar updated with a new primary button after its initial creation?", "dd9ff9b6-9426-4710-a8f2-528fe37d66ac": "What is the purpose of the `newPrimary` button in the provided context?", "9c45cb40-6432-440d-8473-66bf8816d14b": "How does the `onAction` function work for the buttons defined in the `Page` component?", "fe1de958-fc20-4cb0-84a8-9000b43a691d": "What is the purpose of the `primaryAction` and `secondaryActions` in the provided code?", "e36cf408-d0c1-41ae-8aa4-d69ec04259fe": "What additional steps are required to add a custom configuration page to your Shopify Flow action?", "e21f854d-7514-44d0-98f5-f93dbdbedec5": "What is the purpose of the handle property in the context of Flow extensions imported into Shopify CLI?", "85c125dd-0ae6-4300-b5a7-e58e340e599b": "What are the requirements for creating a Partner account and using Shopify CLI v3.70.0 or higher?", "8540921e-5279-4e5b-8dcd-a0c43408a969": "What happens to the handle property of extensions after running the dev or deploy commands?", "61d22f8e-4c91-41eb-80d2-c2b63089f5d8": "What is the purpose of the import command in relation to Partner Dashboard extensions?", "d37739b9-63a7-45b5-8d83-54549a9ec65f": "What command is used to import Flow extensions into your application?", "2f8cdf6a-abf2-4847-9eff-b06b7c76c726": "Where is the file representation of the imported extension generated in your application?", "3da47908-b935-49ab-9380-dd13f844ddbe": "What is the first step to import an extension using Shopify CLI?", "5be59e4e-7fd7-4076-b6ab-038d26bc1a5d": "Where can you find the file representation of the imported extension in your application?"}, "relevant_contexts": {"5883390a-2821-46d2-9db3-3235f155c729": ["eda9541f-1f82-4def-b808-2e4fdcc75e32"], "dbe711fa-d752-49e2-81d1-05c63bf46467": ["eda9541f-1f82-4def-b808-2e4fdcc75e32"], "e751ca63-ede0-4cad-95da-4bd45eeb2403": ["fcf4e526-f201-4dc6-9194-1cbb1355e05d"], "5a689df3-b2d9-475a-ba82-62906e4ca6fe": ["fcf4e526-f201-4dc6-9194-1cbb1355e05d"], "aa6aa330-b6d7-4b1b-85f1-8f77a17e8ec9": ["6a37e532-8bdd-478b-b187-e925a820c92c"], "d449a8cd-1415-4de2-8b5d-37839b6f9c43": ["6a37e532-8bdd-478b-b187-e925a820c92c"], "904d9445-12f1-4b4f-a490-03044688adae": ["2bca0439-9f60-41b4-8525-3293aec79339"], "648655c0-6ead-45d2-8bd1-dd5dc8b50a23": ["2bca0439-9f60-41b4-8525-3293aec79339"], "3f4d5f1b-e481-44aa-ada7-9411cb69c4a4": ["66b1f6de-e939-4ce7-9b59-8fee16cccac7"], "2efec970-37e7-4560-8d3d-7c51a59f7aba": ["66b1f6de-e939-4ce7-9b59-8fee16cccac7"], "73eec5f2-1753-4228-a23e-41a13436c172": ["21f8f45b-9a80-4291-a5ca-a47f1c8b4096"], "2c2203a8-1972-47b5-b7d8-14421df1710f": ["21f8f45b-9a80-4291-a5ca-a47f1c8b4096"], "39937797-a5e2-4ed5-b2db-b81a9d2b7d7a": ["91941eb1-b187-464d-a6b9-d8867f8bdc9b"], "96e3f8e6-8ce5-406f-9804-de7e7698b191": ["91941eb1-b187-464d-a6b9-d8867f8bdc9b"], "142c4d9b-4d46-4608-9605-95c2941948cb": ["f4b18b76-4a15-4a17-8739-870895b4652c"], "83da9547-049d-4d84-9be3-2109dbfc4828": ["f4b18b76-4a15-4a17-8739-870895b4652c"], "71e3676c-1f81-4c30-a80c-0f05096a5042": ["b3eda256-b55c-4b9c-ab76-562a13e8a752"], "d8d2dfa5-9a37-4d0a-949a-f666b6811a69": ["b3eda256-b55c-4b9c-ab76-562a13e8a752"], "346b7c65-9a4c-4f1a-bcdc-e1e7bcd04e12": ["f62eb335-c69f-4834-b103-5a78eaed6eae"], "ace1d91b-8ace-4c8c-85cb-a670a1c8d022": ["f62eb335-c69f-4834-b103-5a78eaed6eae"], "b88e76d7-e171-45b7-9c79-b172ad3a0c72": ["1bc854fa-6119-4603-a238-bf6432d48dfc"], "31dd067b-6f27-469f-ae13-0c0120e4b429": ["1bc854fa-6119-4603-a238-bf6432d48dfc"], "714ac088-8d11-4955-965d-c4a7aaea7b10": ["c7af309e-7828-4325-9081-9ff22f26ff9f"], "6a9bc91d-7d0d-4fa1-9d3d-6e3b670c5085": ["c7af309e-7828-4325-9081-9ff22f26ff9f"], "aaf43508-ec97-44ed-91c5-462251f6183b": ["ebfb4f2a-8188-4468-a0a3-9e069bfe3f6f"], "b1792585-b870-4fbc-b64a-3664c62559d1": ["ebfb4f2a-8188-4468-a0a3-9e069bfe3f6f"], "527fb3da-37df-466b-9e0c-f3b444459f06": ["774dfcec-0fb6-4cfa-8be6-512dd3d4f622"], "34bdf182-d256-48fc-bd11-d2826d591204": ["774dfcec-0fb6-4cfa-8be6-512dd3d4f622"], "83e4310b-8768-44b9-a5b7-a38560915cbb": ["822bc960-2dce-4fab-a90c-a5b01c2afaa1"], "760b475d-e094-4880-8aa8-b6ad1a8b230e": ["822bc960-2dce-4fab-a90c-a5b01c2afaa1"], "761d4f85-a18d-4b0c-8e27-ac4f3ee50c61": ["c2714d97-f44c-4661-a5e5-7e9a34e08223"], "062101f8-bce9-4dbf-b3af-d0c455fb6b21": ["c2714d97-f44c-4661-a5e5-7e9a34e08223"], "320bd940-f90e-4c9c-973a-dfa3310affe8": ["e5ed4494-31cd-42bf-a1d4-1ca87539e77e"], "9f9bead0-32f0-481f-9e51-3c9115592ea1": ["e5ed4494-31cd-42bf-a1d4-1ca87539e77e"], "1c993acf-0e9b-4b5d-a497-7e982a6161ab": ["df51d8d8-c884-4977-b4d4-dde9a920f071"], "279ef3ed-00db-40b8-bf4b-3b24cba1a344": ["df51d8d8-c884-4977-b4d4-dde9a920f071"], "23bf99f2-4b2e-4cdd-85fe-bbf26470d7a7": ["8218c575-5c5c-448d-8ff4-dacb00fc0ddb"], "4d516953-ddef-452b-8093-07bb05fe2269": ["8218c575-5c5c-448d-8ff4-dacb00fc0ddb"], "311ca0ca-02db-46a9-9c67-d366e58ee3fe": ["3e3da2db-b34e-4e39-99c1-636ef633ecbd"], "58cdb691-2fbc-4449-ad8d-372d6807fa98": ["3e3da2db-b34e-4e39-99c1-636ef633ecbd"], "812b119c-00f8-4cff-934e-342733031b3d": ["28e75426-14bc-472b-aced-b4754dd957c3"], "11e0e1c0-b581-458b-b9cc-a2b103440b80": ["28e75426-14bc-472b-aced-b4754dd957c3"], "7166457b-808c-424b-8040-5de98f61fc34": ["24efc351-6aca-4f9e-82be-109fecaed99d"], "b60d2983-444a-47b3-a681-c609dc2c267a": ["24efc351-6aca-4f9e-82be-109fecaed99d"], "1d846d80-5013-4d20-81d2-5f4b08daa6fa": ["fa2d7143-dfaf-48ea-a9c0-c803b8baf16f"], "4d0a3061-b5eb-48f2-8f72-5dad1691e04f": ["fa2d7143-dfaf-48ea-a9c0-c803b8baf16f"], "b1b97306-7267-4401-baed-5f94beea1679": ["fb2edbb6-70e1-460e-a797-f54899c44fe2"], "d19dd3cb-0ce6-41ee-8e74-eb1675d59e75": ["fb2edbb6-70e1-460e-a797-f54899c44fe2"], "e507361e-31cb-45e1-b847-20af761f3a6a": ["067eed18-8a83-41d6-9098-4251e02d74de"], "a7292cd2-acdd-4eb2-834b-40ac583ae9fd": ["067eed18-8a83-41d6-9098-4251e02d74de"], "2f16bdde-9e63-4f2a-b2f9-46f7733a3368": ["2dc9943f-d724-4461-9db1-4d0eeca567fd"], "fe47bc45-ebe4-4998-a270-96b653c5dd84": ["2dc9943f-d724-4461-9db1-4d0eeca567fd"], "8e028ea8-84ee-4185-9ace-021d135ab860": ["f64c7811-a160-469b-b4b1-36e32ca5d1c9"], "400f8a1a-bd2d-4832-b11b-336e577ea6a0": ["f64c7811-a160-469b-b4b1-36e32ca5d1c9"], "f021296a-a6f4-4fde-b490-5c7172a98669": ["c4b9f674-8b08-4e85-946c-3f1bc9f02e09"], "3215ec5e-6270-490a-9f12-a0bab46479d3": ["c4b9f674-8b08-4e85-946c-3f1bc9f02e09"], "1f6d2017-c37f-45bc-8bf0-68f193e54980": ["f7d85b66-a33a-463a-9235-96c640877433"], "dbc0533a-9f6d-4242-b86c-50934a07ca75": ["f7d85b66-a33a-463a-9235-96c640877433"], "e96ad361-dcfa-4313-a69b-977c4122fa25": ["aff1bef9-c4ca-470a-bb7c-788ad4a59398"], "c5712523-ac3e-4f33-9e46-db9f8170391c": ["aff1bef9-c4ca-470a-bb7c-788ad4a59398"], "3d236a2d-8740-4727-b221-468ea7e7bc69": ["527ccd6c-cf6b-478a-971c-44e9e123d006"], "fef81927-90ac-450c-84f1-4a7a4140da9c": ["527ccd6c-cf6b-478a-971c-44e9e123d006"], "20208547-9891-4bdd-8778-e971eab68fcb": ["743e4395-9a4d-4459-9272-e730bd011bee"], "8b48a9e9-17ea-4a94-9068-152954bfb40a": ["743e4395-9a4d-4459-9272-e730bd011bee"], "bb11b5d1-da80-45de-a337-fcbc55805256": ["32f0a947-6af9-475b-95f4-f063ed49764d"], "d5b3696f-50ea-4e3f-99e9-5852ca9fec55": ["32f0a947-6af9-475b-95f4-f063ed49764d"], "8e4aa580-987d-4b28-9bd9-294d454475cd": ["5542caac-7207-46d1-953d-f707533ebd06"], "8204809f-ff97-4f91-829f-2a8574a02d66": ["5542caac-7207-46d1-953d-f707533ebd06"], "8b33ac53-be85-4806-a35f-02d5a1a3548f": ["ce37f2f0-205b-446c-b4d6-01f051a87c51"], "367ed64a-eee2-4e56-8a42-53f612ee3fb9": ["ce37f2f0-205b-446c-b4d6-01f051a87c51"], "ce63eb2e-6b68-4b8b-915d-f6e2ab8a061c": ["5fb4121d-16b2-484d-b375-b49f3921226f"], "483c9b43-b723-413f-b782-07d3338920f9": ["5fb4121d-16b2-484d-b375-b49f3921226f"], "f39bec90-b8fa-4e46-b69a-391a64183ef0": ["f98ef7d0-3503-4bcf-9980-d0ba841df0d5"], "92dc539a-eddb-4577-8ee4-e90294983424": ["f98ef7d0-3503-4bcf-9980-d0ba841df0d5"], "4a12acc4-521d-4684-a156-5fa30c88ab2c": ["05eb348a-edf7-425e-a36d-9fd5be9aaa35"], "d2e334f4-74dd-49bb-9e23-95be4d69b967": ["05eb348a-edf7-425e-a36d-9fd5be9aaa35"], "29583de0-bf72-4a59-8e82-de624649aab3": ["1458f1c4-82a0-448e-b820-30587f046b82"], "68d2dc19-1491-4b40-8129-08b1b4ce3aad": ["1458f1c4-82a0-448e-b820-30587f046b82"], "8e8bd31a-a4fd-4802-9efa-f692f658e74d": ["8c4f39a3-687a-49a2-a78e-69feb0cf23e9"], "b399b403-13a0-43ad-9b51-1b537d550dc7": ["8c4f39a3-687a-49a2-a78e-69feb0cf23e9"], "7559ee5c-d214-4af4-9d3d-6dba5837fb6a": ["cec07f50-5f68-45a0-8379-e9a0c89ceb83"], "71141eb3-5b81-4182-b474-0e6b2e0867b5": ["cec07f50-5f68-45a0-8379-e9a0c89ceb83"], "be5b2d09-25e5-4d94-971e-0e64a7ca4291": ["ea83a829-1d5f-4073-824c-4fdc13608e89"], "9d111dfc-74e3-4ad2-8947-588be0d0110f": ["ea83a829-1d5f-4073-824c-4fdc13608e89"], "93021416-7b41-48a9-8999-f5ff08bdc562": ["4917ceb8-cffe-47d1-96bc-6252ffeba406"], "67eb1370-fa18-4c72-8769-b5dbada31cc4": ["4917ceb8-cffe-47d1-96bc-6252ffeba406"], "7ef4f360-ac98-4c72-8544-c81006764262": ["34a67c76-e610-48b4-9c68-74bdf32632da"], "1ca17be2-d475-47e6-80fc-f924b4527101": ["34a67c76-e610-48b4-9c68-74bdf32632da"], "057c9427-d82d-49b0-8c5d-8446b8934a02": ["f73ae7ac-6780-40cc-b744-2731b801e701"], "e1e5d51c-1186-479c-a449-43266d1ca55b": ["f73ae7ac-6780-40cc-b744-2731b801e701"], "521475b3-aafc-4e8b-a940-5294dc629b77": ["40e048a8-1403-4ba1-9711-99a642977abe"], "208356fa-f8f3-4b78-91f7-09a30c2ed0be": ["40e048a8-1403-4ba1-9711-99a642977abe"], "1cb025a2-0fdf-4012-8470-2e3f3c361ed8": ["f474090d-15a4-42c5-83da-1f45435796bc"], "6f0d18ea-5b9a-4492-8028-860986ee467c": ["f474090d-15a4-42c5-83da-1f45435796bc"], "13b58876-f902-4b3b-8ae4-0d592179ee86": ["7b20990d-a242-43c2-b884-951b694efa0c"], "a69e5052-4f68-45bd-89f2-4c371dd8b666": ["7b20990d-a242-43c2-b884-951b694efa0c"], "888ba232-4a37-4786-bd71-41ceb67e40b4": ["524de14d-fc2e-4fc9-ac40-81f52b694ee7"], "f2aa7cd9-1af7-427f-b124-a2e0c2cdb65a": ["524de14d-fc2e-4fc9-ac40-81f52b694ee7"], "a0330674-f987-411a-8275-59ef08bc34bf": ["d6b376ea-ab62-44d9-988d-93f7a1b9cc88"], "88cce890-95bf-408d-bbc2-09ed690d9bf1": ["d6b376ea-ab62-44d9-988d-93f7a1b9cc88"], "524188dc-ef7d-482c-8004-42d8e3c34e4b": ["54602138-b0d6-4256-8208-b2b33c0f2d55"], "285c15dd-e91b-477b-ac8d-4aab2f090701": ["54602138-b0d6-4256-8208-b2b33c0f2d55"], "f5a2a1d7-8b1c-4c05-b0a2-f0ea18362ec8": ["8aeeecf4-429f-4b85-ba6d-edeaa50c3056"], "2f1350dd-e643-47a0-9349-5f1754de03ee": ["8aeeecf4-429f-4b85-ba6d-edeaa50c3056"], "accc74d4-b086-40ce-a130-5c8d5872f756": ["040df676-371e-4e0e-908c-e578db41cd89"], "2a587ba8-ab08-479f-9f2e-7a696b052754": ["040df676-371e-4e0e-908c-e578db41cd89"], "46f1252c-85d3-4620-bb6d-f8bf82fcefa3": ["e12c7e35-d125-4900-a861-7ab0333ded40"], "161ab785-060d-44f4-8385-4b437e43edca": ["e12c7e35-d125-4900-a861-7ab0333ded40"], "c2ad7dfa-b1e0-4270-94dd-b5fed53aa52d": ["a3624dcb-dd49-4f8e-82cf-a0e3cbe040c9"], "3ddfd48e-f372-4d7f-b42d-6ae32918fbeb": ["a3624dcb-dd49-4f8e-82cf-a0e3cbe040c9"], "2fb0412f-ba0a-46d9-89b4-08443dfc308d": ["1f65d236-2441-4587-a5c6-4f44ab444f0c"], "ce562e26-b6a8-400c-9ac3-fbb907b1c9c5": ["1f65d236-2441-4587-a5c6-4f44ab444f0c"], "a2d5aa07-b663-47d5-af66-f44885c916f1": ["d14c2a7c-a615-42a5-ac7d-5468ba3de02d"], "fa4ed5ff-159e-4f5f-a229-475f24d416c7": ["d14c2a7c-a615-42a5-ac7d-5468ba3de02d"], "c1af587c-21b1-441f-ab3c-6ead75ba06d7": ["d29e63e9-eeb7-4831-ac07-74d6808fa568"], "5c1a06e6-457e-4c93-8f9b-1f34b5f112d0": ["d29e63e9-eeb7-4831-ac07-74d6808fa568"], "4ec4181f-3b8d-40ea-8ac0-379e6950a4b9": ["b90d52b6-777c-4a51-94b6-f8d2f10597d0"], "5c385776-2cf9-4cce-9ac8-8ad53fbd0721": ["b90d52b6-777c-4a51-94b6-f8d2f10597d0"], "b7213ebd-bdd0-4d31-a801-59113733d19c": ["5d4ea731-52e1-4820-935d-466d714dea23"], "d61c0ae4-cf45-4ea7-a6b7-0149976c34eb": ["5d4ea731-52e1-4820-935d-466d714dea23"], "3cf0521f-d373-4a9b-a05c-9c6144a94238": ["0705e79e-8538-4e46-9cb8-b085644bc87a"], "0dd3c539-ea9e-4781-bbfe-fa9174d85d81": ["0705e79e-8538-4e46-9cb8-b085644bc87a"], "e8b08632-5289-4012-8459-efcf318f31fb": ["f7f16c3b-2127-4bb8-850a-1135e6c999fc"], "780c833f-033f-4ab7-86e6-0915e4277bf0": ["f7f16c3b-2127-4bb8-850a-1135e6c999fc"], "e868cd18-7cd4-487d-83c7-9bef724cbfde": ["d6dcdba4-9ad6-4838-8d8b-1f59f290e0bc"], "a786a6d0-0a85-4cbf-8f1f-d922e8867815": ["d6dcdba4-9ad6-4838-8d8b-1f59f290e0bc"], "afd2f484-0dd4-4271-9b69-fac178ade3b8": ["3b05366e-c0e7-41fd-bc4c-8f98f9143d6a"], "6df4f4af-c900-486d-957d-7e61cc1ace0f": ["3b05366e-c0e7-41fd-bc4c-8f98f9143d6a"], "c484df3f-380e-41a3-a610-71c2c1e84321": ["0459cc89-e461-4f1f-bbb5-95759f1a9171"], "67b8351e-3aea-420f-8d85-80c5c7198aa5": ["0459cc89-e461-4f1f-bbb5-95759f1a9171"], "8cd039c4-9f9d-4d53-91b6-0705f1591540": ["dd7bc564-08ba-4140-bc06-2c150c04a5f8"], "61687816-984d-4dad-ad5a-b0bada1610ab": ["dd7bc564-08ba-4140-bc06-2c150c04a5f8"], "a0f65c2a-454b-4c1a-a688-e971c37d8f00": ["b9fd458a-32a4-4ca6-8535-0609e3af873e"], "89070b30-94b9-4472-972a-6dd1034e80a8": ["b9fd458a-32a4-4ca6-8535-0609e3af873e"], "2446a7b3-3914-46db-add5-3539628b8249": ["229b78fd-d68f-4764-a321-d612e85ee714"], "444d3880-b3f3-4480-bb38-d0b740306ae1": ["229b78fd-d68f-4764-a321-d612e85ee714"], "522f3999-9814-4242-85ef-d7d5343a37ad": ["55b2ddcc-81f7-4bbe-9092-ca076b332df3"], "5a5ae796-5a74-42c4-9cf8-b6c66d177df0": ["55b2ddcc-81f7-4bbe-9092-ca076b332df3"], "c55b778e-c97b-4ecb-aa37-3b6c605e2943": ["9febcd34-d30e-47f9-9ee5-5d6ceb894ae8"], "06b5530f-234f-40e3-b6b8-768d64f23fa4": ["9febcd34-d30e-47f9-9ee5-5d6ceb894ae8"], "7680acc9-1558-4c83-8d3f-7d9d647aebc1": ["b569e03e-deed-4639-b3b4-dc2ff9f16e11"], "ecf2e643-663c-41d7-9e8c-252c3294e7a8": ["b569e03e-deed-4639-b3b4-dc2ff9f16e11"], "27e72e20-5273-4781-abda-4a4713ea0474": ["4f911f5b-0657-4f6e-8a24-289727dd1a4d"], "c55c56ef-95a2-41d6-ad84-a1bb62c5664f": ["4f911f5b-0657-4f6e-8a24-289727dd1a4d"], "e16ac9e4-7e86-4ec3-8667-492eb17bc59e": ["1f9ca5e4-9b3b-40ed-9bf0-55d9a7783f30"], "0d2c75a5-2954-4e19-bfe6-6199dfbccaf6": ["1f9ca5e4-9b3b-40ed-9bf0-55d9a7783f30"], "928c8655-ca30-4321-a720-c406247ea516": ["00a99cf8-425c-4adf-859f-bebf790c424b"], "71e220b9-6602-4542-aaaa-147faa57af38": ["00a99cf8-425c-4adf-859f-bebf790c424b"], "ea45ae29-3bb2-436e-bd85-641e3866d111": ["0b03a339-f8d9-4dd5-909c-5872c3e51998"], "02461067-bb33-4cea-8482-0ec23f7b66ec": ["0b03a339-f8d9-4dd5-909c-5872c3e51998"], "f622a3ac-7de2-4cba-af5b-72b4341bdb73": ["696fc674-3d1b-44bb-8400-429851bc92bd"], "8fb2c044-eb63-49dd-a406-ccf781836dc7": ["696fc674-3d1b-44bb-8400-429851bc92bd"], "e85ce457-7590-40a6-82a6-315fd80d42aa": ["a225bed4-3eb8-43e5-95eb-ecdd45e57ba2"], "e3cf9bd2-1a85-4a3c-bde1-1d02874fefe5": ["a225bed4-3eb8-43e5-95eb-ecdd45e57ba2"], "c5f017a8-68a8-487b-923c-503feb2c3653": ["5cf9fa58-5392-4499-8573-529d7f1bb6a4"], "a9f7fc4c-f4d8-43cd-b47f-ca58d58e6023": ["5cf9fa58-5392-4499-8573-529d7f1bb6a4"], "dd9ff9b6-9426-4710-a8f2-528fe37d66ac": ["abae7567-647b-4568-853f-ddbe18d877a2"], "9c45cb40-6432-440d-8473-66bf8816d14b": ["abae7567-647b-4568-853f-ddbe18d877a2"], "fe1de958-fc20-4cb0-84a8-9000b43a691d": ["954cfeb2-9747-4b55-9c44-7df0730dc7bb"], "e36cf408-d0c1-41ae-8aa4-d69ec04259fe": ["954cfeb2-9747-4b55-9c44-7df0730dc7bb"], "e21f854d-7514-44d0-98f5-f93dbdbedec5": ["b201b4fc-e2d3-420a-8b2a-93d5b92d06ae"], "85c125dd-0ae6-4300-b5a7-e58e340e599b": ["b201b4fc-e2d3-420a-8b2a-93d5b92d06ae"], "8540921e-5279-4e5b-8dcd-a0c43408a969": ["75b5402b-5a6f-403b-b631-6ddf3b3b8d26"], "61d22f8e-4c91-41eb-80d2-c2b63089f5d8": ["75b5402b-5a6f-403b-b631-6ddf3b3b8d26"], "d37739b9-63a7-45b5-8d83-54549a9ec65f": ["839ff070-9f2e-407f-b0fd-3e375b3cdb9e"], "2f8cdf6a-abf2-4847-9eff-b06b7c76c726": ["839ff070-9f2e-407f-b0fd-3e375b3cdb9e"], "3da47908-b935-49ab-9380-dd13f844ddbe": ["0666116d-7768-49ab-b73f-df98d4f2d648"], "5be59e4e-7fd7-4076-b6ab-038d26bc1a5d": ["0666116d-7768-49ab-b73f-df98d4f2d648"]}, "corpus": {"eda9541f-1f82-4def-b808-2e4fdcc75e32": "How actions work\n\nAn action is a workflow component in Shopify Flow. It represents a task that's executed in a store or in an app when certain conditions are met. You can connect your app to Shopify Flow so that your app receives data when a workflow action runs.\n\nThis guide shows you how to add an action to your app so that merchants can use it in their workflows.\n\nNext steps\n\nFollow our step by step guide on how to create and test a Flow action.\n\nCheck out our action endpoint guide for more information on how to setup an execution endpoint, a custom configuration page preview endpoint and custom validation.\n\nLearn more about how to return complex data in a Flow action.\n\nInterested in building a custom configuration page? Follow this guide to learn more.", "fcf4e526-f201-4dc6-9194-1cbb1355e05d": "To create an action that merchants can use in their workflows, you need to add the action to your app. The action needs to contain the following information:\n\nThe fields that the merchant needs to complete when they add the action to their workflows\n\nThe URL that Shopify Flow uses to send (POST) the contents (JSON payload) of the action to your app\n\nYou also need to configure your app to process the data from the POST request when it arrives and to send status codes back to Shopify Flow.\n\nTo enhance the merchant experience and more closely integrate external systems, you can also build a custom configuration page. To improve the reliability of your action, you can add custom validation for action properties.\n\nRequirements\n\nYou have the following:\n\nA test web server that has access to the Internet, so that it can receive POST requests from Shopify Flow\n\nA test app that works with the test web server\n\nA development store that has Shopify Flow and the test app installed", "6a37e532-8bdd-478b-b187-e925a820c92c": "To enhance the merchant experience and more closely integrate external systems, you can also build a custom configuration page. To improve the reliability of your action, you can add custom validation for action properties.\n\nRequirements\n\nYou have the following:\n\nA test web server that has access to the Internet, so that it can receive POST requests from Shopify Flow\n\nA test app that works with the test web server\n\nA development store that has Shopify Flow and the test app installed\n\nStep 1: Create a Flow Action\n\nTo give your Flow action a meaningful name, use the following guidelines:\n\nUse a present-tense verb + object acted on format. For example, Place auction bid.\n\nUse sentence case.\n\nDon't use punctuation.\n\nSeparate words using spaces.\n\nUsing Shopify CLI\n\nUse the Shopify CLI to generate a new extension:\n\nNavigate to your app directory.\n\nRun the following command:\n\n```bash\n\n!/bin/bash\n\nshopify app generate extension\n```\n\nSelect the Flow Action as the type of extension.", "2bca0439-9f60-41b4-8525-3293aec79339": "Step 1: Create a Flow Action\n\nTo give your Flow action a meaningful name, use the following guidelines:\n\nUse a present-tense verb + object acted on format. For example, Place auction bid.\n\nUse sentence case.\n\nDon't use punctuation.\n\nSeparate words using spaces.\n\nUsing Shopify CLI\n\nUse the Shopify CLI to generate a new extension:\n\nNavigate to your app directory.\n\nRun the following command:\n\n```bash\n\n!/bin/bash\n\nshopify app generate extension\n```\n\nSelect the Flow Action as the type of extension.\n\nProvide a meaningful name for your extension.\n\nAfter you've followed the prompts, Shopify CLI generates the extension\u2019s file representation in your app's /extensions directory and gives you a success message. You can then go into your app's /extensions directory and start editing your new extension.\n\nThe file structure of your extension should look like the following:\n\n/place-auction-bid\n shopify.extension.toml", "66b1f6de-e939-4ce7-9b59-8fee16cccac7": "Select the Flow Action as the type of extension.\n\nProvide a meaningful name for your extension.\n\nAfter you've followed the prompts, Shopify CLI generates the extension\u2019s file representation in your app's /extensions directory and gives you a success message. You can then go into your app's /extensions directory and start editing your new extension.\n\nThe file structure of your extension should look like the following:\n\n/place-auction-bid\n shopify.extension.toml\n\nTo learn more about the extensions file structure, refer to App structure and the documentation for your extension type.\n\nUsing the Partner Dashboard\n\nIn your Partner Dashboard, click Apps.\n\nSelect the app that you want to add your Shopify Flow action to.\n\nClick Extensions, then click Create or Create extension.\n\nUnder the Flow tab, click Flow/Actions.\n\nIn the Extension name field, name your action, such as Place auction bid. This name is used only for internal purposes.", "21f8f45b-9a80-4291-a5ca-a47f1c8b4096": "To learn more about the extensions file structure, refer to App structure and the documentation for your extension type.\n\nUsing the Partner Dashboard\n\nIn your Partner Dashboard, click Apps.\n\nSelect the app that you want to add your Shopify Flow action to.\n\nClick Extensions, then click Create or Create extension.\n\nUnder the Flow tab, click Flow/Actions.\n\nIn the Extension name field, name your action, such as Place auction bid. This name is used only for internal purposes.\n\nEnter a title and description for the action. In the Action Preview area, you can see how the title and action display to merchants when they're choosing actions in Shopify Flow.\n\nEnter the URL for the action execution endpoint that you created. Shopify Flow sends the action's JSON payload to this endpoint when it's about to execute your action.\n\nStep 2: Customize a Flow action configuration file", "91941eb1-b187-464d-a6b9-d8867f8bdc9b": "Enter a title and description for the action. In the Action Preview area, you can see how the title and action display to merchants when they're choosing actions in Shopify Flow.\n\nEnter the URL for the action execution endpoint that you created. Shopify Flow sends the action's JSON payload to this endpoint when it's about to execute your action.\n\nStep 2: Customize a Flow action configuration file\n\nIn this section you'll use the default action template and update it to be a functional extension example. Once you have generated a Flow extension using Shopify CLI, follow the instructions below:\n\nChange the description to Place a bid on an auction.\n\nUpdate the extensions.runtime_url to an endpoint where you can receive the runtime request.\n\nOn the second settings.fields field, update the following values:\n\ntype to number_decimal\n\nkey to amount\n\nname to Bid Amount\n\nAdd a description property and set it to The amount of the bid", "f4b18b76-4a15-4a17-8739-870895b4652c": "Change the description to Place a bid on an auction.\n\nUpdate the extensions.runtime_url to an endpoint where you can receive the runtime request.\n\nOn the second settings.fields field, update the following values:\n\ntype to number_decimal\n\nkey to amount\n\nname to Bid Amount\n\nAdd a description property and set it to The amount of the bid\n\n```bash\n[[extensions]]\nname = \"Place Auction Bid\"\ntype = \"flow_action\"\nhandle = \"place-bid\"\ndescription = \"Place a bid on an auction\"\nruntime_url = \"https://your-server-domain/path/to/action/handler\"\n\n[settings]\n\n[[settings.fields]]\n type = \"customer_reference\"\n required = true\n\n[[settings.fields]]\n type = \"number_decimal\"\n key = \"amount\"\n name = \"Bid Amount\"\n description = \"The amount of the bid\"\n required = true\n```\n\nStep 3: Configure your web server\n\nTo build a Shopify Flow action, you need to add a service to your web server to listen for the JSON payload that Shopify Flow sends when the action runs.", "b3eda256-b55c-4b9c-ab76-562a13e8a752": "[settings]\n\n[[settings.fields]]\n type = \"customer_reference\"\n required = true\n\n[[settings.fields]]\n type = \"number_decimal\"\n key = \"amount\"\n name = \"Bid Amount\"\n description = \"The amount of the bid\"\n required = true\n```\n\nStep 3: Configure your web server\n\nTo build a Shopify Flow action, you need to add a service to your web server to listen for the JSON payload that Shopify Flow sends when the action runs.\n\nOptionally, you can also add the following:\n\nAn endpoint to validate actions\n\nA custom configuration page, and an endpoint that lets merchants preview your custom configuration page\n\nAdd the following API endpoints to your server:", "f62eb335-c69f-4834-b103-5a78eaed6eae": "To build a Shopify Flow action, you need to add a service to your web server to listen for the JSON payload that Shopify Flow sends when the action runs.\n\nOptionally, you can also add the following:\n\nAn endpoint to validate actions\n\nA custom configuration page, and an endpoint that lets merchants preview your custom configuration page\n\nAdd the following API endpoints to your server:\n\nEndpoint Purpose Flow action execution The endpoint where the automation tool sends your action's payload. The payload contains data that you can use to execute the action in your app. Custom configuration page preview An endpoint that provides data about your custom configuration page to display in the automation tool. This endpoint is required if you want to use a custom configuration page. Custom validation An endpoint that validates the contents of merchant-configurable properties in an action payload when an action is saved. This endpoint is required if you want to use a custom configuration page.", "1bc854fa-6119-4603-a238-bf6432d48dfc": "To learn more about the endpoint requirements for your server, refer to Action endpoints.\n\nTo learn how to create a custom configuration page, refer to Build a custom configuration page.\n\nStep 4: Enable the draft version of your action\n\nRunning app dev allows changes made to local files to update the draft version of your Flow task extensions. The draft version is only available in your development store.\n\nNote:\nWhen app dev is running and \"Development store preview\" is enabled, the draft version of a task will appear in your development store in place of the deployed version. Other shops will continue to see the deployed version of your task (if one exists). Draft versions can be identified by the \"draft\" badge. To see the deployed version of the task in your development store, turn off \"Development store preview\" in the \"Extensions\" section of your app in Shopify Partners.\n\nNavigate to your app directory.", "c7af309e-7828-4325-9081-9ff22f26ff9f": "Navigate to your app directory.\n\nRun the following command to start using draft versions of your extension(s):\n\n```bash\n\n!/bin/bash\n\nshopify app dev\n```\n\nFollow the prompts.\n\nStep 5: Test the action\n\nAfter you've created an action in the Partner Dashboard and added support for it in your web server, you can test the action in Shopify Flow on your development store.\n\nIn your development store, create a workflow that uses the action. For example, add the trigger that you created in the Triggers guide and this action to a workflow.\n\nIf you created a custom configuration page, then ensure that the preview displays and that the custom configuration page is accessible.\n\nIf you added any custom validation, then ensure that it works as expected.\n\nTrigger the workflow. For example, in your web server, run the event that sends the trigger information to Shopify Flow.", "ebfb4f2a-8188-4468-a0a3-9e069bfe3f6f": "If you created a custom configuration page, then ensure that the preview displays and that the custom configuration page is accessible.\n\nIf you added any custom validation, then ensure that it works as expected.\n\nTrigger the workflow. For example, in your web server, run the event that sends the trigger information to Shopify Flow.\n\nWhen the workflow completes, your web server has sent data to Shopify Flow because of the trigger. Shopify Flow has sent this data to a web server that logged the information to its console because of the action.\n\nStep 6: Deploy your extension\n\nNote:\nDeploying extensions using the app deploy command also publishes the extensions. We recommend testing changes by using app dev or deploying to a test app before deploying them to a production app.\n\nUse Shopify CLI to deploy your extensions:\n\nNavigate to your app directory.\n\nRun the following command to start deploying your extension(s):\n\n```bash\n\n!/bin/bash\n\nshopify app deploy\n```\n\nFollow the prompts.", "774dfcec-0fb6-4cfa-8be6-512dd3d4f622": "Step 6: Deploy your extension\n\nNote:\nDeploying extensions using the app deploy command also publishes the extensions. We recommend testing changes by using app dev or deploying to a test app before deploying them to a production app.\n\nUse Shopify CLI to deploy your extensions:\n\nNavigate to your app directory.\n\nRun the following command to start deploying your extension(s):\n\n```bash\n\n!/bin/bash\n\nshopify app deploy\n```\n\nFollow the prompts.\n\nWhen you receive confirmation that the deploy was successful, your extensions have been released.\n\nVerifying requests\n\nFor security reasons, make sure that you verify the following elements in each request:\n\nThe POST request's HMAC header (either x-shopify-hmac-sha256 or http-x-shopify-hmac-sha256). The HMAC header should be verified before you process the payload. For more information, refer to Verifying requests.\n\nThe payload handle. This ID should match the handle of the action that you created, and can be retrieved from the payload preview.", "822bc960-2dce-4fab-a90c-a5b01c2afaa1": "Verifying requests\n\nFor security reasons, make sure that you verify the following elements in each request:\n\nThe POST request's HMAC header (either x-shopify-hmac-sha256 or http-x-shopify-hmac-sha256). The HMAC header should be verified before you process the payload. For more information, refer to Verifying requests.\n\nThe payload handle. This ID should match the handle of the action that you created, and can be retrieved from the payload preview.\n\nNext steps\n\nConnect your app to Shopify Flow so that events that occur in your app can trigger workflows.\n\nLearn how to receive lifecycle events from Shopify Flow about the stores that are using your triggers in enabled workflows.\n\nLearn more about how to return complex data in a Flow action.", "c2714d97-f44c-4661-a5e5-7e9a34e08223": "When you create a new trigger extension using Shopify CLI, a basic version of the TOML configuration file structure is generated. In this guide, you'll learn about configuring the different sections and properties of the configuration file, including extension properties, extension fields, reference field types, custom field types, and more.\n\nThis guide will also inform you how to make HTTP requests to Flow to start the workflows in which your extension is the trigger.\n\nTOML\n\nNote:\nCreating Flow extensions using Shopify CLI is an exciting new feature that is currently in development. As with any developing feature, it's important to note that the Flow's CLI capabilities will continue to evolve and improve over time. Developers can expect additional functionality, enhancements, and improvements to be added as development progresses.\n\nTo create Flow extensions using Shopify CLI, ensure you have the latest version installed.", "e5ed4494-31cd-42bf-a1d4-1ca87539e77e": "TOML\n\nNote:\nCreating Flow extensions using Shopify CLI is an exciting new feature that is currently in development. As with any developing feature, it's important to note that the Flow's CLI capabilities will continue to evolve and improve over time. Developers can expect additional functionality, enhancements, and improvements to be added as development progresses.\n\nTo create Flow extensions using Shopify CLI, ensure you have the latest version installed.\n\nWhen you create a new trigger extension using Shopify CLI, you'll get a basic version of the TOML configuration file structure which should look like the following example:\n\n```bash\n[[extensions]]\nname = \"Auction Bid\"\ntype = \"flow_trigger\"\nhandle = \"auction-bid\"\ndescription = \"Your description\"\n\n[settings]\n\n[[settings.fields]]\n type = \"customer_reference\"\n\n[[settings.fields]]\n type = \"single_line_text_field\"\n key = \"your field key\"\n```\n\nTrigger extension properties", "df51d8d8-c884-4977-b4d4-dde9a920f071": "When you create a new trigger extension using Shopify CLI, you'll get a basic version of the TOML configuration file structure which should look like the following example:\n\n```bash\n[[extensions]]\nname = \"Auction Bid\"\ntype = \"flow_trigger\"\nhandle = \"auction-bid\"\ndescription = \"Your description\"\n\n[settings]\n\n[[settings.fields]]\n type = \"customer_reference\"\n\n[[settings.fields]]\n type = \"single_line_text_field\"\n key = \"your field key\"\n```\n\nTrigger extension properties\n\nExtension properties are listed in the [[extensions]] section and enable you to define the interface between Flow and your event.", "8218c575-5c5c-448d-8ff4-dacb00fc0ddb": "[[settings.fields]]\n type = \"single_line_text_field\"\n key = \"your field key\"\n```\n\nTrigger extension properties\n\nExtension properties are listed in the [[extensions]] section and enable you to define the interface between Flow and your event.\n\nProperty name Description Rules name Required Name of your extension. Will be the merchant-facing name of your task in the editor. This should be something that is human readable. type Required The type of your extension. This should always be set to \u201cflow_trigger\u201d for Flow triggers. - Value must be flow_trigger . handle Required A unique identifier for your extension. This property cannot be changed once you\u2019ve run the dev or deploy command. - Cannot exceed 30 characters. - Must be unique across your app's extensions. - Must only contain alphanumeric characters and hyphens. description Optional A description of your extension. This description will be shown in the Flow editor navigation panel.\n\nTrigger extension fields", "3e3da2db-b34e-4e39-99c1-636ef633ecbd": "Trigger extension fields\n\nTrigger extension fields are listed in the [settings] section, with each field using a [[settings.field]] header. These fields define the payload your event will send to Flow. You can add more than one field to your Flow trigger. The order of the fields in the TOML file is preserved when they're being rendered in the editor configuration panel. When sending a trigger payload, all fields defined in a trigger are required.\n\nProperty name Description Rules type Required The field type. - Accepted custom field types . - Accepted reference field types . key Optional A unique key that identifies your field. This should be human readable since it will appear in the Flow editor in the environment picker menu. - Required for custom field types. Should only contain alphabetic values or spaces. - This property is not valid for reference field types. description Required A description of the field. This will appear in the Flow editor configuration panel.", "28e75426-14bc-472b-aced-b4754dd957c3": "Supported field types\n\nWhen you create a trigger, you add the fields that your trigger sends to Shopify Flow in the [settings] section of the TOML file. These fields define what your event plans to send to Shopify Flow. Merchants can then use that data in their conditions and actions.\n\nYou can add two types of fields: custom fields or predefined reference fields.\n\nReference field types\n\nA reference field lets you send the identifier of a Shopify resource to Shopify Flow. This allows merchants to build workflows that use any data related to that resource.\n\nFor example, your trigger sends a customer ID to Shopify Flow. The merchant can create a condition that checks customer / amountSpent and customer / tags. In their action, the merchant can include the template variables for customers, such as {{customer.email}}.\n\nTo specify that a trigger will include a reference field, you only need to specify the type and an optional description property. For example:\n\n```bash\n...\n\n[settings]", "24efc351-6aca-4f9e-82be-109fecaed99d": "For example, your trigger sends a customer ID to Shopify Flow. The merchant can create a condition that checks customer / amountSpent and customer / tags. In their action, the merchant can include the template variables for customers, such as {{customer.email}}.\n\nTo specify that a trigger will include a reference field, you only need to specify the type and an optional description property. For example:\n\n```bash\n...\n\n[settings]\n\n[[settings.fields]]\n type = \"customer_reference\"\n```\n\nYou can use the following reference fields:\n\nReference type (TOML) Payload key Description customer_reference customer_id The id or legacyResourceId of the customer. Triggers that include this property in the request body are also available to Shopify marketing automations . order_reference order_id The id or legacyResourceId of the order. product_reference product_id The id or legacyResourceId of the product.", "fa2d7143-dfaf-48ea-a9c0-c803b8baf16f": "```bash\n...\n\n[settings]\n\n[[settings.fields]]\n type = \"customer_reference\"\n```\n\nYou can use the following reference fields:\n\nReference type (TOML) Payload key Description customer_reference customer_id The id or legacyResourceId of the customer. Triggers that include this property in the request body are also available to Shopify marketing automations . order_reference order_id The id or legacyResourceId of the order. product_reference product_id The id or legacyResourceId of the product.\n\nWhen making a request to Flow, include the payload key. See the mutation API reference section for a complete example.\n\nCustom field\n\nA custom field lets you define the data that you send as part of your trigger request. The following is an example:\n\n```bash\n...\n\n[settings]\n\n[[settings.fields]]\n type = \"number_decimal\"\n key = \"Amount\"\n```\n\nCustom field types\n\nThe following are the available custom field types:", "fb2edbb6-70e1-460e-a797-f54899c44fe2": "When making a request to Flow, include the payload key. See the mutation API reference section for a complete example.\n\nCustom field\n\nA custom field lets you define the data that you send as part of your trigger request. The following is an example:\n\n```bash\n...\n\n[settings]\n\n[[settings.fields]]\n type = \"number_decimal\"\n key = \"Amount\"\n```\n\nCustom field types\n\nThe following are the available custom field types:\n\nField type Description Example boolean A Boolean value. true , false email An email formatted string. \"[email protected]\" single_line_text_field A string. \"Hello world.\" number_decimal A number with a decimal point. 1.0 url A URL formatted string. \"https://example/com\" schema.<type> <type> can be any type defined in the provided schema. Learn more about defining complex types . { \"foo\": \"bar\", \"baz\": 123 }\n\nNaming custom fields", "067eed18-8a83-41d6-9098-4251e02d74de": "The following are the available custom field types:\n\nField type Description Example boolean A Boolean value. true , false email An email formatted string. \"[email protected]\" single_line_text_field A string. \"Hello world.\" number_decimal A number with a decimal point. 1.0 url A URL formatted string. \"https://example/com\" schema.<type> <type> can be any type defined in the provided schema. Learn more about defining complex types . { \"foo\": \"bar\", \"baz\": 123 }\n\nNaming custom fields\n\nField names need to be self-describing and readable. Use sentence case and separate words with spaces (not underscores or hyphens). These names can contain only alphabetical characters (a-z, A-Z) and spaces.\n\nWhen you refer to these fields in the payload that you send to Shopify Flow, enter the names verbatim . For example, { \"City location\": \"Ottawa\" } }. Don't use shortened versions.\n\nCustom fields in the Shopify Flow editor", "2dc9943f-d724-4461-9db1-4d0eeca567fd": "Naming custom fields\n\nField names need to be self-describing and readable. Use sentence case and separate words with spaces (not underscores or hyphens). These names can contain only alphabetical characters (a-z, A-Z) and spaces.\n\nWhen you refer to these fields in the payload that you send to Shopify Flow, enter the names verbatim . For example, { \"City location\": \"Ottawa\" } }. Don't use shortened versions.\n\nCustom fields in the Shopify Flow editor\n\nFields can be used in the Shopify Flow editor either in conditions or in actions as template variables. When used as template variables, Shopify Flow converts your key property to camelCase such as {{ customerEmail }}.\n\nMutation API reference\n\nOnce your extension is defined, published, and activated in a workflow according to this guide, you can call Flow's mutation with an event, which will start the workflow(s).", "f64c7811-a160-469b-b4b1-36e32ca5d1c9": "Custom fields in the Shopify Flow editor\n\nFields can be used in the Shopify Flow editor either in conditions or in actions as template variables. When used as template variables, Shopify Flow converts your key property to camelCase such as {{ customerEmail }}.\n\nMutation API reference\n\nOnce your extension is defined, published, and activated in a workflow according to this guide, you can call Flow's mutation with an event, which will start the workflow(s).\n\ngraphql\nmutation\n{\n flowTriggerReceive(\n handle: \"auction-bid-placed\",\n payload: {\n \"Amount\": \"30\",\n \"customer_id\": 12345\n })\n {\n userErrors {field, message}\n }\n}\n\nProperty name Property usage handle The extension\u2019s handle. payload The fields that you selected for your payload schema in the action configuration. These should be serialized in a key-value pair format where the keys are equal to your field's \u201ckey\u201d properties.", "c4b9f674-8b08-4e85-946c-3f1bc9f02e09": "graphql\nmutation\n{\n flowTriggerReceive(\n handle: \"auction-bid-placed\",\n payload: {\n \"Amount\": \"30\",\n \"customer_id\": 12345\n })\n {\n userErrors {field, message}\n }\n}\n\nProperty name Property usage handle The extension\u2019s handle. payload The fields that you selected for your payload schema in the action configuration. These should be serialized in a key-value pair format where the keys are equal to your field's \u201ckey\u201d properties.\n\nNote:\nIf you are using a Shopify admin API version of 2023-07 or earlier the mutation won't support the handle and payload properties. For information on that mutation shape you can rely on the flowTriggerReceive documentation.\n\nConsiderations\n\nWhen you create a trigger, the payload that you send to Shopify Flow needs to be less than 1 MB and contain specific content in the body.\n\nTriggers have the same API rate limits as the Shopify API.", "f7d85b66-a33a-463a-9235-96c640877433": "This guide provides explanations of key topics for building and deploying a Flow template extension. This includes the TOML configuration file, localization, and the template approval process.\n\nTOML\n\nWhen you first create a new Flow template extensions through Shopify CLI, you get a basic version of the shopify.extension.toml file structure that looks like the following example:\n\n```toml\n[[extensions]]\nname = \"t:name\"\ntype = \"flow_template\"\nhandle = \"example-name\"\ndescription = \"t:description\"\n\n[extensions.template]\n\ncategories = [\"orders\", \"risk\"]\n\nmodule = \"./template.flow\"\n\nrequire_app = false\n\ndiscoverable = true\n\nenabled = true\n```\n\nFlow template extension fields", "aff1bef9-c4ca-470a-bb7c-788ad4a59398": "Property Description Rules name Required The title of the template. This property is translatable and will use the value for the key name in the translation files. type Required The type of your extension. This should always be set to flow_template for Flow templates. - Value must be flow_template . handle Required A globally-unique identifier for your extension. This property can't be changed after you\u2019ve run the app dev or deploy command. - Can't exceed 30 characters. - Must only contain alphanumeric characters and hyphens. description Optional The description of your template's workflow. This property is translatable and will use the value for the key description in the translation files. categories Required The categories that best describe the function of your template. - Must be an array containing only strings of valid categories. - Must choose at least one category. Max 2 recommended. - Valid categories are: buyer_experience , customers , inventory_and_merch , loyalty ,", "527ccd6c-cf6b-478a-971c-44e9e123d006": "alphanumeric characters and hyphens. description Optional The description of your template's workflow. This property is translatable and will use the value for the key description in the translation files. categories Required The categories that best describe the function of your template. - Must be an array containing only strings of valid categories. - Must choose at least one category. Max 2 recommended. - Valid categories are: buyer_experience , customers , inventory_and_merch , loyalty , orders , promotions , risk , fulfillment , b2b , payment_reminders , custom_data , and error_monitoring . module Required The file path of the template workflow in the extension's folder. require_app Optional Whether your template is visible only to merchants who have your app installed. - Defaults to false . discoverable Optional Whether your template should be displayed in the template browser. When false , the template is accessible only through a deep link. - Defaults to true . enabled", "743e4395-9a4d-4459-9272-e730bd011bee": ", orders , promotions , risk , fulfillment , b2b , payment_reminders , custom_data , and error_monitoring . module Required The file path of the template workflow in the extension's folder. require_app Optional Whether your template is visible only to merchants who have your app installed. - Defaults to false . discoverable Optional Whether your template should be displayed in the template browser. When false , the template is accessible only through a deep link. - Defaults to true . enabled Optional Whether you template should be published and made available after being approved. - Defaults to true .", "32f0a947-6af9-475b-95f4-f063ed49764d": "Localization\n\nLocalizing your template by providing translated text allows a wider audience to understand your template better and can increase adoption.\n\nYou can provide translations for the following fields:\n\nname: Title of the template.\n\ndescription: Description of the template and it's purpose.\n\npreInstallNote: (Optional): Instructions for merchants to complete before activating the workflow. This field should only be included if setup is required before the template can be turned on.\n\nCustom step descriptions added within the workflow.\n\nAdding additional locales\n\nAdd new .json files prefixed with the locale, for example es.json.\n\nAdd default to one of the locales to make it the fallback if a merchant's locale isn't in the locales you have provided. Example: en.default.json.\n\nStep descriptions", "5542caac-7207-46d1-953d-f707533ebd06": "Custom step descriptions added within the workflow.\n\nAdding additional locales\n\nAdd new .json files prefixed with the locale, for example es.json.\n\nAdd default to one of the locales to make it the fallback if a merchant's locale isn't in the locales you have provided. Example: en.default.json.\n\nStep descriptions\n\nYou can provide translated custom step descriptions by adding a translation key wrapped by curly braces in the step description field. For example, {expressShippingCondition}. Ensure there's no other characters before or after {yourKey}. After adding this to your workflow, you can update the translation files to include the step description.\n\nThe following is an example:", "ce37f2f0-205b-446c-b4d6-01f051a87c51": "Step descriptions\n\nYou can provide translated custom step descriptions by adding a translation key wrapped by curly braces in the step description field. For example, {expressShippingCondition}. Ensure there's no other characters before or after {yourKey}. After adding this to your workflow, you can update the translation files to include the step description.\n\nThe following is an example:\n\njson\n{\n \"name\": \"My Awesome Template!\",\n \"description\": \"A template that helps increase merchant productivity\",\n \"preInstallNote\": \"You must disable automatic payment capture in the Shopify Admin before using this template\",\n \"expressShippingCondition\": \"This step will check if the order uses express shipping\"\n}\n\nApproval process\n\nBefore submitting your template extension for approval ensure that it meets the following criteria:\n\nWorkflow\n\nProvides value/solves a problem. For example, notifying the merchant when a buyer makes 10 purchases and adds a `VIP` tag to the customer.", "5fb4121d-16b2-484d-b375-b49f3921226f": "Approval process\n\nBefore submitting your template extension for approval ensure that it meets the following criteria:\n\nWorkflow\n\nProvides value/solves a problem. For example, notifying the merchant when a buyer makes 10 purchases and adds a `VIP` tag to the customer.\n\nDoes not already exist within the [template library](https://admin.shopify.com/apps/flow/web/editor/templates).\n\nIsn't malicious in its execution.\n\nIs complete in its configuration. Validation errors might exist in the workflow where fields are left blank for input unique to the merchant.\n\nTitles should use the format, \"\\ when \\\".\n\nIncludes all required fields.\n\nHas correct spelling and grammar.\n\nHas a default localization, for example en.default.json.\n\nHas an English translation.\n\nInclude the preInstallNote field if setup is required before the template can be turned on. If no prior setup is needed, then remove the preInstallNote field from the localization files before submitting the template extension.", "f98ef7d0-3503-4bcf-9980-d0ba841df0d5": "Titles should use the format, \"\\ when \\\".\n\nIncludes all required fields.\n\nHas correct spelling and grammar.\n\nHas a default localization, for example en.default.json.\n\nHas an English translation.\n\nInclude the preInstallNote field if setup is required before the template can be turned on. If no prior setup is needed, then remove the preInstallNote field from the localization files before submitting the template extension.\n\nFlow\u2019s testing account, at flow-connector-testing.myshopify.com has access to any actions, triggers, or resources that are required to test the templates, including access to the app.\n\nA maximum of 25 templates can be submitted for each app.\n\nPublic apps must be listed in the [Shopify App Store](https://apps.shopify.com/) prior to submitting a template.\n\nDon't edit the `.flow` file directly. Only change and export updated workflows using the Flow app.", "05eb348a-edf7-425e-a36d-9fd5be9aaa35": "How triggers work\n\nA trigger is a task in Shopify Flow that starts the execution of a workflow. The trigger represents an event that happens in a store or in an app. You can build a trigger for Shopify Flow so that events in your app trigger workflows to run.\n\nNext steps\n\nTo build a trigger, you need to create a trigger extension in your app. In that extension, you specify details about the trigger using a TOML file.\n\nOnce you have published your extension, you can then test or use it by calling the Shopify API with the trigger payload.", "1458f1c4-82a0-448e-b820-30587f046b82": "A template in Shopify Flow is an example workflow that can be copied into a merchant's shop. Templates help merchants automate a specific use case with minimal or no additional configuration. Flow's template library offers hundreds of templates with features to filter, browse, and search. You can create a template for Shopify Flow that showcases your custom triggers and actions and help merchants do more.\n\nTo create a workflow template that merchants can add to their workflow list, you need to add a Flow template extension to your app.\n\nRequirements\n\nA development store that has Shopify Flow and your app installed.\n\nYour existing custom triggers and actions are connected to your instance of Shopify Flow.\n\nShopify CLI installed with a version of 3.49 or higher.\n\nStep 1: Create a workflow\n\nA workflow is the foundation of a Flow template.\n\nIn your development store navigate to Apps > Flow.\n\nClick Create workflow.", "8c4f39a3-687a-49a2-a78e-69feb0cf23e9": "Requirements\n\nA development store that has Shopify Flow and your app installed.\n\nYour existing custom triggers and actions are connected to your instance of Shopify Flow.\n\nShopify CLI installed with a version of 3.49 or higher.\n\nStep 1: Create a workflow\n\nA workflow is the foundation of a Flow template.\n\nIn your development store navigate to Apps > Flow.\n\nClick Create workflow.\n\nIn the workflow editor, build a workflow that solves a merchant use case and showcases your custom trigger and or actions.\n\nOptional: Tailor your template to a wider audience by localizing your custom step descriptions.\n\nAfter you're satisfied with your workflow, export the workflow and save the .flow file locally.\n\nNote:\n- Remove any shop specific test data or replace with placeholder values if the merchant needs to provide a value. For example using the placeholder\n\nYOUR_TAG_NAME in a location where the merchant needs to provide a shop specific tag.\n\nDon't edit", "cec07f50-5f68-45a0-8379-e9a0c89ceb83": "Optional: Tailor your template to a wider audience by localizing your custom step descriptions.\n\nAfter you're satisfied with your workflow, export the workflow and save the .flow file locally.\n\nNote:\n- Remove any shop specific test data or replace with placeholder values if the merchant needs to provide a value. For example using the placeholder\n\nYOUR_TAG_NAME in a location where the merchant needs to provide a shop specific tag.\n\nDon't edit\n\n.flow files directly. Only make changes within the Flow app and export the updated workflow.\n\nTest your workflow thoroughly, ensuring the trigger, condition(s), and action(s) used provide the intended result.\n\nStep 2: Create a Flow template extension\n\nUse the Shopify CLI to generate a new extension:\n\nNavigate to your app directory.\n\nRun the following command:\n\n```bash\n\n!/bin/bash\n\nshopify app generate extension\n```\n\nSelect the Flow Template as the type of extension.\n\nProvide a meaningful name for your extension.", "ea83a829-1d5f-4073-824c-4fdc13608e89": "Test your workflow thoroughly, ensuring the trigger, condition(s), and action(s) used provide the intended result.\n\nStep 2: Create a Flow template extension\n\nUse the Shopify CLI to generate a new extension:\n\nNavigate to your app directory.\n\nRun the following command:\n\n```bash\n\n!/bin/bash\n\nshopify app generate extension\n```\n\nSelect the Flow Template as the type of extension.\n\nProvide a meaningful name for your extension.\n\nThe name that you provide displays in the Partners Dashboard. Follow these guidelines when choosing a name:\n\nDon't use punctuation.\n\nSeparate words using spaces.\n\nAfter you've followed the prompts, Shopify CLI generates the extension\u2019s file representation in your app's /extensions directory and returns a success message. You can then go into your app's /extensions directory and start editing your new extension.\n\nNote:\nEach Flow template extension can contain only a single template. To deploy multiple templates, you will need to create an extension for each template.", "4917ceb8-cffe-47d1-96bc-6252ffeba406": "Don't use punctuation.\n\nSeparate words using spaces.\n\nAfter you've followed the prompts, Shopify CLI generates the extension\u2019s file representation in your app's /extensions directory and returns a success message. You can then go into your app's /extensions directory and start editing your new extension.\n\nNote:\nEach Flow template extension can contain only a single template. To deploy multiple templates, you will need to create an extension for each template.\n\nThe file structure of your extension should look like the following:\n\nssh\n/your-extension-name\n /locales\n en.default.json\n fr.json\n shopify.extension.toml\n template.flow\n\nTo learn more about the extensions file structure, refer to our app structure documentation and the documentation for the Flow template extension type.\n\nStep 3: Configure extension\n\nConfigure your template extension to include information describing it's function for merchants, and settings that control visibility.", "34a67c76-e610-48b4-9c68-74bdf32632da": "The file structure of your extension should look like the following:\n\nssh\n/your-extension-name\n /locales\n en.default.json\n fr.json\n shopify.extension.toml\n template.flow\n\nTo learn more about the extensions file structure, refer to our app structure documentation and the documentation for the Flow template extension type.\n\nStep 3: Configure extension\n\nConfigure your template extension to include information describing it's function for merchants, and settings that control visibility.\n\nUpdate the shopify.extension.toml configuration file.\n\nUpdate and add any additional locales. Localization reference.\n\nReplace template.flow with the workflow that you exported.\n\nBe sure to update the filename to match your chosen file path in the shopify.extension.toml file. template.flow is the default.\n\nStep 4: Preview extension\n\nPreview your template extension to see how it will be displayed to merchants before deploying and requesting review.\n\nRun the following command in Shopify CLI:", "f73ae7ac-6780-40cc-b744-2731b801e701": "Update the shopify.extension.toml configuration file.\n\nUpdate and add any additional locales. Localization reference.\n\nReplace template.flow with the workflow that you exported.\n\nBe sure to update the filename to match your chosen file path in the shopify.extension.toml file. template.flow is the default.\n\nStep 4: Preview extension\n\nPreview your template extension to see how it will be displayed to merchants before deploying and requesting review.\n\nRun the following command in Shopify CLI:\n\n```bash\n\n!/bin/bash\n\nshopify app dev\n```\n\nIn your development store's Shopify admin, navigate to /flow/editor/templates/dev. From here you can preview your workflow, template card, and custom step descriptions.\n\nRefer to our approval criteria to ensure that your extension meets our requirements.\n\nStep 5: Deploy extension\n\nUse Shopify CLI to deploy your extension.\n\nNavigate to your app directory.\n\nRun the following command to start deploying your extension(s):\n\n```bash\n\n!/bin/bash", "40e048a8-1403-4ba1-9711-99a642977abe": "```bash\n\n!/bin/bash\n\nshopify app dev\n```\n\nIn your development store's Shopify admin, navigate to /flow/editor/templates/dev. From here you can preview your workflow, template card, and custom step descriptions.\n\nRefer to our approval criteria to ensure that your extension meets our requirements.\n\nStep 5: Deploy extension\n\nUse Shopify CLI to deploy your extension.\n\nNavigate to your app directory.\n\nRun the following command to start deploying your extension(s):\n\n```bash\n\n!/bin/bash\n\nshopify app deploy\n```\n\nFollow the command prompts\n\nWhen you receive confirmation that the deploy was successful, a new app version in your Partner Dashboard displays, where you can submit a request for review. After the request for review has been submitted and the approval process is complete, you can release the new version from your Partner Dashboard and your templates will display in Flow's template library.", "f474090d-15a4-42c5-83da-1f45435796bc": "Requirements\n\nMake sure that you have the following:\n\nA test web server that you can use to send information to Shopify Flow. You can use an existing web server. This web server needs to be able to send POST requests to Shopify's GraphQL Admin API.\n\nA test app that works with the test web server and can send HTTP requests.\n\nA development store that has Shopify Flow and the test app installed.\n\nYour application has access to the read_customers scope. The trigger you will build using this tutorial will be using a customer reference which requires that scope.\n\nStep 1: Create a Flow trigger extension\n\nTo give your Flow action a meaningful name, use the following guidelines:\n\nUse an object acted on + past tense verb format. For example, Auction bid placed.\n\nUse sentence case.\n\nDon't use punctuation.\n\nSeparate words using spaces.\n\nUsing Shopify CLI\n\nThe following steps show how to create a trigger that sends bid information to Shopify Flow when a bid is placed on an auction.", "7b20990d-a242-43c2-b884-951b694efa0c": "Step 1: Create a Flow trigger extension\n\nTo give your Flow action a meaningful name, use the following guidelines:\n\nUse an object acted on + past tense verb format. For example, Auction bid placed.\n\nUse sentence case.\n\nDon't use punctuation.\n\nSeparate words using spaces.\n\nUsing Shopify CLI\n\nThe following steps show how to create a trigger that sends bid information to Shopify Flow when a bid is placed on an auction.\n\nUse the Shopify CLI to generate a new extension:\n\nNavigate to your app directory.\n\nRun the following command:\n\n```bash\n\n!/bin/bash\n\nshopify app generate extension\n```\n\nSelect the Flow Trigger as the type of extension.\n\nProvide a meaningful name for your extension.\n\nAfter you've followed the prompts, Shopify CLI generates the extension\u2019s file representation in your app's /extensions directory and gives you a success message. You can then go into your app's /extensions directory and start editing your new extension.", "524de14d-fc2e-4fc9-ac40-81f52b694ee7": "Navigate to your app directory.\n\nRun the following command:\n\n```bash\n\n!/bin/bash\n\nshopify app generate extension\n```\n\nSelect the Flow Trigger as the type of extension.\n\nProvide a meaningful name for your extension.\n\nAfter you've followed the prompts, Shopify CLI generates the extension\u2019s file representation in your app's /extensions directory and gives you a success message. You can then go into your app's /extensions directory and start editing your new extension.\n\nThe file structure of your extension should look like the following:\n\n/auction-bid-placed\n shopify.extension.toml\n\nTo learn more about the extensions file structure, refer to App structure and the documentation for your extension type.\n\nUsing the Partner Dashboard\n\nOpen your Partner Dashboard.\n\nClick the app that you want to add your Shopify Flow trigger to.\n\nClick Extensions, then click Create or Create extension.\n\nUnder Flow, click the Flow/Triggers card.", "d6b376ea-ab62-44d9-988d-93f7a1b9cc88": "The file structure of your extension should look like the following:\n\n/auction-bid-placed\n shopify.extension.toml\n\nTo learn more about the extensions file structure, refer to App structure and the documentation for your extension type.\n\nUsing the Partner Dashboard\n\nOpen your Partner Dashboard.\n\nClick the app that you want to add your Shopify Flow trigger to.\n\nClick Extensions, then click Create or Create extension.\n\nUnder Flow, click the Flow/Triggers card.\n\nEnter an internal extension name for your trigger and click Save.\n\nEnter a title and description for the trigger that will be shown to merchants.\n\nCopy the GraphQL endpoint that displays under the Trigger description field to a text file. Your app uses this endpoint to send your POST request to Shopify Flow. The endpoint follows the format https://{shop}.myshopify.com/admin/api/latest/graphql.json.", "54602138-b0d6-4256-8208-b2b33c0f2d55": "Under Flow, click the Flow/Triggers card.\n\nEnter an internal extension name for your trigger and click Save.\n\nEnter a title and description for the trigger that will be shown to merchants.\n\nCopy the GraphQL endpoint that displays under the Trigger description field to a text file. Your app uses this endpoint to send your POST request to Shopify Flow. The endpoint follows the format https://{shop}.myshopify.com/admin/api/latest/graphql.json.\n\nIn the Request body properties section, click Add property, choose a data type, and create the properties that display in Shopify Flow when a merchant chooses your trigger.\n\nStep 2: Customize a Flow trigger configuration file\n\nThe following procedure requires you to have generated a flow extension using Shopify CLI. In this section you'll use the default trigger template and update it to be a functional extension example.\n\nChange description to Trigger for auction bids.\n\nOn the second [[settings.fields]] field, update:\n\ntype to number_decimal", "8aeeecf4-429f-4b85-ba6d-edeaa50c3056": "Step 2: Customize a Flow trigger configuration file\n\nThe following procedure requires you to have generated a flow extension using Shopify CLI. In this section you'll use the default trigger template and update it to be a functional extension example.\n\nChange description to Trigger for auction bids.\n\nOn the second [[settings.fields]] field, update:\n\ntype to number_decimal\n\nkey to Amount\n\n```bash\n[[extensions]]\nname = \"Auction Bid Placed\"\ntype = \"flow_trigger\"\nhandle = \"auction-bid-placed\"\ndescription = \"Trigger for auction bids.\"\n\n[settings]\n\n[[settings.fields]]\n type = \"customer_reference\"\n\n[[settings.fields]]\n type = \"number_decimal\"\n key = \"Amount\"\n```\n\nStep 3: Enable the draft version of your trigger\n\nRunning app dev allows changes made to local files to update the draft version of your Flow task extensions. The draft version is only available in your development store.", "040df676-371e-4e0e-908c-e578db41cd89": "```bash\n[[extensions]]\nname = \"Auction Bid Placed\"\ntype = \"flow_trigger\"\nhandle = \"auction-bid-placed\"\ndescription = \"Trigger for auction bids.\"\n\n[settings]\n\n[[settings.fields]]\n type = \"customer_reference\"\n\n[[settings.fields]]\n type = \"number_decimal\"\n key = \"Amount\"\n```\n\nStep 3: Enable the draft version of your trigger\n\nRunning app dev allows changes made to local files to update the draft version of your Flow task extensions. The draft version is only available in your development store.\n\nNote:\nWhen app dev is running and \"Development store preview\" is enabled, the draft version of a task will appear in your development store in place of the deployed version. Other shops will continue to see the deployed version of your task (if one exists). Draft versions can be identified by the \"draft\" badge. To see the deployed version of the task in your development store, turn off \"Development store preview\" in the \"Extensions\" section of your app in Shopify Partners.", "e12c7e35-d125-4900-a861-7ab0333ded40": "Note:\nWhen app dev is running and \"Development store preview\" is enabled, the draft version of a task will appear in your development store in place of the deployed version. Other shops will continue to see the deployed version of your task (if one exists). Draft versions can be identified by the \"draft\" badge. To see the deployed version of the task in your development store, turn off \"Development store preview\" in the \"Extensions\" section of your app in Shopify Partners.\n\nNavigate to your app directory.\n\nRun the following command to start using draft versions of your extension(s):\n\n```bash\n\n!/bin/bash\n\nshopify app dev\n```\n\nFollow the prompts.\n\nStep 4: Test your trigger\n\nAfter the app dev command has started, you can test the draft version of your trigger in Shopify Flow.\n\nIn your development store, create a workflow that uses the trigger that you created for your app.\n\nUsing the Admin GraphQL API, send a flowTriggerReceive mutation with the following arguments:", "a3624dcb-dd49-4f8e-82cf-a0e3cbe040c9": "Navigate to your app directory.\n\nRun the following command to start using draft versions of your extension(s):\n\n```bash\n\n!/bin/bash\n\nshopify app dev\n```\n\nFollow the prompts.\n\nStep 4: Test your trigger\n\nAfter the app dev command has started, you can test the draft version of your trigger in Shopify Flow.\n\nIn your development store, create a workflow that uses the trigger that you created for your app.\n\nUsing the Admin GraphQL API, send a flowTriggerReceive mutation with the following arguments:\n\nThe handle of the trigger\n\nThe payload of the trigger containing the fields defined in the extension TOML\n\nThe size of the payload (keys included) must be under 50 KB. If the size of the properties body exceeds the limit, then Shopify responds to the GraphQL request with a validation error reading Properties size exceeds the limit of 50000 bytes. As a result, workflows with the specified trigger won't start from this request.\n\nThe following is an example of a flowTriggerReceive mutation:", "1f65d236-2441-4587-a5c6-4f44ab444f0c": "The handle of the trigger\n\nThe payload of the trigger containing the fields defined in the extension TOML\n\nThe size of the payload (keys included) must be under 50 KB. If the size of the properties body exceeds the limit, then Shopify responds to the GraphQL request with a validation error reading Properties size exceeds the limit of 50000 bytes. As a result, workflows with the specified trigger won't start from this request.\n\nThe following is an example of a flowTriggerReceive mutation:\n\ngraphql\nmutation\n{\n flowTriggerReceive(\n handle: \"auction-bid-placed\",\n payload: {\n \"Amount\": \"30\",\n \"customer_id\": 12345\n })\n {\n userErrors {field, message}\n }\n}\n\nLearn how to authenticate your GraphQL Admin API requests.\n\nThe following example shows the same mutation sent in a curl request:", "d14c2a7c-a615-42a5-ac7d-5468ba3de02d": "The following is an example of a flowTriggerReceive mutation:\n\ngraphql\nmutation\n{\n flowTriggerReceive(\n handle: \"auction-bid-placed\",\n payload: {\n \"Amount\": \"30\",\n \"customer_id\": 12345\n })\n {\n userErrors {field, message}\n }\n}\n\nLearn how to authenticate your GraphQL Admin API requests.\n\nThe following example shows the same mutation sent in a curl request:\n\ncurl\ncurl --location 'https://{shop_domain}.myshopify.com/admin/api/latest/graphql.json' \\\n--header 'X-Shopify-Access-Token: {access_token}' \\\n--header 'Content-Type: application/json' \\\n--data '{\n \"query\": \"mutation flowTriggerReceive($handle: String, $payload: JSON) { flowTriggerReceive(handle: $handle, payload: $payload) { userErrors { message field } } }\",\n \"variables\": {\n \"handle\": \"auction-bid-placed\",\n \"payload\": {\n \"customer_id\": {customer_id},\n \"Amount\": 30\n }\n }\n}'\n\nStep 5: Deploy your extension", "d29e63e9-eeb7-4831-ac07-74d6808fa568": "Step 5: Deploy your extension\n\nNote:\nDeploying extensions using the app deploy command also publishes the extensions. We recommend testing changes by using app dev or deploying to a test app before deploying them to a production app.\n\nUse Shopify CLI to deploy your extensions:\n\nNavigate to your app directory.\n\nRun the following command to start deploying your extension(s):\n\n```bash\n\n!/bin/bash\n\nshopify app deploy\n```\n\nFollow the prompts.\n\nWhen you receive confirmation that the deploy was successful, your extensions have been released.\n\nNext steps\n\nFamiliarize yourself with Shopify Flow and learn about building connectors.\n\nConnect your app to Shopify Flow so that your app receives data and information when a workflow action runs.\n\nLearn how to receive lifecycle events from Shopify Flow about the stores that are using your triggers in enabled workflows.\n\nLearn how to use complex data types in your Shopify Flow trigger.", "b90d52b6-777c-4a51-94b6-f8d2f10597d0": "How templates work\n\nA template in Shopify Flow is an example workflow that can be copied into a merchant's shop. Templates help merchants automate a specific use case with minimal or no additional configuration. Flow's template library offers hundreds of templates with features to filter, browse, and search. You can create a template for Shopify Flow that showcases your custom triggers and actions and help merchants do more.\n\nNext steps\n\nFollow our step by step guide on creating a Flow template.\n\nLearn more about how localize your template, the approval process, and more in the reference resource", "5d4ea731-52e1-4820-935d-466d714dea23": "Shopify Flow is an app that allows merchants to customize their store through automation. As a developer, you can integrate your app with the Flow platform through custom tasks, such as triggers and actions.\n\nThis guide introduces you to the different extensions you can create, building a Flow trigger and action, and considerations when making changes to your extensions.\n\nWhy build for Flow\n\nBuilding for Flow can help you to increase the value of your app by allowing merchants to automate their business processes. For example, suppose that you have a review app. After a review is created, merchants might want to send a notification (using email, Slack, or SMS), award loyalty points, and more. If you build the Review created trigger, Flow allows merchants to do any of those actions with your app. By integrating with Flow, you can:", "0705e79e-8538-4e46-9cb8-b085644bc87a": "Why build for Flow\n\nBuilding for Flow can help you to increase the value of your app by allowing merchants to automate their business processes. For example, suppose that you have a review app. After a review is created, merchants might want to send a notification (using email, Slack, or SMS), award loyalty points, and more. If you build the Review created trigger, Flow allows merchants to do any of those actions with your app. By integrating with Flow, you can:\n\nImprove integrations between your app, Shopify, and other apps: Any task you build can be used with the triggers and actions that Flow already provides, which immediately connects your app to thousands of new features.\n\nSave development time: Rather than building and maintaining direct integrations with many other apps, you can integrate with Flow and provide similar value to your merchants.", "f7f16c3b-2127-4bb8-850a-1135e6c999fc": "Improve integrations between your app, Shopify, and other apps: Any task you build can be used with the triggers and actions that Flow already provides, which immediately connects your app to thousands of new features.\n\nSave development time: Rather than building and maintaining direct integrations with many other apps, you can integrate with Flow and provide similar value to your merchants.\n\nImproved visibility: Merchants can discover your templates or tasks in Flow, even if they don't have your app installed. Additionally, when you integrate with Flow, you receive a Works with Flow badge on your listing in the Shopify App Store. Your app will also be listed in the Flow app directory.\n\nWhat you can build\n\nAs a Partner you can build one or more tasks related to your app for your merchants to use. These merchants need to have both your app and Shopify Flow installed. Shopify Flow includes the following task types:", "d6dcdba4-9ad6-4838-8d8b-1f59f290e0bc": "Extension type Description Example Trigger An event that starts a workflow, and can be something that happens in a store or in an app. A new order is created in a merchant's online store. Condition A rule that determines whether an action will be taken. As a developer you cannot create a condition task. A condition is set to check whether the total amount paid for the order is over $200.00. Action A task that's executed in a store or in an app when certain conditions are met. If the total amount paid for the order is over $200.00, then a tag is added to the customer account that placed the order. Template An example that demonstrates how your task works for a key use case. Templates are available through Flow's template library. A workflow that sends an internal email when your trigger runs.\n\nPlans supported\n\nFlow is an optional app that's available to Shopify merchants on any paid plan. Flow is widely adopted by Shopify merchants, especially those with stores on Shopify Plus.", "3b05366e-c0e7-41fd-bc4c-8f98f9143d6a": "Plans supported\n\nFlow is an optional app that's available to Shopify merchants on any paid plan. Flow is widely adopted by Shopify merchants, especially those with stores on Shopify Plus.\n\nFlow features differ by plan. For apps, the primary difference is that if you have a custom app, your Flow app extensions are available only to a Shopify Plus store that has your app installed.\n\nTemplates\n\nA template in Shopify Flow is an example workflow that can be copied into a merchant's shop. Templates help merchants automate a specific use case with minimal or no additional configuration. Flow's template library offers hundreds of templates with features to filter, browse, and search. You can create a template for Shopify Flow that showcases your custom triggers and actions and help merchants do more.\n\nGetting started\n\nLearn more about triggers\n \n Connect your app to Shopify Flow so that your app can send an event that starts a workflow.", "0459cc89-e461-4f1f-bbb5-95759f1a9171": "Getting started\n\nLearn more about triggers\n \n Connect your app to Shopify Flow so that your app can send an event that starts a workflow. \n\n \n \n Learn more about actions\n \n Connect your app to Shopify Flow so that your app receives data when a workflow action runs. \n\n \n \n Learn more about Flow templates\n \n Create workflow templates to showcase your triggers and actions. \n\n \n \n Lifecycle events\n \n Get notified about events related to your Flow triggers and actions. \n\n \n \n Migrate legacy Flow extensions\n \n Learn how to migrate your existing extensions from the Partner Dashboard to CLI-managed.", "dd7bc564-08ba-4140-bc06-2c150c04a5f8": "To give merchants a more seamless action configuration experience, and to allow them to manage resources that are external to Shopify Flow, you can embed a page from your app in the Shopify Flow editor.\n\nIn your Shopify Flow action configuration, merchants see a preview with an image and text that's fetched from your custom configuration page preview URL. Merchants can click the button to access the custom configuration page.\n\nYour custom configuration page is then displayed in a frame in the Shopify admin.\n\nIn this tutorial, you'll learn how to render a custom configuration page in Shopify Flow, customize the page frame, and access data relevant to your action in the custom configuration page context.\n\nRequirements\n\nYou've created a Partner account.\n\nYou've created an app.\n\nResources\n\nTo implement this feature, you'll use the following:\n\nShopify App Bridge\n\nApp Bridge components\n\nApp Bridge actions specific to the custom configuration page\n\nImplementing a custom configuration page", "b9fd458a-32a4-4ca6-8535-0609e3af873e": "In this tutorial, you'll learn how to render a custom configuration page in Shopify Flow, customize the page frame, and access data relevant to your action in the custom configuration page context.\n\nRequirements\n\nYou've created a Partner account.\n\nYou've created an app.\n\nResources\n\nTo implement this feature, you'll use the following:\n\nShopify App Bridge\n\nApp Bridge components\n\nApp Bridge actions specific to the custom configuration page\n\nImplementing a custom configuration page\n\nTo build a custom configuration page, you'll use Shopify App Bridge to render a page from your app page in Shopify Flow.\n\nFrom the context of the custom configuration page, you can then access step and property information that you can use to display the appropriate information.\n\nYou can also add additional buttons to the App Bridge title bar, or trigger a redirect to the previous page.\n\nUse Shopify App Bridge to render your app page", "229b78fd-d68f-4764-a321-d612e85ee714": "Implementing a custom configuration page\n\nTo build a custom configuration page, you'll use Shopify App Bridge to render a page from your app page in Shopify Flow.\n\nFrom the context of the custom configuration page, you can then access step and property information that you can use to display the appropriate information.\n\nYou can also add additional buttons to the App Bridge title bar, or trigger a redirect to the previous page.\n\nUse Shopify App Bridge to render your app page\n\nNote:\nThe specifics of the Custom Configuration Page integration varies between Shopify App Bridge versions. Make sure you implement the integration specific to your Shopify App Bridge version.\n\nTo render your custom configuration page, you need to integrate Shopify App Bridge on the route that you want to render. To learn about setting up Shopify App Bridge, refer to one of the following pages:\n\nGetting started with Shopify App Bridge\n\nGetting started with App Bridge React\n\nAccess action information", "55b2ddcc-81f7-4bbe-9092-ca076b332df3": "To render your custom configuration page, you need to integrate Shopify App Bridge on the route that you want to render. To learn about setting up Shopify App Bridge, refer to one of the following pages:\n\nGetting started with Shopify App Bridge\n\nGetting started with App Bridge React\n\nAccess action information\n\nIn the context of the custom configuration page, Shopify Flow makes the following action information available:\n\nA step_reference search parameter: step_reference is a unique ID for the step within a workflow, and can be used to identify the resource that the merchant is requesting.\n\nProperty data: Properties contains the extension fields data that make up your action payload schema. The properties are passed as an object containing the properties as key-value pairs:\njson\n{\n <property-name>: <property-value>\n}\n\nShopify App Bridge integration for versions 4.X.X and up\n\nRegister to the Custom Configuration Page's intent", "9febcd34-d30e-47f9-9ee5-5d6ceb894ae8": "Property data: Properties contains the extension fields data that make up your action payload schema. The properties are passed as an object containing the properties as key-value pairs:\njson\n{\n <property-name>: <property-value>\n}\n\nShopify App Bridge integration for versions 4.X.X and up\n\nRegister to the Custom Configuration Page's intent\n\nTo access property data with Shopify App Bridge version 4.X.X and up, you will need to use the shopify.intents API. The following example code allows you to register to the Custom Configuration Page's intent:\n\n```jsx\nimport { useAppBridge } from '@shopify/app-bridge-react'\n\nconst Application = () => {\n const shopify = useAppBridge()\n const [intent, setIntent] = useState({})\n\nuseEffect(() => {\n const cleanup = shopify.intents.register((intent) => {\n setIntent(intent)\n })\n\n}, []);\n\nreturn <>...\n}\n```\n\nThe intent object will contain the following data:", "b569e03e-deed-4639-b3b4-dc2ff9f16e11": "```jsx\nimport { useAppBridge } from '@shopify/app-bridge-react'\n\nconst Application = () => {\n const shopify = useAppBridge()\n const [intent, setIntent] = useState({})\n\nuseEffect(() => {\n const cleanup = shopify.intents.register((intent) => {\n setIntent(intent)\n })\n\n}, []);\n\nreturn <>...\n}\n```\n\nThe intent object will contain the following data:\n\nField Data Type Description action string The action that has been registered for. In the case of the Custom Configuration Page, it will always be set to configure . type string A GID with the following structure: gid://flow/stepReference/<step-reference> . data object An object that contains the properties data. finish method A function that allows you to navigate to the previous page.\n\nThe register method also returns a cleanup function, which you can use to unregister from the intent when your component is unmounting.\n\nReturn to the previous page", "4f911f5b-0657-4f6e-8a24-289727dd1a4d": "The register method also returns a cleanup function, which you can use to unregister from the intent when your component is unmounting.\n\nReturn to the previous page\n\nBy default, the title bar of the custom configuration page includes an Exit button that the user can use to return to the previous page. You can choose to trigger a redirect to the previous page using the intent.finish() method:\n\n```jsx\n {\n intent.finish()\n }}\n\nGo back to Flow\n\n```\n\nAdd buttons to the App Bridge title bar\n\nYou can add more actions to the navigation bar by using the ui-title-bar element. Only primary and secondary actions are supported.\n\njsx\nfunction Page() {\n return <ui-title-bar>\n <button variant=\"primary\" onClick={() => console.log('Primary action')}>\n Primary action\n </button>\n <button onClick={() => console.log('Secondary action')}>\n Secondary action\n </button>\n </ui-title-bar>\n}\n\nShopify App Bridge integration for versions 3.X.X and down\n\nRequest property data", "1f9ca5e4-9b3b-40ed-9bf0-55d9a7783f30": "You can add more actions to the navigation bar by using the ui-title-bar element. Only primary and secondary actions are supported.\n\njsx\nfunction Page() {\n return <ui-title-bar>\n <button variant=\"primary\" onClick={() => console.log('Primary action')}>\n Primary action\n </button>\n <button onClick={() => console.log('Secondary action')}>\n Secondary action\n </button>\n </ui-title-bar>\n}\n\nShopify App Bridge integration for versions 3.X.X and down\n\nRequest property data\n\nTo access property data, you need to subscribe to APP::APP_FRAME::PROPERTIES_EVENT, and then request the properties by triggering the APP::APP_FRAME::REQUEST_PROPERTIES event. The following example code subscribes to the properties event and requests the action properties in React:\n\n```jsx\nimport { useAppBridge } from '@shopify/app-bridge-react'\n\nconst Application = () => {\n const app = useAppBridge()\n const [propertiesData, setPropertiesData] = useState({})", "00a99cf8-425c-4adf-859f-bebf790c424b": "Request property data\n\nTo access property data, you need to subscribe to APP::APP_FRAME::PROPERTIES_EVENT, and then request the properties by triggering the APP::APP_FRAME::REQUEST_PROPERTIES event. The following example code subscribes to the properties event and requests the action properties in React:\n\n```jsx\nimport { useAppBridge } from '@shopify/app-bridge-react'\n\nconst Application = () => {\n const app = useAppBridge()\n const [propertiesData, setPropertiesData] = useState({})\n\nuseEffect(() => {\n const unsubscribeToPropertiesEvent = app.subscribe(\n 'APP::APP_FRAME::PROPERTIES_EVENT',\n payload => {\n setPropertiesData(payload['properties'])\n },\n )\n\n}, [app])\n\nuseEffect(() => {\n app.dispatch({\n type: 'APP::APP_FRAME::REQUEST_PROPERTIES',\n group: 'AppFrame',\n })\n }, [])\n\nreturn (...)\n}\n```\n\nReturn to the previous page", "0b03a339-f8d9-4dd5-909c-5872c3e51998": "useEffect(() => {\n const unsubscribeToPropertiesEvent = app.subscribe(\n 'APP::APP_FRAME::PROPERTIES_EVENT',\n payload => {\n setPropertiesData(payload['properties'])\n },\n )\n\n}, [app])\n\nuseEffect(() => {\n app.dispatch({\n type: 'APP::APP_FRAME::REQUEST_PROPERTIES',\n group: 'AppFrame',\n })\n }, [])\n\nreturn (...)\n}\n```\n\nReturn to the previous page\n\nBy default, the title bar of the custom configuration page includes an Exit button that the user can use to return to the previous page. This might be the Shopify Flow editor. However, you can choose to trigger a redirect to the previous page using APP::APP_FRAME::NAVIGATE_BACK:\n\n```jsx\napp.dispatch({\n type: 'APP::APP_FRAME::NAVIGATE_BACK',\n group: 'AppFrame',\n})\n\n```\n\nAdd buttons to the App Bridge title bar\n\nYou can add more actions to the App Bridge title bar in one of two ways:", "696fc674-3d1b-44bb-8400-429851bc92bd": "By default, the title bar of the custom configuration page includes an Exit button that the user can use to return to the previous page. This might be the Shopify Flow editor. However, you can choose to trigger a redirect to the previous page using APP::APP_FRAME::NAVIGATE_BACK:\n\n```jsx\napp.dispatch({\n type: 'APP::APP_FRAME::NAVIGATE_BACK',\n group: 'AppFrame',\n})\n\n```\n\nAdd buttons to the App Bridge title bar\n\nYou can add more actions to the App Bridge title bar in one of two ways:\n\nUsing @shopify/app-bridge: Use the Button.create initializer to create the buttons, then pass them to the Titlebar.create initializer to set the buttons. You need to keep a reference to the Titlebar instance if you wish to do additional updates after the initialization.\n\nUsing @shopify/app-bridge-react: Pass the primary and secondary actions to the TitleBar React component.\n\nOnly primary and secondary actions on the TitleBar are supported. Other App Bridge actions are ignored.", "a225bed4-3eb8-43e5-95eb-ecdd45e57ba2": "Using @shopify/app-bridge: Use the Button.create initializer to create the buttons, then pass them to the Titlebar.create initializer to set the buttons. You need to keep a reference to the Titlebar instance if you wish to do additional updates after the initialization.\n\nUsing @shopify/app-bridge-react: Pass the primary and secondary actions to the TitleBar React component.\n\nOnly primary and secondary actions on the TitleBar are supported. Other App Bridge actions are ignored.\n\n```js\nimport { TitleBar, Button } from '@shopify/app-bridge/actions'\n\n// create the buttons\nconst primaryBtn = Button.create(app, {\n label: 'Button 1',\n})\nconst secondaryBtn = Button.create(app, {\n label: 'Button 2',\n})\n\n// add click handlers\nprimaryBtn.subscribe(Button.Action.CLICK, () => {\n console.log('button 1 clicked')\n})\nsecondaryBtn.subscribe(Button.Action.CLICK, () => {\n console.log('button 2 clicked')\n})", "5cf9fa58-5392-4499-8573-529d7f1bb6a4": "```js\nimport { TitleBar, Button } from '@shopify/app-bridge/actions'\n\n// create the buttons\nconst primaryBtn = Button.create(app, {\n label: 'Button 1',\n})\nconst secondaryBtn = Button.create(app, {\n label: 'Button 2',\n})\n\n// add click handlers\nprimaryBtn.subscribe(Button.Action.CLICK, () => {\n console.log('button 1 clicked')\n})\nsecondaryBtn.subscribe(Button.Action.CLICK, () => {\n console.log('button 2 clicked')\n})\n\nconst titleBar = TitleBar.create(app, {\n title: '',\n buttons: {\n primary: primaryBtn,\n secondary: [secondaryBtn],\n },\n})\n\n// update buttons after initialization\nconst newPrimary = Button.create(app, {\n label: 'New button',\n})\nnewPrimary.subscribe(Button.Action.CLICK, () => {\n console.log('new primary button clicked')\n})\n\ntitleBar.set({\n buttons: {\n primary: newPrimary,\n secondary: [secondaryBtn],\n },\n})\n\njsx\nimport { TitleBar } from '@shopify/app-bridge-react'", "abae7567-647b-4568-853f-ddbe18d877a2": "const titleBar = TitleBar.create(app, {\n title: '',\n buttons: {\n primary: primaryBtn,\n secondary: [secondaryBtn],\n },\n})\n\n// update buttons after initialization\nconst newPrimary = Button.create(app, {\n label: 'New button',\n})\nnewPrimary.subscribe(Button.Action.CLICK, () => {\n console.log('new primary button clicked')\n})\n\ntitleBar.set({\n buttons: {\n primary: newPrimary,\n secondary: [secondaryBtn],\n },\n})\n\njsx\nimport { TitleBar } from '@shopify/app-bridge-react'\n\nfunction Page() {\n const buttons = {\n primaryAction: {\n content: 'Button 1',\n onAction: () => {\n console.log('button 1 clicked')\n },\n },\n secondaryActions: [\n {\n content: 'Button 2',\n onAction: () => {\n console.log('button 2 clicked')\n },\n },\n ],\n }\n\nreturn \n}\n```\n\nNext steps\n\nAdd custom configuration page preview URL and custom validation endpoints to your app.", "954cfeb2-9747-4b55-9c44-7df0730dc7bb": "jsx\nimport { TitleBar } from '@shopify/app-bridge-react'\n\nfunction Page() {\n const buttons = {\n primaryAction: {\n content: 'Button 1',\n onAction: () => {\n console.log('button 1 clicked')\n },\n },\n secondaryActions: [\n {\n content: 'Button 2',\n onAction: () => {\n console.log('button 2 clicked')\n },\n },\n ],\n }\n\nreturn \n}\n```\n\nNext steps\n\nAdd custom configuration page preview URL and custom validation endpoints to your app.\n\nAdd your custom configuration page preview URL, custom configuration page URL, and custom validation URL to your Shopify Flow action configuration.\n\nNote:\nTo add a custom configuration page to your action, you also need to add a custom validation endpoint.", "b201b4fc-e2d3-420a-8b2a-93d5b92d06ae": "If you have existing Flow extensions that were created through the Partner Dashboard, then you can import these extensions into your codebase. After you deploy the extensions that you\u2019ve imported into Shopify CLI, Shopify CLI manages those extensions going forward.\n\nNote:\nExtensions that are migrated to Shopify CLI use the handle properties. The handle property is a unique string that identifies your extension and that's used when interacting with the Shopify Flow API. For more information, refer to the triggers and actions runtime payloads.\n\nA handle property is created in the extension's TOML configuration file after running the import command. Note that you can't change the handle property of the extensions that are present in your app's codebase after you've run the dev or deploy commands.\n\nRequirements\n\nCreate a Partner account.\n\nScaffold an app that uses Shopify CLI v3.70.0 or higher, or migrate your existing app so it's compatible with Shopify CLI v3.70.0 or higher.", "75b5402b-5a6f-403b-b631-6ddf3b3b8d26": "A handle property is created in the extension's TOML configuration file after running the import command. Note that you can't change the handle property of the extensions that are present in your app's codebase after you've run the dev or deploy commands.\n\nRequirements\n\nCreate a Partner account.\n\nScaffold an app that uses Shopify CLI v3.70.0 or higher, or migrate your existing app so it's compatible with Shopify CLI v3.70.0 or higher.\n\nMigrate a Partner Dashboard-managed app.\n\nStep 1: Import your Flow task extension locally\n\nNote:\nThe command in this procedure only generates the local file representation of your Partner Dashboard extensions. Running the deploy command migrates your extensions to CLI managed-extensions. You can only import extensions that have versions. The published version is imported, if one exists. Otherwise, the latest version is imported.\n\nNavigate to your app directory.\n\nTo start importing your Flow extension, run the following command:\n\n```bash\n\n!/bin/bash", "839ff070-9f2e-407f-b0fd-3e375b3cdb9e": "Note:\nThe command in this procedure only generates the local file representation of your Partner Dashboard extensions. Running the deploy command migrates your extensions to CLI managed-extensions. You can only import extensions that have versions. The published version is imported, if one exists. Otherwise, the latest version is imported.\n\nNavigate to your app directory.\n\nTo start importing your Flow extension, run the following command:\n\n```bash\n\n!/bin/bash\n\nshopify app import-extensions\n```\n\nSelect the Flow Extensions option.\n\nSelect an extension from the list of extensions that are available to import.\n\nAfter you\u2019ve selected the extension to import, Shopify CLI automatically generates the file representation in your application\u2019s /extensions directory and displays a success message.\n\nYou can then go into your application\u2019s /extensions directory and start editing your extension. The file structure of your extension should look like the following:", "0666116d-7768-49ab-b73f-df98d4f2d648": "shopify app import-extensions\n```\n\nSelect the Flow Extensions option.\n\nSelect an extension from the list of extensions that are available to import.\n\nAfter you\u2019ve selected the extension to import, Shopify CLI automatically generates the file representation in your application\u2019s /extensions directory and displays a success message.\n\nYou can then go into your application\u2019s /extensions directory and start editing your extension. The file structure of your extension should look like the following:\n\ntext\n/my-flow-extension\n shopify.extension.toml\n\nTo learn more about the extensions file structure, refer to App structure and the documentation for your extension type.\n\nAvailable Flags\n\nclient_id\n\nAn application\u2019s client_id. The ID enables you to target a specific application when running the import command.\n\n```bash\n\n!/bin/bash\n\nshopify app import-extensions --client_id abc123\n```\n\nStep 2: Migrate your extension"}} |