Skip to content

Releases: goldnead/statamic-automations

v2.44.0

Choose a tag to compare

@goldnead goldnead released this 28 Oct 16:33
872d77d

Run storage is now bounded: automations:prune is on the scheduler (daily 03:15), node runs are deleted explicitly, node input/output above runs.max_node_io_bytes (64 KB) is stored as a marker. New env STATAMIC_AUTOMATIONS_PRUNE_AFTER_DAYS (default 30). See CHANGELOG.

v2.43.0

Choose a tag to compare

@goldnead goldnead released this 22 Oct 18:58
10f81ea

Step table 'Wo springen sie ab?' in the automation panel of the funnels map (needs marketing 2.38.0 for open/click numbers). See CHANGELOG.

v2.41.0

Choose a tag to compare

@goldnead goldnead released this 22 Oct 11:42
26c1e76

Fixed: a freebie is called by its own name, in a real run and in the Probelauf

  • entitlements.recent_grant took the catalogue's name of the access first. On production the catalogue (statamic-products) calls the access
    of the freebie "CVT im Chor" CVT im Chor — Masterclass, so the bridge mail said "Wie es nach „CVT im Chor — Masterclass“ weitergeht" in a real
    run too, not only in the Probelauf. The order is now the freebie first: the title of the lead magnet behind the grant, then the lead magnet
    found by the access it hands out (access_product; covers a newer grant of the newsletter opt-in that no lead magnet wrote, only for a grant
    whose source is in the new automations.entitlements.freebie_sources, default lead_magnet, lead_magnet_access, newsletter_optin), then
    the catalogue, then automations.entitlements.title_sources. A purchase of the same access keeps the catalogue name as before.
  • One function for both: RecentGrantAction::titleFor($slug, $entitlementId = null). The run calls it with the id of the grant, the Probelauf
    without; the Probelauf no longer assembles the name itself.
  • "Why this way": the case a switch on {{ nodes.x.product_slug }} took is named by the freebie ("ging den Fall CVT im Chor") instead of
    the slug; the same in the list of all ways. The slug stays where no name is known.

v2.40.0

Choose a tag to compare

@goldnead goldnead released this 22 Oct 08:48

Added: the Probelauf answers "did she just unlock something?" and says its questions in names

  • The newsletter's welcome series asks entitlements.recent_grant ("Gerade etwas freigeschaltet?") and branches on found,
    product_title and a switch on product_slug. A run asks the grants of the address; the dry run has no grants to ask, so the question
    ended every way at "depends on what an earlier step delivers" and the start showed nothing. It reads the person now: the trait
    entitlements.recent_grant is the name of the freebie she came through (no trait: nothing was just unlocked), the trait
    entitlements.recent_grant_age how many minutes ago, which has to lie inside the step's own within_minutes. A step that looks up
    another address, filters by sources or has a window the engine would refuse stays unknown. The title is the one a run would find without a
    grant (RecentGrantAction::nameFor(): the entitlements catalogue, then automations.entitlements.title_sources, then the title of the lead
    magnet whose access_product is that name, automations.integrations.lead_magnets.resource_model), so the bridge mail
    says "Wie es nach „Das Toolkit“ weitergeht" in its subject and in its preview.
  • A real person (SimPersonSource) brings how she came: her newest grant that gives access now, as the two traits above (lead magnet
    grants included: the adapter finds them like a run does). Read only; it needs the right to view entitlements, without it nothing is read.
  • "Why this way" reads nodes.<step>.<field> as words: the name of the awaited automation ("‚Minikurs CVT im Chor‘ bis zum Ende gelaufen"),
    the name of the product ("die Person Zugang zu ‚Kurs‘ hat"), the unlock question, and for any other answer the step's own title instead of
    the key (nodes wait welcome ran to end = true).
  • A subject that names an answer about the person ({{ nodes.recent.product_title }}) shows the name in the timeline, not the placeholder.

v2.39.0

Choose a tag to compare

@goldnead goldnead released this 21 Oct 19:56

Probelauf: marketing.send_email-Schritte zeigen ihre Mail (über die Node-Klasse des marketing-Addons); has_access und ran_to_end werden für eine bekannte Person gelesen, damit der Weg an diesen Fragen nicht endet. Siehe CHANGELOG.

v2.38.0

Choose a tag to compare

@goldnead goldnead released this 21 Oct 14:49

Dry run: simulationTags() for the tag picker (see CHANGELOG).

v2.37.0

Choose a tag to compare

@goldnead goldnead released this 21 Oct 11:52

Dry run: steps, mail previews, person source (see CHANGELOG).

v2.36.0

Choose a tag to compare

@goldnead goldnead released this 21 Oct 10:16

Dry run of an automation for the funnels map (paths, react). Needs brand-context 1.21.

v2.35.0

Choose a tag to compare

@goldnead goldnead released this 21 Oct 07:53

Added: the funnels map's detail panel lists an automation's mails

AutomationMapObjects::details() (the optional detail method of the map contract) returns a "Mails" list: the automation's mails in step order, each with its subject (the template's subject when the step has none, a plain fallback title for a missing template), the wait since the step before ("right away", "after 2 days"; waits between two mails add up; English and German). Placeholders in a subject are worded instead of shown raw: {{ contact.first_name }} becomes {First name} ({Vorname} in German), any other variable its last segment in braces ({{ order.total }} becomes {total}), filters dropped. The marketing addon's marketing.send_email steps are listed too (a campaign-mode step is titled with its campaign handle). Read only: nothing is rendered and the thumbnail storage is not touched (image is null, no file lookup per mail); the template subjects of the listed mails come in one query (whereIn on the slugs); at most 12 entries with the rest counted.

AutomationMapObjects::detailsAuthorized() answers the map registry's rights check (brand-context 1.20, MapObjectRegistry::detailsAllowed()): the details open only to a user with view automations, a missing user is refused. On brand-context 1.19 the panel stays empty.

v2.34.1

Choose a tag to compare

@goldnead goldnead released this 20 Oct 20:40
1bbafc5

Fixed: releasing a connection on a switched-on automation is refused

On the funnels map, releasing a triggers connection (the disconnect, and with it the undo of a connect) empties the slug of the automation's "Access Granted" trigger. An empty slug there means "every access that is granted" (FlattensEntitlements), and a running automation takes the change at once, so the release would have started it for every grant, while the dialog said it "no longer starts" for the product. connectionPreview() and disconnect() now refuse it while the automation is switched on: "This automation is switched on. Without a product it would start on every access that is granted. Switch it off first." (German too). On a switched-off automation the release is still allowed, and the dialog now says what an empty trigger means. Connecting is unchanged.