Task requests

Feedback on Mechanic app events search/filter
(Posted here in full at Matt's suggestion) I was trying to find something in my Mechanic events and it took me a few tries (I eventually found what I was looking for), and I find generally that I struggle to successfully use the Event search and filters and just rely on finding events based on the known date/time of the events I'm looking for. After a bit of testing, I've come up with some observations and some suggestions, listed below. I've tried to keep my suggestions within the realm of implementability. :) Regardless of whether any changes are made to the search/filter functionality itself to make it easier to use, it would be very helpful to have some more clear guidance/documentation to help me understand what I can and can't search (including when using the search box on the filter panels). For example, the search box could have placeholder text that reads "Search event topics, order IDs, customer ID, product SKU, and more", and maybe on the right of the Events search bar you could have a [?] button that links directly to https://learn.mechanic.dev/app/events (where there would be more technical details of the abilities and limitations of the search and filter features). Can you make it so the search boxes on the event filters are case-insensitive? E.g. I have a task named "Populate Discount Codes..." but it doesn't show up when I search the Task filter for "discount" Can you make it so the Topic filter search can find terms in the middle of the topic (e.g. treat the slashes as spaces)? E.g. I have a topic "user/foo_bar/submitted" that doesn't show up when I type some or all of "foo_bar" (and adding * to either end of a Topic search appears to display results but just displays the same as if there were no search) I had typed "Discount" into the main search box, revealing no results, and without removing it, the Task and Topic filter dropdowns behaved unexpectedly. If I click in the search box within the filter dropdown and try to scroll the list that appears, the list immediately goes away. I didn't clue in to the fact that I still had "Discount" in the main search box. Maybe if there are no results the event filter buttons that aren't applied can grey out or become inactive, to cue the user to broaden their other search parameters? When I use the main search box (not the box within the filter selector) to search for "user", it brings up results for "mechanic/user/trigger", but not "user/foo_bar/submitted" The main search box will return a topic match for "locksmith/sessions/ping" if I type in the full term or if I type in "locksmith", but not if I type "locksmit", "locksmith/", "locksmith/sess", "locksmith/sessions", "locksmith/sessions/", or "locksmith/sessions/p" Searching the main search box does not appear to search Task titles. E.g. Events using the "Populate Discount Codes..." task don't show up when I search for the partial or full Task name. What fields does the search use anyway? I seem to recall it wasn't possible to search events for customer/order email/names/ids, but upon testing I'm getting results many of these things (though not necessarily consistent results for each). Maybe when it wasn't working for me before it's because I was looking for info that was in the event data but not an actual order, or maybe you've updated it? Or maybe I happen to have these terms populated in the event logs now but I didn't the last time I tried.
0
Specific collection product update latest 150 product remove tag otherwise all product tag added
Our requirement is that in the New Arrivals collection, which contains a total of 7000+ products, the New Test tag should be removed from the newest 150 products, and the tag should be added to the remaining products. This flow should be triggered whenever I update the products in this collection. Mechanic Task: https://admin.shopify.com/store/9f5ef2-2/apps/mechanic/tasks/7745782e-91a9-4a74-8789-1e3e9ef4080b?back=%2F Code {% if event.topic == "shopify/collections/update" and collection.handle == "new-arrivals" %} {% assign tag = "New Test" %} {% assign latest_without_tag = 150 %} {% assign products = shop.collections["new-arrivals"].products | sort: "created_at" | reverse %} {% for product in products %} {% assign index = forloop.index0 %} {% if index < latest_without_tag %} {% comment %}Latest 150 → tag remove{% endcomment %} {% if product.tags contains tag %} {% action "shopify" %} mutation { tagsRemove( id: {{ product.admin_graphql_api_id | json }}, tags: ["New Test"] ) { userErrors { field message } } } {% endaction %} {% endif %} {% else %} {% comment %}Rest all → tag add{% endcomment %} {% unless product.tags contains tag %} {% action "shopify" %} mutation { tagsAdd( id: {{ product.admin_graphql_api_id | json }}, tags: ["New Test"] ) { userErrors { field message } } } {% endaction %} {% endunless %} {% endif %} {% endfor %} {% log "New Test tag updated – Latest {{ latest_without_tag }} without tag, rest with tag | Total: {{ products.size }} products" %} {% endif %}
0
Automated Order Tagging Based on Order Status (Changes)
Hey there, We would like to propose a feature that could significantly improve workflows for merchants using Shopify — especially those working with post-purchase upsells or other processes that temporarily place orders in statuses like “on hold”, “payment pending”, or other intermediate states (see Shopify’s full list of order statuses: https://help.shopify.com/en/manual/fulfillment/managing-orders/order-status ). Shopify recently introduced the post-purchase upsell flow, which temporarily sets the order status to “on hold” while customers review an additional offer. Many merchants, including us, rely on an ERP system that should only sync orders after the upsell window has finished. Otherwise, the ERP receives incomplete orders before all line items have been added. To solve this, we would love to see support for automated tagging rules based on order status changes. This could work in two flexible ways: Auto-tag orders when they enter a specific status Example: When an order becomes on hold, automatically apply a tag (e.g., on-hold-erp-block) to exclude it from syncing. Auto-remove or update tags when the order status changes Example: When the order moves from on hold to unfulfilled or partially fulfilled, automatically remove or replace the tag so the order can sync normally. Even supporting just the second option — waiting for a specific status before the ERP sync starts — would already cover our primary use case. Why this feature matters Post-purchase upsells are becoming increasingly common in Shopify, and more apps and workflows will rely on temporary hold statuses. An automated status-based tagging mechanism would: Prevent premature ERP syncs Ensure accurate order transmission Reduce manual work and error potential Provide value to any merchant using upsells, fraud checks, inventory holds, or custom review flows This would be highly beneficial not only for us, but for many other merchants facing similar challenges. Is this something you could consider for the roadmap, or provide guidance on implementing? Thank you!
0
Load More