LaneyGuide
Browse featuresWorkflow configuration and execution

Workflow triggers and execution states

Look up workflow triggers, relative time now-30m, Query conditions, decision steps (workflows.decide), branch conditions, and execution states.

ReferenceVerified Oct 18, 2026Owner Laney Product

Supported triggers and input

TriggerFires onConfiguration fields
dbRow insert, update, or delete on a watched tablesource_table, source_event, source_query
cronConfigured cron scheduleschedule (such as 0 9 * * *)
heartbeatPeriodic check for outstanding recordsFirst step *.list query and each loop

The trigger kinds are db, cron, and heartbeat. The manual run source is distinct from configurable trigger kinds. Watched db tables (source_table) include calls, form_submissions, customers, members, reservations, messages, conversations, purchases, and audit_applications.

Conditions and queries

1. Trigger entry conditions (source_query) and list queries

For db, source_query checks whether the changed record enters the selected set. An update that already matched before the edit does not fire a new run. Batch selection belongs in *.list step queries; check conditions (where), ordering (order), and row limits (limit).

This query selects confirmed reservations that started more than 30 minutes ago. It does not modify them. Configure the follow-up action in a separate step.

{
  "where": {
    "status": {
      "eq": "confirmed"
    },
    "starts_at": {
      "lt": "now-30m"
    }
  },
  "order": {
    "column": "starts_at",
    "ascending": true
  }
}

now is evaluated at execution time. Relative values include now-30m, now+2h, and now-7d. Fields within where must all match; use an or array for alternatives. Address custom fields as custom.<key>. Check supported fields and operators in the feature reference.

2. Decision steps (workflows.decide) and evaluators

A workflows.decide step evaluates a target state (default ${trigger}) and writes each question's answer to ${steps.<step_slug>.values.<question_key>}.

Question modeConfigurationReturned value
Choice (choice)Option keys and criteria descriptions (options)Option key string (such as "high")
Boolean (boolean)True or false evaluationtrue or false
Score (score)Ordered level labels (levels, at least two)Level index (0, 1, 2)
Resource field (field)Target table (resource) and column (path)Allowed value for the referenced field

Each question uses one of two evaluators (evaluate.kind):

  • llm (AI): Reads the input state using natural-language instructions and returns a valid option or value.
  • rules (Rules): Evaluates filter chip cases (cases[].when) against the selected resource (unique or first match) and returns the matching case's value.

3. Branch conditions (when) and fan-out loops (each)

A step's When (when) condition evaluates a Query where predicate against a prior data source. When the predicate is false, the step is recorded as skipped. The Flow canvas displays delta when condition chips on incoming branch edges.

  • Supported source values: trigger, item, steps.<step_slug>, or answers.<question_key>.
  • Combining clauses: Use all when every clause must match, or any when any clause can match.
  • Fan-out loop (each): Set each to an array path from a prior list step (such as "${steps.find_stale.rows}") to run the step once per element with ${item} bound.

Available actions

The following catalog comes from the current implementation registry. Check available methods, writable fields, and filters before configuring steps. Execution still requires the owning member’s permissions.

Chartscharts

Features (impl.method)

  • charts.listRead a sorted, filtered, paginated page of rows.
  • charts.insertInsert a new row.
  • charts.updateUpdate one row by id.
  • charts.deleteDelete one row by id.
  • charts.portfolioLaney-only access to aggregate outcomes for linked client organizations. Does not grant access to individual client records.
  • charts.evaluateEvaluate a versioned customer analysis. Requires access to every underlying resource. Funnels count unique customers entering in the period, in step order, within the conversion window. Purchase value includes currently completed purchases at their recorded completion time, separately by currency.

Filterable columns (a charts.list step’s query)

idcreated_atupdated_attitle

Writable fields

TitleAnalysis

Product rolloutsproduct_rollouts

Features (impl.method)

  • product_rollouts.listRead a sorted, filtered, paginated page of rows.
  • product_rollouts.insertInsert a new row.
  • product_rollouts.updateUpdate one row by id.
  • product_rollouts.deleteDelete one row by id.

Filterable columns (a product_rollouts.list step’s query)

idcreated_atupdated_atstatusclient_organization_idcustomer_idproduct_id

Writable fields

StatusVerified atNotes

Product optionsproduct_options

Features (impl.method)

  • product_options.listRead a sorted, filtered, paginated page of rows.
  • product_options.insertInsert a new row.
  • product_options.updateUpdate one row by id.
  • product_options.deleteDelete one row by id.

Statuses

DraftActiveArchived

Filterable columns (a product_options.list step’s query)

idcreated_atupdated_atstatusnamepriceversionproduct_idcurrencyentity_id

Writable fields

NameStatusKindPriceCurrencyBilling cyclePrice basisScopeIncluded quantityUsage unitOverage unit priceComponentsVersion

Measurement evidencemeasurement_observations

Features (impl.method)

  • measurement_observations.listRead a sorted, filtered, paginated page of rows.
  • measurement_observations.insertInsert a new row.
  • measurement_observations.updateUpdate one row by id.
  • measurement_observations.deleteDelete one row by id.

Filterable columns (a measurement_observations.list step’s query)

idcreated_atupdated_atstarts_atends_atevaluatorreference

Writable fields

MeasurementDateEnd dateMeasured totalTask count / ad spendSample sizeCurrencyDays allowed to convertReferenceNotes

Dashboardsdashboards

Features (impl.method)

  • dashboards.listRead a sorted, filtered, paginated page of rows.
  • dashboards.insertInsert a new row.
  • dashboards.updateUpdate one row by id.
  • dashboards.deleteDelete one row by id.

Filterable columns (a dashboards.list step’s query)

idcreated_atupdated_attitle

Writable fields

TitleLayout

Dashboard chartsdashboard_items

Features (impl.method)

  • dashboard_items.listRead a sorted, filtered, paginated page of rows.
  • dashboard_items.insertInsert a new row.
  • dashboard_items.updateUpdate one row by id.
  • dashboard_items.deleteDelete one row by id.

Filterable columns (a dashboard_items.list step’s query)

idcreated_atupdated_atpositiondashboard_idchart_id

Writable fields

PositionWidth

Productsproducts

Features (impl.method)

  • products.listRead a sorted, filtered, paginated page of rows.
  • products.insertInsert a new row.
  • products.updateUpdate one row by id.
  • products.deleteDelete one row by id.
  • products.quotePrice a product/treatment for the customer's desired visit date: matching products, valid promotions, final prices — one call. Simple items carry one-time `regular_price`/`final_price`. Typed items instead carry `pricing`: entries of kind one_time / recurring (per `cycle`, with an optional `intro` first-N-months phase) / usage (billed by consumption, no fixed number); a bundle also lists `components`.

Statuses

DraftActiveArchived

Filterable columns (a products.list step’s query)

idcreated_atupdated_atstatusnamekindpriceinventoryentity_id

Writable fields

KindNameStatusInventoryPriceBilling cycle

Bundle linksproduct_edges

Features (impl.method)

  • product_edges.listRead a sorted, filtered, paginated page of rows.
  • product_edges.insertInsert a new row.
  • product_edges.updateUpdate one row by id.
  • product_edges.deleteDelete one row by id.

Filterable columns (a product_edges.list step’s query)

idcreated_atupdated_atpositionchild_idparent_id

Writable fields

QuantityPosition

Promotionspromotions

Features (impl.method)

  • promotions.listRead a sorted, filtered, paginated page of rows.
  • promotions.insertInsert a new row.
  • promotions.updateUpdate one row by id.
  • promotions.deleteDelete one row by id.
  • promotions.applicableList the events/coupons/benefits valid on the customer's desired visit date.

Statuses

DraftActiveArchived

Filterable columns (a promotions.list step’s query)

idcreated_atupdated_atstatusnamekindstarts_atends_atentity_id

Writable fields

KindNameStatusBenefitValueApplies toMonthsStackableDateEnd dateCodeUsage LimitCondition

Organizationsorganizations

Features (impl.method)

  • organizations.listRead a sorted, filtered, paginated page of rows.
  • organizations.insertInsert a new row.
  • organizations.updateUpdate one row by id.
  • organizations.deleteDelete one row by id.

Filterable columns (a organizations.list step’s query)

idcreated_atupdated_atnameslugplanparent_id

Writable fields

NameSlugPlanLogoThemeDesignDefault languageBusiness info

Membersmembers

Features (impl.method)

  • members.listRead a sorted, filtered, paginated page of rows.
  • members.insertInsert a new row.
  • members.updateUpdate one row by id.
  • members.deleteDelete one row by id.
  • members.notifySend a Web Push notification to the owner of the running workflow.

Statuses

InvitedActiveSuspended

Filterable columns (a members.list step’s query)

idcreated_atupdated_atstatusemailnamerole

Writable fields

EmailNameRoleStatusAvatar

Customerscustomers

Features (impl.method)

  • customers.listRead a sorted, filtered, paginated page of rows.
  • customers.insertInsert a new row.
  • customers.updateUpdate one row by id.
  • customers.deleteDelete one row by id.
  • customers.profileSave the details the person just gave you (their name, email, phone, and any other field listed below) onto THEIR OWN record. You do not — and cannot — choose whose record; it is always the person you're speaking with. Only the fields you pass are changed. Call this whenever they share or correct their details, in addition to replying.

Statuses

LeadQualifiedActiveChurnedLost

Filterable columns (a customers.list step’s query)

idcreated_atupdated_atstatusnameemailphoneaccount_idcampaign_id

Writable fields

NameEmailPhoneStatusAvatar

Requestscustomer_requests(system)

Features (impl.method)

  • customer_requests.listRead a sorted, filtered, paginated page of rows.

Statuses

TriageBacklogUnstartedStartedCompletedCanceled

Filterable columns (a customer_requests.list step’s query)

idcreated_atupdated_atstatusprioritylinear_created_atbody

Writable fields

BodyStatusLabelsPriority

Reservationsreservations

Features (impl.method)

  • reservations.listRead a sorted, filtered, paginated page of rows.
  • reservations.insertInsert a new row.
  • reservations.updateUpdate one row by id.
  • reservations.deleteDelete one row by id.
  • reservations.availabilityList open reservation time slots for a given date (YYYY-MM-DD).
  • reservations.cancelCancel reservation(s). A single `id` whose time slot holds same-customer companion bookings cancels NOTHING and returns `candidates` — ask the customer which booking(s), then call again with `ids` (their exact answer: one, some, or all).

Statuses

PendingConfirmedChecked inCompletedCancelledNo-show

Filterable columns (a reservations.list step’s query)

idcreated_atupdated_atstarts_atends_atstatusnotescustomer_id

Writable fields

DateEnd dateStatusNotes

Paymentspurchases

Features (impl.method)

  • purchases.listRead a sorted, filtered, paginated page of rows.
  • purchases.insertInsert a new row.
  • purchases.updateUpdate one row by id.
  • purchases.deleteDelete one row by id.
  • purchases.finalizeFreeze this purchase's buyer, scope and amount. Payment stays pending until received.

Statuses

PendingCompletedVoided

Filterable columns (a purchases.list step’s query)

idcreated_atupdated_atstatusvaluecustomer_idproduct_idproduct_option_idclient_organization_idagreement_referencereservation_idpromotion_id

Writable fields

StatusQuantityValueCurrencyScopeAgreement referenceService startsService ends

Contententities

Features (impl.method)

  • entities.listRead a sorted, filtered, paginated page of rows.
  • entities.insertInsert a new row.
  • entities.updateUpdate one row by id.
  • entities.deleteDelete one row by id.

Filterable columns (a entities.list step’s query)

idcreated_atupdated_atnamepositionslug

Writable fields

NameLabelSloganDescriptionImageIconSlugPosition

Content linksentity_edges

Features (impl.method)

  • entity_edges.listRead a sorted, filtered, paginated page of rows.
  • entity_edges.insertInsert a new row.
  • entity_edges.updateUpdate one row by id.
  • entity_edges.deleteDelete one row by id.

Filterable columns (a entity_edges.list step’s query)

idcreated_atupdated_atpositionchild_idparent_id

Writable fields

Position

Sectionssections

Features (impl.method)

  • sections.listRead a sorted, filtered, paginated page of rows.
  • sections.insertInsert a new row.
  • sections.updateUpdate one row by id.
  • sections.deleteDelete one row by id.
  • sections.applyApply a landing patchset (sections, content, content links) in one transaction. The final state is checked against the landing rules first; an agent's patch that adds a rule failure is not applied unless an approved exception covers it.

Filterable columns (a sections.list step’s query)

idcreated_atupdated_attypepositionentity_idpath

Writable fields

TypePathPositionOptionsCTA

Domainsdomains

Features (impl.method)

  • domains.listRead a sorted, filtered, paginated page of rows.
  • domains.insertInsert a new row.
  • domains.updateUpdate one row by id.
  • domains.deleteDelete one row by id.

Filterable columns (a domains.list step’s query)

idcreated_atupdated_athostnameis_primaryverified

Writable fields

HostnamePrimaryRedirect To

Integrationsintegrations

Features (impl.method)

  • integrations.listRead a sorted, filtered, paginated page of rows.
  • integrations.insertInsert a new row.
  • integrations.updateUpdate one row by id.
  • integrations.deleteDelete one row by id.

Statuses

PendingLinkedErrorDetached

Filterable columns (a integrations.list step’s query)

idcreated_atupdated_atstatusprovider

Writable fields

ProviderStatusExternal StateConfig

Campaignscampaigns

Features (impl.method)

  • campaigns.listRead a sorted, filtered, paginated page of rows.
  • campaigns.insertInsert a new row.
  • campaigns.updateUpdate one row by id.
  • campaigns.deleteDelete one row by id.

Statuses

DraftActivePausedEndedDeletingProvisioningError

Filterable columns (a campaigns.list step’s query)

idcreated_atupdated_atstatusnamedaily_budgetspendconversionsproviderobjective

Writable fields

ProviderNameStatusObjectiveDaily budgetCurrencyExternal StateIntegrationPushed AtConfig

Reportsreports

Features (impl.method)

  • reports.listRead a sorted, filtered, paginated page of rows.

Statuses

QueuedRunningWaiting for approvalCompletedFailedCancelled

Filterable columns (a reports.list step’s query)

idcreated_atupdated_atstatuskindstarted_attitlesummary

Writable fields

KindRun KeyStatusTitleSummaryScope

Findingsreport_findings

Features (impl.method)

  • report_findings.listRead a sorted, filtered, paginated page of rows.

Statuses

OpenAcknowledgedResolvedAccepted risk

Filterable columns (a report_findings.list step’s query)

idcreated_atupdated_atstatusseveritycategorylast_seen_attitledetailrule_keyassessmentreport_id

Writable fields

Rule KeyFingerprintCategoryAssessmentSeverityStatusTitleDetailRecommendationConfidenceEvidence

Report targetsreport_targets

Features (impl.method)

  • report_targets.listRead a sorted, filtered, paginated page of rows.

Filterable columns (a report_targets.list step’s query)

idcreated_atupdated_atkindsurfacelast_verified_atlabeltarget_keyimpl_nameexternal_url

Writable fields

Target KeySurfaceLabelSnapshotLast Verified AtKindImpl NameRowExternal UrlExternal

Finding linksreport_finding_targets

Features (impl.method)

  • report_finding_targets.listRead a sorted, filtered, paginated page of rows.

Filterable columns (a report_finding_targets.list step’s query)

idcreated_atupdated_atrelationfield_pathobserved_atfinding_idtarget_id

Writable fields

RelationField PathObserved ValueEvidence

Workflowsworkflows

Features (impl.method)

  • workflows.listRead a sorted, filtered, paginated page of rows.
  • workflows.insertInsert a new row.
  • workflows.updateUpdate one row by id.
  • workflows.deleteDelete one row by id.
  • workflows.decideEvaluate bounded questions against supplied data using AI or deterministic rules; does not write source rows.
  • workflows.runQueue an active workflow; inspect run history for completion.

Filterable columns (a workflows.list step’s query)

idcreated_atupdated_atnamestatustriggerdescription

Writable fields

NameDescriptionStatusTriggerScheduleSource TableSource EventSource Query

Workflow runsworkflow_runs(system)

Features (impl.method)

  • workflow_runs.listRead a sorted, filtered, paginated page of rows.

Filterable columns (a workflow_runs.list step’s query)

idcreated_atupdated_atstatussourceworkflow_id

Writable fields

StatusSourcePayload

Stepssteps

Features (impl.method)

  • steps.listRead a sorted, filtered, paginated page of rows.
  • steps.insertInsert a new row.
  • steps.updateUpdate one row by id.
  • steps.deleteDelete one row by id.

Filterable columns (a steps.list step’s query)

idcreated_atupdated_atnamepositionfeatureworkflow_id

Writable fields

NamePositionFeatureInputFor eachWhen

Step runsstep_runs(system)

Features (impl.method)

  • step_runs.listRead a sorted, filtered, paginated page of rows.

Filterable columns (a step_runs.list step’s query)

idcreated_atupdated_atstatusfeatureworkflow_run_idstep_id

Writable fields

FeatureStatusInputOutput

Accountsaccounts

Features (impl.method)

  • accounts.listRead a sorted, filtered, paginated page of rows.
  • accounts.insertInsert a new row.
  • accounts.updateUpdate one row by id.
  • accounts.deleteDelete one row by id.
  • accounts.syncOptOutsRecord the channel's opt-out list (Kakao's 080 numbers) as consent withdrawals, so advertising stops reaching them.

Statuses

ConnectedDisconnectedError

Filterable columns (a accounts.list step’s query)

idcreated_atupdated_atstatusnameplatform

Writable fields

NamePlatformStatusConfigAssistant

Conversationsconversations

Features (impl.method)

  • conversations.listRead a sorted, filtered, paginated page of rows.
  • conversations.insertInsert a new row.
  • conversations.updateUpdate one row by id.
  • conversations.deleteDelete one row by id.
  • conversations.recordingRead an authorized staff meeting record, summary and paginated transcript. Use the recording conversation ID. Check availability before performing follow-up work. Speaker references describe recorded speech, not message authors.
  • conversations.focusAnswer as a specific branch (a descendant of the current org) for the rest of this turn — its catalog, prices, and availability. Reversible: call again to compare another branch. No bookings move until one is made.
  • conversations.routeAssign this conversation and its messages to a branch. Existing reservations stay at the branch where each was created; the customer keeps one group identity with branch references.

Statuses

OpenPendingSnoozedClosed

Filterable columns (a conversations.list step’s query)

idcreated_atupdated_atstatuslast_message_atsubjectai_pausedaccount_idstarted_atlast_messageorganization_idcustomer_idmember_id

Writable fields

SubjectStatus

Messagesmessages

Features (impl.method)

  • messages.listRead a sorted, filtered, paginated page of rows.
  • messages.insertInsert a new row.
  • messages.updateUpdate one row by id.
  • messages.deleteDelete one row by id.
  • messages.textRead an authorized message's text parts as plain text. Attachments and tool metadata are excluded.
  • messages.transcribePersist a final live-voice utterance (and its interpretation) as a turn of this conversation.

Filterable columns (a messages.list step’s query)

idcreated_atupdated_atrolefeatureconversation_idmember_idcustomer_idstep_id

Writable fields

RoleContentFeature

Templatestemplates

Features (impl.method)

  • templates.listRead a sorted, filtered, paginated page of rows.
  • templates.insertInsert a new row.
  • templates.updateUpdate one row by id.
  • templates.deleteDelete one row by id.
  • templates.sendSend this template to a customer over its channel (알림톡 / LINE push). Idempotent per key: a re-fired workflow skips an already-sent source row.
  • templates.registerRegister this template with the channel and submit it for review (알림톡: Kakao, ~2 business days). Status becomes pending until refresh reports the verdict.
  • templates.refreshRe-read the external review verdict for this template (approved / rejected / still pending).

Filterable columns (a templates.list step’s query)

idcreated_atupdated_atnamekindstatusbodyaccount_id

Writable fields

NameBodyKindStatusPurposeConfig

Deliveriesdeliveries

Features (impl.method)

  • deliveries.listRead a sorted, filtered, paginated page of rows.
  • deliveries.insertInsert a new row.
  • deliveries.updateUpdate one row by id.
  • deliveries.deleteDelete one row by id.

Filterable columns (a deliveries.list step’s query)

idcreated_atupdated_atstatustemplate_idcustomer_idaccount_idconversation_id

Writable fields

StatusKeyProvider MessageErrorRendered

Consentsconsents

Features (impl.method)

  • consents.listRead a sorted, filtered, paginated page of rows.
  • consents.insertInsert a new row.
  • consents.recordRecord that a customer granted or withdrew advertising consent on one channel, with the evidence.

Filterable columns (a consents.list step’s query)

idcreated_atupdated_atmediumscopegrantedsourcecustomer_id

Writable fields

MediumScopeGrantedSourceNote

Callscalls

Features (impl.method)

  • calls.listRead a sorted, filtered, paginated page of rows.
  • calls.cancelCancel a queued or ongoing call.

Filterable columns (a calls.list step’s query)

idcreated_atupdated_atstatusreasondelivery_idsubmission_id

Writable fields

StatusReasonRinging AtAnswered AtEnded AtCancel Requested

Rolesroles

Features (impl.method)

  • roles.listRead a sorted, filtered, paginated page of rows.
  • roles.insertInsert a new row.
  • roles.updateUpdate one row by id.
  • roles.deleteDelete one row by id.

Filterable columns (a roles.list step’s query)

idcreated_atupdated_atname

Writable fields

NamePermissions

Custom fieldscustom_fields

Features (impl.method)

  • custom_fields.listRead a sorted, filtered, paginated page of rows.
  • custom_fields.insertInsert a new row.
  • custom_fields.updateUpdate one row by id.
  • custom_fields.deleteDelete one row by id.

Filterable columns (a custom_fields.list step’s query)

idcreated_atupdated_attargetpositionkeylabeldescriptionfield_groupvisibilitynode_id

Writable fields

KindTargetKeyLabelDescriptionTranslationsField groupVisibilityRequiredPositionFormsShow whenOptionsType selector

Availability rulesavailability_rules

Features (impl.method)

  • availability_rules.listRead a sorted, filtered, paginated page of rows.
  • availability_rules.insertInsert a new row.
  • availability_rules.updateUpdate one row by id.
  • availability_rules.deleteDelete one row by id.

Filterable columns (a availability_rules.list step’s query)

idcreated_atupdated_attargetkindpositionscope_keyscope_value

Writable fields

KindWeekdaysStart timeEnd timeSlot (min)TargetTime fieldScope fieldPositionDateEnd dateScope valueMax concurrentGap MinutesFunction Slug

Formsforms

Features (impl.method)

  • forms.listRead a sorted, filtered, paginated page of rows.
  • forms.insertInsert a new row.
  • forms.updateUpdate one row by id.
  • forms.deleteDelete one row by id.

Filterable columns (a forms.list step’s query)

idcreated_atupdated_atslugtargetactivemodeaccess

Writable fields

SlugLabelDescriptionRenderPromptSuccess MessageStatic FieldsActiveTargetModeAccess

Responsesform_submissions(system)

Features (impl.method)

  • form_submissions.listRead a sorted, filtered, paginated page of rows.

Statuses

DraftSubmittingSubmittedFailed

Filterable columns (a form_submissions.list step’s query)

idcreated_atupdated_atstatussubmitted_attargetform_idcustomer_id

Writable fields

TargetTargetForm VersionStatusAnswersAnalysisErrorExpires AtSubmitted At

Run and step states

RecordStatesMeaning
Workflow configuration (workflows)draft, active, pausedOnly active workflows fire on triggers and schedules.
Workflow run (workflow_runs)queued, running, succeeded, failedOverall status of one workflow execution.
Step run (step_runs)running, succeeded, failed, skippedStatus of one step; unmet when conditions record skipped.

Run success means the defined steps succeeded. Confirm external receipt and customer outcomes in their corresponding source records.

On this page