mirror of
https://github.com/Luchexx/wacrm.git
synced 2026-11-02 09:19:51 +00:00
Merge pull request #85 from ArnasDon/chore/whatsapp-trademark-symbol
chore: add WhatsApp® on first mention across user-facing surfaces
This commit is contained in:
commit
280e5b8cd9
@ -1,6 +1,6 @@
|
||||
# CRM Template for WhatsApp
|
||||
|
||||
> Self-hostable CRM template for WhatsApp — shared inbox, contacts,
|
||||
> Self-hostable CRM template for WhatsApp® — shared inbox, contacts,
|
||||
> sales pipelines, broadcasts, and no-code automations. Fork it, brand
|
||||
> it, host it.
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Documentation
|
||||
|
||||
A self-hostable CRM template for WhatsApp built on Next.js and Supabase.
|
||||
A self-hostable CRM template for WhatsApp® built on Next.js and Supabase.
|
||||
These docs walk you from a freshly forked repo to a production deploy.
|
||||
|
||||
## Reading order
|
||||
|
||||
@ -10,7 +10,7 @@ want to change something in your fork.
|
||||
| Rendering | **Next.js 16** (App Router) | Server components for data-fetch pages; client components where interactivity's needed. React 19. |
|
||||
| UI | **Tailwind v4** + **shadcn/base-ui** primitives | Tailwind's zero-runtime styling, shadcn patterns for composable, dark-theme-first components. |
|
||||
| Data + Auth | **Supabase** | Postgres with Row-Level Security, built-in email/password auth, Storage for avatars, Realtime for the inbox. |
|
||||
| WhatsApp | **Meta Cloud API** | Official Business API. No third-party gateway. |
|
||||
| WhatsApp® | **Meta Cloud API** | Official Business API. No third-party gateway. |
|
||||
| Encryption | `node:crypto` AES-256-GCM | Per-user WhatsApp access + verify tokens at rest. |
|
||||
| Scheduler | External HTTP pinger | Hits `GET /api/automations/cron` to drain Wait-step executions. |
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Automations cron
|
||||
|
||||
The **Automations** module lets you build flows that react to WhatsApp
|
||||
The **Automations** module lets you build flows that react to WhatsApp®
|
||||
events (new message, new contact, keyword match, schedule, etc.). Most
|
||||
steps run inline — the exception is the **Wait** step, which parks the
|
||||
execution in `automation_pending_executions` until its due time.
|
||||
|
||||
@ -101,7 +101,7 @@ plain-HTTP version.
|
||||
|
||||
## 7. Update the Meta webhook
|
||||
|
||||
Back in **Meta for Developers → WhatsApp → Configuration**, change the
|
||||
Back in **Meta for Developers → WhatsApp® → Configuration**, change the
|
||||
callback URL to `https://<your-domain>/api/whatsapp/webhook` and re-verify.
|
||||
|
||||
## 8. Schedule the automations cron
|
||||
|
||||
@ -56,7 +56,7 @@ AUTOMATION_CRON_SECRET=generate-a-long-random-string
|
||||
- Rotate `SUPABASE_SERVICE_ROLE_KEY` if it leaks — Supabase lets you
|
||||
regenerate it under Project Settings → API.
|
||||
- Treat `ENCRYPTION_KEY` like a database master key. Losing it means
|
||||
connected WhatsApp accounts must reconnect; rotating it means the same.
|
||||
connected WhatsApp® accounts must reconnect; rotating it means the same.
|
||||
|
||||
## Next step
|
||||
|
||||
|
||||
@ -30,7 +30,7 @@ cp .env.local.example .env.local
|
||||
|
||||
You cannot run `npm run dev` until **at least** `NEXT_PUBLIC_SUPABASE_URL`
|
||||
and `NEXT_PUBLIC_SUPABASE_ANON_KEY` are set. You need the full Supabase
|
||||
setup before WhatsApp features will work, so do that next.
|
||||
setup before WhatsApp® features will work, so do that next.
|
||||
|
||||
## 4. Set up Supabase
|
||||
|
||||
|
||||
@ -74,7 +74,7 @@ emails link back correctly.
|
||||
|
||||
## 6. (Optional) Storage
|
||||
|
||||
The app downloads WhatsApp media through Meta's `/download` endpoint and
|
||||
The app downloads WhatsApp® media through Meta's `/download` endpoint and
|
||||
currently relays it on demand rather than caching it in Supabase Storage.
|
||||
No bucket setup is required for a default install.
|
||||
|
||||
|
||||
@ -41,7 +41,7 @@ In Supabase → **Authentication → Providers → Email**, either:
|
||||
Set `NEXT_PUBLIC_SITE_URL` **and** add the same origin to Supabase →
|
||||
**Authentication → URL Configuration → Redirect URLs**.
|
||||
|
||||
## WhatsApp
|
||||
## WhatsApp®
|
||||
|
||||
### Webhook verification fails in Meta
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# WhatsApp setup
|
||||
|
||||
This template talks to the official **WhatsApp Business Cloud API** (Meta). Each
|
||||
This template talks to the official **WhatsApp® Business Cloud API** (Meta). Each
|
||||
account stores its own `phone_number_id`, `waba_id`, and encrypted
|
||||
`access_token` — there is no shared app-level token. This page walks
|
||||
through getting those values and wiring the webhook.
|
||||
|
||||
@ -159,7 +159,7 @@ export default function AutomationsPage() {
|
||||
<div>
|
||||
<h1 className="text-2xl font-bold text-white">Automations</h1>
|
||||
<p className="mt-1 text-sm text-slate-400">
|
||||
Build workflows that react to WhatsApp events automatically.
|
||||
Build workflows that react to WhatsApp® events automatically.
|
||||
</p>
|
||||
</div>
|
||||
<Button
|
||||
|
||||
@ -271,7 +271,7 @@ export default function InboxPage() {
|
||||
<div className="flex shrink-0 items-center justify-center gap-2 border-b border-amber-500/20 bg-amber-500/10 px-4 py-2">
|
||||
<WifiOff className="h-4 w-4 text-amber-400" />
|
||||
<p className="text-xs text-amber-400">
|
||||
WhatsApp is not connected. Go to Settings to connect your account.
|
||||
WhatsApp® is not connected. Go to Settings to connect your account.
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
|
||||
@ -39,7 +39,7 @@ export default function SettingsPage() {
|
||||
<div>
|
||||
<h1 className="text-2xl font-bold text-white">Settings</h1>
|
||||
<p className="text-sm text-slate-400 mt-1">
|
||||
Manage your profile, WhatsApp integration, message templates, and
|
||||
Manage your profile, WhatsApp® integration, message templates, and
|
||||
tags.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@ -77,7 +77,7 @@ export default async function Image() {
|
||||
maxWidth: 1000,
|
||||
}}
|
||||
>
|
||||
<span>Run your WhatsApp business from </span>
|
||||
<span>Run your WhatsApp® business from </span>
|
||||
<span style={{ color: '#a78bfa' }}>one inbox.</span>
|
||||
</div>
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ export function Hero() {
|
||||
<div>
|
||||
<div className="inline-flex items-center gap-2 rounded-full border border-slate-800 bg-slate-900/60 px-3 py-1 text-xs text-slate-300">
|
||||
<ShieldCheck className="h-3.5 w-3.5 text-violet-400" />
|
||||
Built on the official WhatsApp Business API
|
||||
Built on the official WhatsApp® Business API
|
||||
</div>
|
||||
|
||||
<h1 className="mt-5 text-4xl font-bold tracking-tight text-white sm:text-5xl lg:text-6xl">
|
||||
|
||||
@ -11,11 +11,11 @@ export const SITE_URL =
|
||||
|
||||
export const SITE_NAME = 'CRM Template for WhatsApp'
|
||||
|
||||
export const SITE_TAGLINE = 'Run your WhatsApp business from one inbox'
|
||||
export const SITE_TAGLINE = 'Run your WhatsApp® business from one inbox'
|
||||
|
||||
/** Default description — reused by layout metadata and structured data. */
|
||||
export const SITE_DESCRIPTION =
|
||||
'A CRM template for WhatsApp built for small teams: shared inbox, contact hub, sales pipelines, broadcasts, and no-code automations — built on the official WhatsApp Business API.'
|
||||
'A CRM template for WhatsApp® built for small teams: shared inbox, contact hub, sales pipelines, broadcasts, and no-code automations — built on the official WhatsApp Business API.'
|
||||
|
||||
/**
|
||||
* Keyword targets. Search engines largely ignore the meta keywords
|
||||
|
||||
Loading…
Reference in New Issue
Block a user