Platform Settings
#Overview
Settings (/super/settings) stores global configuration for the LawyerPara installation.
#Tabs
| Tab |
Purpose |
| General |
App name, support email, system info |
| AI / OpenAI |
API key, model, base URL, tests |
| WhatsApp |
Platform WhatsApp credentials |
| Payments |
Stripe keys for automatic subscription billing, optional LigdiCash keys for paying subscription invoices by mobile money, and a pointer to the client payment gateways |
| Email (SMTP) |
Outbound mail server |
#Marketing jurisdiction policy
Marketing (/super/marketing) has a Jurisdiction policy tab with one rule per country or region. Cold email and direct mail are allowed only by an approved, unexpired rule. A missing rule never enables them, and a rule with the module switched off blocks the Marketing page for firms in that jurisdiction (India ships switched off).
- Create or edit a rule: label texts, retention years, allowed channels and the official source.
- Approve a rule: needs the official source, the review date, a due date of today or later, and the legal-confirmation tick.
- Changing any reviewed field clears the approval, so the rule must be approved again.
- Revoke a rule at any time to block the channels again.
Four new secret keys (thanks.io, geocoder and Google Places) are stored with the other platform secrets.
#Marketing usage and data sources
The same Marketing page has two more tabs.
Usage shows every firm's marketing allowances for the month (lead searches, new leads, campaigns, campaign emails, postcards). Filter by firms near or at their limit. Grant bonus adds extra quota to one allowance for the current month only; a reason is required, it is written to the audit log and the firm administrators are notified. The bonus is shown beside the plan limit and disappears next month.
Data sources shows the places directory used by Leads Finder: the imported release, the number of open businesses by country, how many have a website, phone or email per target group, and the email-enrichment queue. It also holds the optional Google Places API key (with a daily lookup cap per firm, 0 to 1000, zero turns lookups off) and the address-search provider (Nominatim by default, or Google with its own key).
The directory is filled from the command line, not the browser. Export a country with DuckDB, then import the file:
INSTALL spatial; LOAD spatial; INSTALL httpfs; LOAD httpfs;
COPY (SELECT id, names, categories, confidence, websites, socials, emails, phones, addresses, operating_status,
ST_X(geometry) AS lon, ST_Y(geometry) AS lat
FROM read_parquet('s3://overturemaps-us-west-2/release/<release>/theme=places/type=place/*', hive_partitioning=1)
WHERE addresses[1].country = 'US')
TO 'places-us.ndjson' (FORMAT JSON);
php artisan places:import US 2026-09-17.0 --path=places-us.ndjson
Use the release you queried in place of <release>, and the country code in both the query and the command. Re-running with a newer release updates rows in place. The scheduler must be running (php artisan schedule:run every minute), because marketing:enrich runs from it every five minutes.
#Workflow
- After install, open Settings.
- Configure SMTP and run Test SMTP.
- Configure OpenAI if AI features are sold.
- Add WhatsApp credentials if inbox messaging is required.
- Save each tab before leaving.
#Notes
#Best Practices
- Never commit secrets to git. Store them in Settings or
.env.
- Re-test SMTP after server moves.