Help & Documentation

Frequently Asked Questions

Everything you need to know about how Fulfillment Risk Monitor works, what it detects, and how to use it effectively.

⚙️

How It Works

What does Fulfillment Risk Monitor do?

Fulfillment Risk Monitor continuously evaluates your open orders against your fulfillment thresholds and flags those at risk of delay, getting stuck, or missing tracking — before your customers notice. Instead of reacting to complaints, you get an early-warning signal so your team can investigate and resolve issues proactively.

How does risk detection work?

The app runs an evaluation cycle every 30 minutes. During each cycle it:

  1. Fetches all open, unfulfilled, or partially-fulfilled orders for your store from our database (kept up to date via Shopify webhooks).
  2. Compares each order's age and fulfillment state against your configured thresholds.
  3. Creates or updates a risk record for any order that exceeds a threshold.
  4. Sends notifications for newly detected risks (if notifications are enabled).

Risk records are updated on every cycle — so severity can escalate as an order falls further behind, and risks are automatically resolved when an order is fulfilled or cancelled.

How fresh is the data?

Order and fulfillment state is kept current via Shopify webhooks, which fire in real time when orders are created, updated, fulfilled, or cancelled. Risk assessments are computed every 30 minutes, so the dashboard reflects your store's risk posture as of the last evaluation cycle. The exact time is shown in the subtitle of the Analytics page.

What happens when I first install the app?

After you complete onboarding and connect your store, we run a one-time historical sync that backfills up to 60 days of your order history. This gives the evaluation engine enough context to detect risks immediately and powers the initial threshold suggestions. The sync typically completes within a few minutes depending on your order volume.

Does the app change how my orders are fulfilled?

No. Fulfillment Risk Monitor is a read-only monitoring layer. It does not create, update, or cancel fulfillments, modify orders, or interact with your fulfillment workflows in any way. It reads order and fulfillment state to assess risk, and surfaces that assessment in the dashboard — but all actions remain with you.

🔍

Risk Types

What types of risks does the app detect?

The app currently detects four risk types:

High / Medium

Fulfillment Delay

An order has been sitting unfulfilled longer than your threshold. Separate thresholds apply for merchant-fulfilled and 3PL-fulfilled orders.

High

Blocked — No Fulfillment Order

A paid order has no fulfillment order attached after a short grace period. Usually indicates a routing or configuration issue.

High / Medium

Blocked — On Hold

A fulfillment order has been placed on hold and the hold has not been released within your threshold.

Medium

Partial Fulfillment Stalled

An order is partially fulfilled but the remaining items have not moved in longer than your threshold.

Low

Missing Tracking

A fulfillment has been created but no tracking number has been added within your threshold — more critical for 3PL orders.

How is severity (High / Medium / Low) determined?

Severity is based on how far over the threshold an order is, combined with the risk type:

  • High — significantly overdue, or a blocking issue (no fulfillment order, prolonged hold)
  • Medium — moderately overdue or a stalled partial fulfillment
  • Low — mildly overdue or a missing-tracking issue within a reasonable window

Severity can escalate across cycles as an order ages further past its threshold.

What is the lifecycle of a risk record?

Each risk goes through the following states:

NEWACTION TAKENRESOLVED
NEWSNOOZEDNEW
  • NEW — risk detected, waiting for attention
  • ACTION TAKEN — you logged an action (contacted vendor, checked inventory, etc.)
  • SNOOZED — temporarily suppressed; returns to NEW after the snooze period
  • RESOLVED — the order was fulfilled or cancelled, or you manually dismissed the risk

Thresholds & Configuration

What are thresholds and how do I configure them?

Thresholds define how long an order can sit in a given state before it is flagged as a risk. For example, if your “Fulfillment Delay” threshold is set to 24 hours, any unfulfilled order older than 24 hours will be flagged.

You can configure thresholds globally and override them per-location from the Settings page. Available thresholds include:

  • Fulfillment delay — merchant-fulfilled orders
  • Fulfillment delay — 3PL / external-fulfilled orders
  • Blocked (no fulfillment order) — grace period
  • Blocked (on hold) — hold duration
  • Partial fulfillment stalled — remaining items age
  • Missing tracking — merchant-fulfilled orders
  • Missing tracking — external-fulfilled orders

What are suggested thresholds?

After the initial historical sync, the app analyses your past fulfillment patterns and suggests threshold values based on your store's actual performance (e.g., p90 fulfillment time per source). These are presented as suggestions — you can apply them, adjust them, or dismiss them entirely. Your own configured values always take precedence.

Can I set different thresholds for different locations?

Yes. In Settings you can add per-location threshold overrides. This is useful if, for example, one of your 3PL partners consistently ships slower than another and you want separate alerting windows for each.

What is a fulfillment source?

A fulfillment source is the logical group used to evaluate and report on risks. By default, each Shopify location maps to a fulfillment source. Sources are either:

  • Merchant — orders fulfilled directly from your own warehouse or store location
  • External — orders handled by a third-party fulfillment service (3PL) connected via Shopify's fulfillment service API

Different default thresholds apply to each type since 3PL turnaround expectations often differ from in-house fulfillment.

🔔

Notifications

What notifications does the app send?

When a new risk is detected, the app can notify you via:

  • Email — sent via AWS SES to the address you configure in Settings. Includes order number, risk type, severity, time overdue, and a direct link to the risk in your dashboard.
  • Slack — sent to a Slack channel via an incoming webhook URL you provide. Same content as the email, formatted as a Slack block message with a “View in Dashboard” button.

Notifications fire only once per risk — when it is first detected. You will not receive repeated alerts for the same risk on subsequent evaluation cycles.

Can I turn off notifications without uninstalling?

Yes. Go to Settings → Notifications and toggle email and/or Slack off independently. Risk monitoring continues in the background — you simply won't receive alerts until you re-enable them.

Taking Action

What actions can I take on a risk?

From the Risk Inbox dashboard you can:

  • Log an action — record that you checked inventory, contacted the vendor, or requested tracking. This moves the risk to ACTION TAKEN so your team knows it's being handled.
  • Snooze — suppress the risk for a chosen duration (e.g., 4 hours, 1 day). It will reappear automatically when the snooze expires.
  • Dismiss — mark the risk as acknowledged and remove it from your active inbox. Use this for risks you've investigated and decided require no action.
  • Add a note — attach a free-text note to the risk for team visibility (e.g., “Vendor confirmed ship date of Friday”).

When does a risk automatically resolve?

A risk is automatically moved to RESOLVED when:

  • The order's fulfillment status becomes “fulfilled”
  • The order is cancelled
  • The condition that triggered the risk is corrected (e.g., tracking is added for a missing-tracking risk, a hold is released for a blocked risk)

Resolution is detected within one evaluation cycle (up to 30 minutes) after the underlying order state changes in Shopify.

What does snoozing a risk do?

Snoozed risks are hidden from your active inbox for the snooze duration. The risk is not resolved — it will reappear automatically once the snooze expires and will continue to escalate in severity if the underlying issue is not addressed. Use snooze when you're waiting on a vendor response or a scheduled action and don't want the risk cluttering your inbox in the meantime.

🔒

Data & Privacy

What Shopify data does the app access?

The app reads order metadata (order ID, number, timestamps, financial and fulfillment status, total price), fulfillment records (status, tracking info, location), fulfillment order events (hold status, routing), and location information. It does not access customer personal information, payment details, or product catalog data. See our Privacy Policy for the full breakdown.

What happens to my data if I uninstall?

When you uninstall the app, Shopify sends us an app/uninstalled webhook. We immediately revoke the OAuth session and begin deletion of all associated store data. Full deletion is completed within 48 hours. You do not need to contact us separately.

Where is my data stored?

All data is stored in Amazon Web Services (AWS) infrastructure in the US East (N. Virginia, us-east-1) region, using Amazon DynamoDB. Data is encrypted at rest and in transit.

Still have questions?

Reach us at support@buildensity.app and we'll get back to you within one business day.