Comprehensive zero-to-hero manual for developers: From registering Business Portals and creating Developer Apps, to generating Permanent Access Tokens, submitting for App Reviews, configuring Webhooks, and connecting with CtrlTasq.
Direct integration with Meta Graph API for official message templates, green badge support, automated drip triggers, and incoming message webhooks.
Before touching the API, you must have a registered Meta Business Account:
CtrlTasq WhatsApp Gateway), enter your contact email, and select your Meta Business Account.104829102938192) → Copy this.102938475610293) → Copy this.ctrltasq-api-user, Role: Admin → Click Create System User.https://ctrltasq.com/whatsapp/webhookCtrlTasq_Verify_Secure_2026).messages → Click Subscribe.Log in to CtrlTasq → Navigate to WhatsApp Suite > Connect & API Hub (or /whatsapp-business):
When a customer sends a WhatsApp message, the webhook payload is ingested and processed through the following architectural pipeline:
POST /whatsapp/webhook payload parsed for entry[0].changes[0].value.messages[0].phone_number_id is matched against user_social_accounts (or platform_api_config) to identify the specific user tenant.tbl_wa_chatbots (matching exact words, comma-separated triggers, or default catch-all).POST https://graph.facebook.com/v19.0/{PHONE_NUMBER_ID}/messages request is dispatched with the bot's configured reply text, quick-reply buttons, or dynamic links.tbl_wa_messages.tbl_wa_contacts.crm_leads and assigned to the user's active sales pipeline!Allow external client websites (WordPress, Shopify, Webflow, custom HTML) to integrate with your Ctrl TASQ WhatsApp chatbot engine. When website visitors click the floating widget, it initiates a User-Initiated Conversation with a pre-filled trigger keyword, automatically granting opt-in consent and opening a free 24-hour interactive service session.
| Attribute | Required | Default | Description |
|---|---|---|---|
data-phone |
Yes | - |
Meta WABA phone number (country code + number without symbols, e.g. 919876543210). |
data-trigger |
No | hi |
Pre-filled trigger text sent by visitor that launches the corresponding bot flow or blueprint. |
data-title |
No | Chat with Us |
Card header title. |
data-subtitle |
No | Online • Replies instantly ⚡ |
Sub-header status badge. |
data-greeting |
No | 👋 Hi there! How can we assist you today? ... |
Teaser message displayed inside popup before opening WhatsApp. |
data-color |
No | #25D366 |
Brand theme color hex code. |
data-position |
No | right |
Floating button dock alignment (right or left). |
wa.me protocol, the interaction complies with Meta Business messaging policies and GDPR explicit opt-in requirements. The incoming message opens a 24-hour free customer care window where all interactive bot buttons, menus, and flow nodes operate without requiring paid template message pre-approvals.
POST https://graph.facebook.com/v19.0/{PHONE_NUMBER_ID}/register with body {"messaging_product":"whatsapp","pin":"123456"}.
/omnichannel/billing to top up credits without navigating Meta developer menus.
Complete integration guide for Meta Commerce Manager catalogs, Server-to-Server System User Token management, 1-click WhatsApp storefront linking, and passing Meta App Review.
Unlike consumer Facebook Login apps, CtrlTasq Catalog Integration operates as a robust Server-to-Server (S2S) Architecture. Business accounts authenticate via a permanent System User Access Token generated in Meta Business Suite. All catalog mutations (Product Add, Edit, Delete, Stock Update) and WhatsApp Storefront associations are executed securely server-side via Meta Graph API (v22.0).
CtrlTasq Main Catalog).ctrltasq-catalog-user → Role: Admin.CtrlTasq's CatalogController.php executes standard Graph API v22.0 requests:
| Operation | HTTP Method & Endpoint | Key Parameters / Payload |
|---|---|---|
| Fetch Products | GET /v22.0/{catalog_id}/products |
fields=id,name,description,price,currency,retailer_id,image_url,url,availability,condition |
| Add / Sync Item | POST /v22.0/{catalog_id}/products |
name, description, price (in cents), currency, retailer_id, url, link, image_url, availability, condition |
| Update Item | POST /v22.0/{product_id} |
name, price, description, url, availability ('in stock' / 'out of stock') |
| Delete Item | DELETE /v22.0/{product_id} |
access_token |
| Link to WhatsApp | POST /v22.0/{phone_number_id}/whatsapp_commerce_settings |
is_cart_enabled=true, is_catalog_visible=true, access_token |
CtrlTasq features a universal extractor that crawls websites and transforms raw HTML or JSON APIs into Meta-ready catalog items:
findPaginationUrls() inspects pagination DOM elements (.pagination a, .page-link, ?page=N) and automatically crawls pages 1 through N, merging and deduplicating up to 100+ items across the entire website catalog in a single click.
extractDynamicPortalData() detects client-side rendered portals (e.g. MyAssetsHub, Next.js __NEXT_DATA__) and executes direct subrequests to internal JSON endpoints (/listing and /services) to extract complete structured records including real estate specs and consultant credentials.
extractBestLinkFromNode() scores anchor tags inside repeating cards. It prioritizes eye icons (<i class="fa fa-eye">), "View Details" / "Book Now" buttons, and title anchors while filtering out wishlist triggers (#), category links, and social shares.
Meta Graph API requires url for the clickable Product Link attribute and integer cents for price. Items without a fixed price are mapped to nominal ₹1 (100 cents) with "Price: Contact Us / Ask for Quote" prepended to the description.
How CtrlTasq chatbots and live chats dispatch native interactive catalog messages via WhatsApp Cloud API:
When a user clicks "Sync & Link Catalog to WhatsApp" on /catalog, CtrlTasq performs a dual-binding pipeline:
POST https://graph.facebook.com/v22.0/{phone_number_id}/whatsapp_commerce_settings enabling is_cart_enabled and is_catalog_visible.POST https://graph.facebook.com/v22.0/{waba_id}/whatsapp_commerce_settings with catalog_id to attach the catalog to the WABA portfolio.1. How will your app use catalog_management?
2. Note to Reviewer (Server-to-Server System User Token Notice - CRITICAL):
3. Screencast Video Recording Script (2-3 Minutes):
https://ctrltasq.com/login and log into the test account./catalog/setup. Show Catalog ID and System User Token input fields. Click "Sync & Link Catalog to WhatsApp" to show the live green badge./catalog. Click "Add Product", enter title (e.g. "Denim Jacket"), price (₹1,499), description, and upload an image. Click Save.catalog_management scope or the system user has not been granted Asset permissions to the catalog in Business Settings.50000). CtrlTasq handles this multiplication automatically./catalog/setup belongs to the same Meta Business Portfolio that owns the System User.is_catalog_visible=true and is_cart_enabled=true are sent to /{phone_number_id}/whatsapp_commerce_settings, and the WhatsApp phone number is verified.Feed publishing, media upload, native scheduling, and insight analytics for Facebook Business Pages and Administered Groups.
| # | Prerequisite | How to verify |
|---|---|---|
| 1 | Facebook Business Page exists | Go to facebook.com/pages — confirm you see at least 1 Page listed. If not, create one at facebook.com/pages/create. |
| 2 | You have Admin/Content access | Open your Page → Settings → Page Access → confirm your account is listed with Full Control or Content creation access. |
| 3 | Meta App Roles (if in Dev Mode) | Go to developers.facebook.com → Your App → App Roles → Roles → ensure your Facebook user account is added as Admin, Developer, or Tester. |
CtrlTasq Social Hub) and link your Business Account.https://ctrltasq.com/social/callbackAlways include auth_type: 'rerequest' in the authorization dialog params. Without this parameter, Meta caches previous grants and silently skips the "Which Pages do you want to use?" dialog on subsequent connections.
auth_type=rerequest or having the user remove the app in Facebook Settings > Business Integrations./social/connect/facebook.Instagram Graph API setup for feed posts, carousel albums, reels, and analytics.
https://ctrltasq.com/social/callback.Publishing to corporate organization feeds, showcase pages, and corporate engagement analytics.
Publishing thought leadership posts, articles, and media to personal LinkedIn member feeds.
https://ctrltasq.com/social/callbackPosting tweets, threads, media attachments, and automated dispatch via X API v2.
https://ctrltasq.com/social/callbackhttps://ctrltasq.comNo approval delay. Direct bot token generation via Telegram BotFather.
@BotFather./newbot.CtrlTasq Notifier) and username ending in bot (e.g. ctrltasq_notifier_bot).7123456789:AAFlxyz.../social, enter the Bot Token and Channel Handle (e.g. @mychannel).Creating pins, syncing boards, media upload, and platform-side scheduling.
https://ctrltasq.com/social/callback.Uploading YouTube Shorts, scheduling video broadcasts, and analytics.
YouTube Data API v3.https://ctrltasq.com/social/callbackPublish local business updates, promotional offers, event announcements, and call-to-action buttons directly to Google Maps and Google Search listings.
| Content Type | Requirements & Best Practices | Example |
|---|---|---|
| Post Description / Text | • 100 to 1,500 characters. • Clear message with news, offers, updates, or announcements. |
"We are excited to launch our new AI automation tools! Visit our website to explore features." |
| Images (Photos) | • Format: JPG or PNG. • Recommended size: 720px × 540px (4:3 aspect ratio, min 250×250). • File size: between 10 KB and 5 MB. • Must be clear, high-quality, and relevant to the business. |
Storefront photo, promotional banner, product photo, service flyer. |
| Videos | • Format: MP4, MOV, AVI, etc. • Length: up to 30 seconds. • Resolution: 720p or higher. • File size: up to 75 MB. |
15–30 sec product demo, facility tour, announcement video. |
| Call to Action (CTA Button) | • Direct link button displayed under the post on Google Maps. • Button types: BOOK, ORDER, SHOP, LEARN_MORE, SIGN_UP, CALL.• Requires a valid destination URL (e.g. https://yourwebsite.com/booking). |
Button: Learn More URL: https://ctrltasq.com/pricing |
Create or select a Google Cloud Project in Google Cloud Console:
CtrlTasq Business Hub) or select an existing project.Set up the consent screen so users and admins can authorize their Google accounts:
CtrlTasq Marketing Automationctrltasq.comGenerate the Client ID and Client Secret for secure OAuth 2.0 handshake:
Web applicationCtrlTasq GMB Web Clienthttps://ctrltasq.comSave your API keys so users can connect their Google Business Profile seamlessly:
/admin/platform-api).google_my_business./social/createPost), check Google Business, write your update, choose an action button (e.g. Learn More or Call), and click Post Now or Schedule!Business Profile Performance API and My Business Account Management API are enabled in the Google Cloud Console.Snapchat Creative Kit, Bluesky AT Protocol, and Mastodon ActivityPub posting.
https://ctrltasq.com/social/callback.Bluesky generates App Passwords via bsky.app/settings/app-passwords. Mastodon generates user tokens via instance OAuth.
Enterprise API specifications for Platform Support (Tier 1), End-Customer WhatsApp Ingestion (Tier 2), Dual-Mode Reply, SLA Timers, and Audio Voice Memos.
Ctrl TASQ separates ticketing operations into two specialized tiers sharing a unified database schema:
Ctrl TASQ Business User ↔ Super Admin Support Team.
/ticket or /support/admin/tickets & /admin/ticket/view/{id}Ctrl TASQ Business User ↔ Their End WhatsApp Customers.
complaint, refund, urgent, brokenSubmits a new ticket with optional file and in-browser voice memo attachments.
POST/ticket/ajax-create
Adds a response to an active ticket. Supports text, audio voice recording, and file attachments.
POST/ticket/ajax-reply
Retrieves ticket metadata, SLA aging status, and full conversation timeline.
GET/ticket/ajax-details/{id}
1-Click ingestion endpoint triggered directly from the WhatsApp Inbox chat bubble or automated webhook.
POST/whatsapp-business/convert-to-ticket
The Meta Webhook handler (/whatsapp/webhook) executes real-time intelligence on incoming customer messages:
| Trigger | Condition | System Action |
|---|---|---|
| Keyword Triage | Message contains complaint, refund, urgent, broken, or not working |
Auto-spawns a High Priority ticket assigned to active agents via Round-Robin. Dispatches WhatsApp confirmation to customer. |
| Emoji Reaction | Agent reacts to customer message with 🎫 | Spawns tracked ticket linked to contact and message bubble. |
| Two-Way Sync | Customer replies to WhatsApp notification: "Hi, regarding ticket #TCK-..." | Extracts ticket number, appends reply to ticket thread, sets status to Awaiting User Reply, and notifies assigned agent. |
is_internal_note = 1): Highlighted in amber/yellow. Strictly visible only to Super Admins and Agents. Supports @AgentName team tagging.audio/webm or audio/mp3. Verify PHP upload_max_filesize >= 25M and post_max_size >= 32M in your php.ini./uploads/tickets/voice_*. Ensure the folder has write permissions (chmod 775).EmailService. Configure SMTP credentials in app/Config/Email.php or the Super Admin General Settings.