Deals
All Deals
| Deal ID | Company | Request Type | Super admin | Location | Status | Source | Assigned To | Created | Updated | Actions |
|---|
No deals found
Get started by creating your first deal
Sales Rep Performance
Stores & conversion metrics use net-new store create stamps and paying orders only (excludes cancelled / incomplete).| Rep | Stores lifetime |
Stores period |
Approvals lifetime |
Approvals period |
Deals period |
Store conv % |
Order conv % |
Revenue lifetime |
Dormant % | Last seen |
|---|
Deal Funnel
Stages in the period. Final step = workflow approval or any paying order (excl. cancelled).Pipeline Aging
Open deals without a store, by days since last updateApproval Status
Latest approval request per deal Β· Changes requested (fixes needed) is separate from Rejected (customer declined)Trends
Daily activity across the selected periodStores created
Net-new by storeCreatedAt (HubSpot + manual)Deals opened
Manual vs HubSpotRevenue & orders
Paying orders only (excludes cancelled / incomplete)Days to first order
Median days to first paying order for net-new stores born that bucketInsights
Curated signals worth acting onπ Top performing stores
By revenue in periodβ οΈ Stores at risk
30+ days old, no orders in 14+ daysβ‘ Quick wins
Net-new stores (7d, stamped create date) awaiting approval β excludes JupiterβοΈ Changes requested
Live stores where the customer asked for changes (latest approval round)π Store count by status
Live BC stores onlyπ€ Lost pipeline
Rejected customer reviews (live stores) Β· deal marked lost Β· Idle pre-store deals stay under Stuck dealsπͺ Moved to Jupiter
Handed off to legacy Jupiterπ§ Stuck deals
Open pipeline β no BC store yet Β· no activity in 14+ daysπ― Rep activity today
Actions logged in the last 24hπ HubSpot sync health
Latest sync statusπ€ Droid coverage
Average designs configured per storeβ±οΈ Approval friction
Bounce rate + response timesOrder command center
Every synced BigCommerce order tied to a deal β revenue, fulfillment state, rep, and HubSpot in one place.
All orders
Use store and rep filters, then narrow with search (deal id, BC #, HubSpot, company, rep name or email). The date range filters on Ordered, not Synced. Tick rows to compute a batch that does not match a calendar range (shift-click for a run).
| BC # | Company / store | Deal | Total | Status | Ordered | Synced | Rep | HubSpot |
|---|
No orders match
Try widening the date range or clearing search / filters.
Bulk catalog orders
Orders placed from the product catalog rather than a team store, with the HubSpot Bulk Order deal each one produced.
All bulk orders
Catalog orders with no team store. Narrow with status, deal stage, or search, then export what you see.
| BC # | Placed | Customer | Total | Status | Deal stage | Deal |
|---|
No bulk orders match
Try widening the date range or clearing the filters.
Find order art & previews
Matches each order product to product_designs metadata, including stale fallback records.
Store Catalog Mode Log
Catalog creation, conversion, cleanup, synchronization, and revert runs.
| Started | Store | Operation | Status / Step | Correlation ID | Details |
|---|---|---|---|---|---|
| Loading... | |||||
Listing Themes
Compare real product-listing layouts, control card behavior, and publish immutable versions. Store branding colors are managed separately.
Activity Log
Search actions, stores, products, users, category IDs, details, and IP addresses.
| Time | User | Action | Entity | Details | IP |
|---|
No activities found
Try widening the dates or clearing filters.
User Management
| Name | Role | Status | Created | Actions |
|---|
No users found
Create your first user to get started
Product Templates
Predefined product sets per sport for company creation. When a deal has a sport, recommendations load from the matching template.
| Order | Name | Sport | Items | Sub Categories | Actions |
|---|
π₯ Import Templates from CSV
HubSpot Deal Sync
Deals are cached in the database. Sync from HubSpot to update the cache. When opening a deal, latest data is fetched from HubSpot.
Select which pipeline and stage to pull deals from when syncing.
Team Store form
Controls where new BigCommerce form submissions enter HubSpot. Later stage changes remain owned by HubSpot workflows.
One origin per line. Include scheme and hostname only; no page path.
Catalog defaults
Choose the starting architecture for new admin and self-service team stores. Admins can still override this for an individual store before creation.
HubSpot deal stages
Configure which HubSpot deal stage is set when a store is created and at each step of customer store approval. Leave approval steps blank to skip moving the deal for that event.
Select which HubSpot stage to set when a store/company is created from a deal.
Set which HubSpot deal stage to move deals to at each step of the customer approval process. Leave blank to skip that step.
Store close workflow
Set which HubSpot deal stages are used after a store closes, process due workflows, repair mismatches, and review scheduler status.
While disabled, perpetual stores keep the legacy check-sales behavior: no schedules activate, Create Batch and the backfill are blocked, and the storefront shows no countdown. Enable once the batch artifacts directory is on persistent storage.
Automatic batch creation has no separate bulk on/off switch anymore β once perpetual batching is enabled above, each store creates its own next batch automatically on its effective date (an override, if set, otherwise the scheduled date) unless that specific store's own "Automatically create batches for this store" checkbox (on its deal record) has been turned off. A store with no new orders yet is skipped, not failed. Manually creating a batch early always takes precedence β the schedule advances immediately, so automation simply moves on to the next date.
Activates batch schedules for existing perpetual stores from their first eligible sale. Idempotent β safe to run repeatedly; it never creates historical batches and never moves an existing schedule backwards. Start with a small limit, review the report, then run the full batch.
Store Email Base
Base email for auto-generated store emails. Format: stores+{dealId}@domain (e.g. stores+57941156920@areswear.com). When set, Store Email is hidden from the deal form for HubSpot deals and auto-generated.
Unsynced order notifications
Email these people when a new BigCommerce order fails to attach to a team store β usually because the order lines carry a broken Store Name marker such as null||undefined. Every failure is listed under Reports β Unsynced Orders whether or not an email goes out.
Sent from the order webhook, moments after the failed sync. Incomplete carts are ignored β they retry on their own when checkout finishes.
Comma or space separated. Everyone listed receives the same alert.
Product decoration costs
Amounts added on top of catalog/price-list base in the deal product list and product picker (from each productβs _ServiceType: print vs embroidery). These values are the appβs source of truth. When BigCommerce theme API access is enabled, use Sync from theme to copy Theme Editor β Theme Style β Products into this table.
Name and number apply only when the product has custom fields _ChargeNameFee / _ChargeNumberFee set to true.
Default DIM mascot art
Returned by organization APIs whenever a DIM record has no organization-specific mascot art. Uploading a replacement does not overwrite organization records.
HubSpot DIM ID sync
Writes the DIM/organization id onto the matching HubSpot company, so self-service promotion links can be built in HubSpot (?organizationId={{ company.dim_id }}). The target property comes from Field mapping → DIM Organization ID. A scan only decides; nothing reaches HubSpot until you approve it.
A scan reads HubSpot and decides; it writes nothing. Run the full scan once to clear the backlog, then leave it to the schedule.
Exact name, matching school level, and nothing known (city, state, or mascot) contradicting. One action writes them all.
Review the list first
On: stores created through self-service stamp dim_id immediately, and an hourly check picks up companies added or changed in HubSpot since the last full scan β certain matches are written without asking, uncertain ones still queue below. It does not work through the backlog; that is what "Scan all companies" is for.
Recently synced
Needs a decision
Companies the scan would not decide on its own. Each suggestion shows its mascot, artwork, city and state so you can tell the right record from a namesake β green means that signal matched the HubSpot company, red means it contradicted, grey means DIM does not have it.
| HubSpot company | Why it stopped | Suggested DIM organizations | Action |
|---|
Scan log
| When | Mode | Trigger | Scanned | Certain | Synced | Needs review | No match | Result |
|---|
Rep-assisted store creation
Lets sales reps build stores through the self-service flow against a HubSpot deal they already own. Rep-built stores appear in the normal deal list, not the self-service one.
While disabled, the rep session endpoint reports disabled, the rep API returns 403, /self-service/rep redirects back to the app, and the "Build store (guided)" action is hidden. The customer-facing flow is unaffected either way.
This gate guards updating a live sales deal. With it off, reps can still use the flow but only on the path that creates a fresh deal. It is re-checked when the store creation job runs, so turning it off stops in-flight submissions from touching a deal. Requires the gate above.
New deals created on the no-deal path use the same HubSpot pipeline, stage, and owner resolution as the existing self-service flow β there is nothing extra to configure here.
HubSpot Field Mapping
Map app deal form fields to HubSpot deal properties. Only mapped fields will be synced to HubSpot when updating deals. Deal data is always saved to the database.
| App Form Field | HubSpot Property | Sync |
|---|
Fundraising earned backfill
Recalculate lifetime fundraising from eligible BigCommerce orders and update the mapped HubSpot deal field for every current store. Save the mapping above first. Re-running is safe.
| Store | Deal ID | Category | Orders | Calculated fundraising | HubSpot sync | Details |
|---|
Each row is also written to the server log with the prefix [fundraising-sync].
Droid library (public API)
Configure where templates/graphics/sports are merged from (external API, internal Postgres library, or hybrid). When ARES_DROIDS_SOURCE is set in the environment, it overrides the database. Create API keys for storefronts or partners calling /droids-library/v1 with X-API-Key.
Library API keys
| Label | Prefix | Created | Last used | Status |
|---|
Backfill template color counts
Detects how many customer color slots each DIM droid template actually uses and updates metadata.colorCount. This probes the configured RenderApp renderer, so use dry run first and apply in batches.
-
Library source & renderer
ARES_DROIDS_API_URL to this + use an API key below):β
https://renderapp.doogma.com/. Leave blank to fall back to the DOOGMA_RENDERAPP_BASE_URL env var.Sync from external API
Pull selected data from droids.areswear.com into Postgres. Uses ARES_DROIDS_API_URL and ARES_DROIDS_API_KEY. May take several minutes.
Sync disabled: set ARES_DROIDS_API_KEY in the server environment.
If organizations or sports time out, the next sync resumes after the last row written (checkpoint in the database). Use the checkboxes below only when you want to start that list over from the beginning.
β
Backfill graphic sport metadata
Updates sport_name, sport_id, and metadata.sports / sport_names / sport_ids on external-mirror and imported graphics from short codes (e.g. BB β Baseball, BK β Basketball). Database only β no HTTP call to the droids API. Use dry run first on staging, then apply on production.
β
BigCommerce order webhooks
View hooks registered on the connected store, register Ares endpoints, and inspect NDJSON logs (includes request payloads for debugging). Logs are stored on the server under logs/order-webhooks.ndjson unless overridden by ORDER_WEBHOOK_LOG_PATH.
β| ID | Active | Scope | Destination |
|---|
Webhook call logs
β
BigCommerce cart webhooks
Feeds the abandoned cart campaigns (Promotion → Abandoned Cart). Cart activity is captured here; whether anything is emailed is decided on that page. BigCommerce requires an https:// destination.
| Scope | State | Destination |
|---|
App analytics
Manage first-party customer analytics, optional external reporting adapters, and the Gemini assistant used by Reports. Customer analytics excludes signed admin and sales-rep visits.
This is the only source currently used by the Web Analytics report.
Cart abandonment attribution
The server generates and encrypts the cart hashing secret. Its value is never returned to the browser. Replacing it prevents new events from matching carts hashed with the prior secret.
Gemini analytics assistant
The key is encrypted before database storage and is never returned to the browser. Leave it blank to keep the current key.
Store B2B company id in category meta
New stores automatically save the BigCommerce B2B company id to their main category meta (company_settings.b2b_company_id). Use this to backfill that value onto all existing stores. Only the company id is added β no other category meta is changed.
This scans every deal that has a store (a main category id and a B2B company id) and writes b2b_company_id into its category meta. Re-running is safe and idempotent.
Product Default Overlay Positions
Set default droid overlay positions per product per placement. These override hardcoded presets when no saved design exists.
| Image | Name | SKU | Placements | Actions |
|---|
