I made a dev store using the dev dashboard. Then I made an extension-only app using the CLI. I added a flow trigger, following the instructions at Create a Flow trigger using the simplest possible default settings.
But as much as I try, I can’t get the trigger to show up in Flow. I tried app dev, app deploy (no errors). Uninstalled and reinstalled. Same result.
When using dev, the flowTriggerReceive mutation works fine (no errors) if called from the localhost graphiql, but gives “Errors validating schema: Invalid handle ‘trigger’.” when called from the graphiql installed in the dev store.
The trigger shows up in the dev dahsvboard app/version page, but never in the Flow app.
The files package.json, shopify.app.toml, shopify.extension.toml are as defaults/docs.
Sidekick and dev assistant have been unable to find any errors with my setup.
How are you attempting to access the trigger in Flow?
I just followed the tutorial and found my trigger with these steps:
Flow app > Create workflow > Select a trigger > My app > My flow trigger
Regarding flowTriggerReceive mutation, you need to run that directly from the app that owns the trigger. In an extension-only app, you can achieve this through an Admin Action extension or an Admin Block extension.
Can you share your toml file config for the trigger? If you have a handle of “trigger”, it’s possible that your handle is a reserved word or something like that.
Also, are you sure that you are looking for a trigger in Flow and not an action? Triggers only show up when choosing a trigger. Sounds obvious but I’ve confused myself by looking under the action menu.
@Daniel_G I am having the exact same problem right now with my app. I have tried 20 different hypothesis to get the app to show up as an “Installed App” in the Flow Actions and just cannot get it to be visible.
Seems like people have been trying to fix this issue since 2023 in the discussion forums and nobody has responded with any concrete answer.
It sounds like a handle mismatch or schema issue. Make sure your trigger handle matches exactly in your code and shopify.extension.toml (only lowercase letters, numbers, underscores). Also, ensure the extension is fully deployed in the dev store and your app has the right Flow permissions. Sometimes a full app deploy after reinstalling the app fixes visibility in Flow.
By coincidence, I had a breakthrough today: when I create a new dev store, the Flow app is not installed by default. However, when I check older dev stores (from mid last year), Flow was installed by default.
In those older dev stores with Flow pre-installed, the trigger finally shows up and everything works as expected. I double-checked with two other stores - the only difference is the age of the dev store / whether Flow is pre-installed or not.
Just a guess, but it seems something broke after Shopify switched to the new development store creation process.
Yes, exactly! I don’t know if this is the root cause, but there is a difference between new dev stores (without Flow preinstalled) and older dev stores (where Flow was preinstalled) - everything else was the same in my tests.
I’ve been trying to get a Flow trigger extension to appear in Shopify Flow for days, but it simply won’t show up in the UI despite everything appearing correct on the backend.
Is there a workaround to force the trigger to appear?
Could this be related to how the app is installed (Partner Dashboard vs direct URL)?
Is there a delay I’m not aware of? (I’ve waited hours between attempts)
Who can I contact or is this a known issue being worked on?
TL;DR
Flow trigger extension is properly configured, deployed, and recognized by GraphQL API, but refuses to appear in Shopify Flow UI. Tried everything - is this a confirmed platform bug? Any help appreciated! I’m so desperate!
Hi @Brandonzoom886, you’re at the correct place to report this issue.
I haven’t been able to replicate this issue at all. I’ve even attempted with a newly created development shop where I installed the Flow app after installing my own app.
The only time I thought I replicated this issue was when I was looking at that new development shop with shopify app dev running, and not the development shop that the app is linked to. In this case I simply had to run shopify app deploy to publish the new flow trigger extension for all my development shops.
If you have any ideas on what could contribute to this issue and how we can reproduce this issue, that would be incredibly helpful.
These issues are hard to track down, but likely you have a setup issue somewhere, as opposed to a defect in the system.
I might start by creating a second trigger in the most vanilla way possible. It should show up if you do “shopify app dev”.
If that works, you have an issue with that trigger config.
If that doesn’t work, you have some other issue. A couple of possibilities: (1) your app using wrong API key for the shop, or (2) you have a trigger discovery webhook defined, but it’s not working correctly.
What kind of shop are you testing on? Merchant or development? If this is a development store, could you check Developer Dashboard > Dev stores and confirm which plan is shown for the store where the app is installed?
Thank you, that was indeed the problem - my dev store was on the Basic plan. When I test with a dev store on a Plus plan, I can see the custom triggers and actions.
I had another test app that didn’t have any Distribution method configured. And its custom triggers and actions didn’t show up in my initial dev store, either. So I guess unless the Distribution method is explicitly listed as Public, it’s considered a private app and its Flow extensions are only shown in a Plus store?
@Daniel_G You can’t. “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.” – About Flow
I tested my dev app with an Advanced store also, and the Flow extensions didn’t appear until I finally used a Plus store.
If the store can’t be changed to a Plus store, then you’d need to change your app distribution to Public, either Listed or Unlisted.