Loading...

Statistics

Platform overview

Live numbers across all of iCarry Flow: users, organizations, optimizations and operational volumes. Filter by user or period to narrow jobs.

Pick a user (or all) and apply filters on optimizations. User/org census stays platform-wide.

Loading...

View and edit all system users

Username Email Tenant Plan Status Role Admin Created Plan expires Actions

Create User

Blocked Algorithms

Manage Subscriptions

Tier Configurations

Public pricing page

Limits and prices you edit here are served by the public API used on /pricing. After changing amounts, confirm Stripe checkout matches using the checker in the Stripe section below.

Open pricing page in new tab

When you change prices shown on the site, align Stripe Price IDs (above) or update tier display prices so they match what Stripe charges.

TracerDue drivers (driver app)

Drivers listed here can access the TracerDue app (login with the linked user). Link a tenant user to enable access. Live map: Open live map.

Driver name License plate Driver ID Linked user (app login) Actions

Add driver

Create a driver and optionally link them to an existing user to allow TracerDue app login.

Only users with a linked account can log in to the app.

Free plan on pricing

Switch on: the Free plan is visible on the pricing page and new signups stay on the free plan.

Switch off: the Free plan is hidden. New accounts pick Starter or Pro (14-day trial). Existing Free accounts stay as they are.

Maintenance popup

Show a full-screen notice on login, app, account, and registration. It does not appear on this admin page.

When off, users do not see the notice.

Italian text

Other languages

Filled by Auto-translate; you can edit them before saving.

AI Wizard / Provider

Configure the text Wizard and, if needed, a separate provider/model for OCR on delivery-list photos (one-driver mode). Fill in the API keys required for your chosen providers (Wizard and OCR can differ).

Wizard (text)

Prices are indicative (per 1M tokens, from provider docs).

OCR / photo lists (one-driver)

Used to extract addresses from screenshots or photos. If inherited, the Wizard provider and model are used.

Pick a vision-capable model (e.g. gpt-4o-mini on OpenAI).

API keys

Only the keys you need are shown: if the Wizard uses Groq and OCR uses OpenAI (or the reverse), enter both. Leave blank to keep an existing saved key.

Leave blank to keep the existing key.
Leave blank to keep the existing key.

Home facts (Did you know?)

Curiosity and motivational lines shown on the home page. One sentence per line; keep the same ideas aligned across the five languages. If empty, the home uses the default sentences from the translation files.

Generate with AI

Uses the provider and model from AI Settings. Proposals are appended to the textareas: review them, then save.

Electric charging override (€/kWh)

Optional. When set, forces the AC/DC prices shown on the home page instead of the monthly Adiconsum scrape. Clear both and save «Clear» to use live data only.

Site URL (OAuth & Redirects)

Base URL of the application. Used for OAuth callbacks (Google, GitHub, etc.) and Stripe redirects. Must match the URL in your OAuth provider console.

Example: https://flow.icarry.it (no trailing slash)

OAuth / Social Login

Configure Google, GitHub, Microsoft and Apple sign-in. Only visible to superadmins.

GEL Proximity

Credentials, webhook security token, and environment for GEL Proximity (pickup points and status webhooks). Super admin only.

Leave blank to keep existing value
Leave blank to keep existing value
From GEL admin: sent in webhook request header. If set (here or GEL_WEBHOOK_TOKEN env), requests without a matching header are rejected. Leave blank to disable verification.
When enabled, the GEL Pickup Points service will be available on the map. Default is off.
Leave empty to sync all GEL points in Italy. Or comma-separated CAP codes (e.g. 20125, 20100).

ShiftUp (workforce scheduling)

Per-tenant ShiftUp credentials (roster and shifts). Super admin only.

E.g. https://shiftup-demo.icarry.io/api/v1
Leave blank to keep the existing value
HMAC secret from ShiftUp onboarding. Leave blank to keep the existing value. Required to accept webhooks.
Copy this URL into ShiftUp webhook settings.
Optional. Leave off to use live ShiftUp APIs (x-api-key). Enable only for offline tests without calling ShiftUp.
Force enable/member limit for this tenant, regardless of plan.

Stripe (payments)

Stripe API keys and Price IDs for Flow One, Starter and Pro. Used for subscription checkout and webhooks.

Checkout always uses Stripe Prices. Keep Price IDs and the display amounts in tier configuration in sync; run the alignment check below after changes.

Leave blank to keep existing value
Leave blank to keep existing value
Price IDs from Stripe Dashboard (Products → Prices). E.g. price_1ABC...
Recurring checkout for the Flow One single-courier plan. Create a dedicated Stripe price for each billing period.

SMTP email

Configure SMTP to send team invitations (and other system emails).

Leave blank to keep the saved password.

PostHog (analytics)

EU product analytics (UI funnels). The project API key (phc_…) is public by design and used in the browser.

Usually https://eu.posthog.com
Starts with phc_. Leave blank to keep the saved key.
Off by default. Records the screen (inputs masked unless unmask is on). More invasive and costly.
By default replay masks text and attributes (asterisks). When enabled, later sessions show addresses, notes, tracking and UI text. Passwords stay masked. Applies only to new recordings.

Referral program

Invite, reward, grow

Configure bonus months, when they fire, and how Stripe applies credits—kept separate from the rest of admin settings.

Sign-up links with ?ref= set a cookie: match cookie domain and Stripe mode to your checkout. Coupon mode requires the coupon ID from Stripe.

Rules & rewards

Trigger, volumes, and safety limits.

mo
mo
Sets which monthly price is used for Stripe customer balance and which limits apply in DB-only mode for free users. Coupon-on-subscription mode uses the coupon’s offer, not this setting.
Leave empty for unlimited. Counts successful referral events, not months.
Upper bound on the sum of months ever credited to the inviter across successful referrals. Beyond this, the inviter gets no more months (the invitee can still get theirs if configured). Empty = unlimited. Use this to avoid e.g. 100 invites = 100 free months.

Stripe & cookie

Cross-subdomain cookie and how Stripe records rewards.

Required for coupon mode; create the coupon in the Stripe Dashboard.

Referral history

Recorded events: bonus months for inviter and new user, payout trigger, status, and errors.

ID Date Outcome Trigger Inviter New user Months (inv. / new) Reward vs account plan Stripe / event ID Notes / error

External service URLs

Base URLs for geocoding, routing (GraphHopper) and Valhalla. Leave empty to use default (e.g. geo.icarry.it).

Base URL for search and reverse geocoding (e.g. https://geo.icarry.it)
Host only, no https (e.g. graph.icarry.it)
Full URL for Valhalla routing (e.g. https://valhalla.icarry.it)
SERVER key (no HTTP referer restriction; prefer IP restriction). Used as fallback when Nominatim is imprecise. Leave empty for GOOGLE_MAPS_API_KEY / browser default (frontend only).

Geocoding

Coordinate cache & Google spend

Control what gets stored, inspect cached addresses, and monitor Google Geocoding calls that hit the server key.

Checking Google key… Hit flush: not run yet

Coordinate cache

Choose which results to store and reuse. Providers stay enabled when storage is off.

Address cache

Find a cached address by prefix, then reset a bad row so it is resolved again.

Customer pins

Enterprise pins: capture, sharing and quality.

Google Geocoding requests

Places, Place Details and maps run in the browser and only appear in Google Cloud Console.

Last 90 days

Google calls Avoided (cache)

Google request log

Filter and export server-side Geocoding API calls (not browser Places/Maps).

Integrations

TMS / ERP integrations

Connect each customer's n8n converter to Flow: save the webhook URL and choose who can use it in the wizard.

How to add or update an integration
  1. 1
    Build the converter in n8n

    Open n8n.icarry.it and create (or open) the customer's workflow. Use a listening Webhook node. Copy only the production URL, like https://n8n.icarry.it/webhook/customer-name. Do not use the test URL.

  2. 2
    Optional password (secret)

    To lock the webhook: invent a password, save it in the Secret field below, and on the same n8n Webhook node add header X-Flow-Integration-Secret with the same value. Leave the field empty to keep the webhook open to anyone who knows the URL.

  3. 3
    Register the integration in Flow

    Do not copy the HTML pages under integrazioni-tms-erp. Add integrations/customer-name/manifest.json (title, description, file extensions, optional fields), deploy, then this list shows a new card: paste the URL, save, and enable users.

Flow One support (CRM chat)

chat-api.php base URL and OmniChannel webform webhook URL (EspoCRM). The webhook secret path segment is masked after save. Empty fields in Admin fall back to environment variables if set.

Example: https://crm.icarry.it/chat-api.php
Copy from EspoCRM OmniChannel admin (includes token in path).

Console FAQ (Control Tower)

Questions and answers for the console FAQ popup. The slug (e.g. reorder) opens that item from code. If nothing is saved, the console uses the default seed.

Translation overrides

Override default translation strings per locale. Changes apply site-wide. Leave value empty and save to remove an override.

Click a row to load key and value, then edit and save.
Leave empty and save to restore the default from the locale file.

Code map

Conceptual system map

Live codebase building blocks: what they do and how they connect. Not a dump of every file (trial, release, archive, and test scripts are omitted).