Skip to content
Personal WhatsApp

Personal WhatsApp

This is a preliminary companion integration, not the official WhatsApp Business API. It behaves as an additional linked device and may be affected by WhatsApp changes. Start with a separate test account and a controlled pilot.

Personal WhatsApp puts direct conversations into the shared EasyChat inbox. Operators get a dedicated filter and channel mark, can reply from web or Android, and see a read state when WhatsApp supplies exact evidence. The mark comes from the official WhatsApp Brand Assets package. In channel filters it stays neutral beside other sources and becomes green only when selected, hovered, or focused from the keyboard.

Server Requirements

  • PHP CLI 7.4 or newer;
  • CLI extensions curl, pdo_mysql and zlib;
  • system binaries timeout and nohup;
  • a separate once-per-minute cron job;
  • protected session storage outside the public web root.
  • outbound TLS connections to web.whatsapp.com:443, either directly or through the HTTP proxy selected for WhatsApp.

EasyChat verifies these requirements before sign-in and does not offer an unverified command. Internal locks handle overlapping runs; the protocol account lock uses MySQL, so the cron command does not need a system flock utility. Private files still require safe ownership and permissions. Protocol keys and state are encrypted on the installation; the QR payload is short-lived and belongs only to the current attempt. While an administrator scans the code, worker health checkpoints do not interrupt the active WhatsApp connection. If the phone already lists the linked device, EasyChat resumes that same attempt after a background worker interruption instead of requesting a new QR scan. On every later connection, EasyChat activates the linked device so WhatsApp can deliver queued and new messages; this does not require another QR scan.

Connect

  1. Open Integrations → Personal WhatsApp. The compact identity card keeps the personal account context visible while the current connection step remains the main focus.
  2. Copy the command from the black terminal block.
  3. Create a separate hosting task with schedule * * * * *.
  4. Select Check. Three consecutive minute-spaced runs confirm the schedule; a single manual run does not count as configured cron.
  5. Select Show QR.
  6. On the phone, open WhatsApp → Linked Devices → Link a Device and scan the code.

This is a second background job. Keep it alongside the main EasyChat cron, not instead of it. If it runs every few minutes or stops, the tab shows one concise warning. A healthy connection stays quiet. The open tab removes the warning automatically once minute-spaced runs are confirmed again.

Imported Data

WhatsApp may supply recent history after initial pairing. EasyChat accepts only the last 30 days, processes it gradually and does not notify operators about old messages. Repeated events are deduplicated.

Direct and group chats, text, images, video, audio and validated documents are supported. The exact set depends on what WhatsApp supplies. Operator replies can contain text and supported attachments.

If WhatsApp temporarily cannot provide a particular attachment, EasyChat keeps the available message text and continues receiving later conversations. One file does not stop the conversation queue.

Names, Avatars, Phone And Read State

A name or avatar may improve after a later profile or history event. EasyChat repairs the existing customer card rather than creating another conversation.

A phone number becomes confirmed only when the protocol supplies an evidenced PN/LID identity pair. A single phone-like identifier is not accepted as proof. If history contains conflicting pairs, EasyChat omits only that identity proof and continues importing the conversations and messages themselves.

Two ticks appear on an outbound message only in a direct conversation and only after an exact read or played event. Group receipts stay hidden because they do not prove that one specific customer saw the message. An open conversation applies the update automatically without a manual page refresh. The dedicated minute worker keeps the connection open long enough to accept a receipt that arrives after the network handshake.

AI And Safe Operation

Operator AI suggestions remain available. Unattended AI replies are disabled for preliminary personal WhatsApp so background automation does not add risk to the linked account.

History from a previously paired account remains readable, but EasyChat will not send into it from a different WhatsApp account. A linked device can be revoked from the phone at any time; EasyChat then requests a new sign-in.

Acceptance Check

  • Dedicated cron is confirmed as once per minute.
  • WhatsApp lists EasyChat as a linked device.
  • A new direct message appears without a manual page refresh.
  • Replies from web and Android arrive on the phone.
  • Reading the reply produces a read marker.
  • A group receipt is not presented as an exact customer read.

If the hosting provider blocks a direct WhatsApp connection, open Settings → Proxy, configure a trusted HTTP proxy, and enable only the WhatsApp route. EasyChat uses the same route for the reachability check and the protected WebSocket connection. Each background attempt remains bounded and fenced from an old worker. If the tab requests a fresh sign-in, check Linked Devices on the phone before creating a new QR.

If sign-in fails after scanning, support can inspect the private QR worker log on your server. It records the connection stage, elapsed time, WhatsApp disconnect code, and source location of an error. Database failures include SQLSTATE and a numeric driver code. These diagnostic records exclude QR codes, session keys, and conversations. Tell support when you tried to connect and your time zone. Starting a new attempt removes old logs, keeping at most 12 files from the last 24 hours.

Some hosts report different user IDs for PHP and the files it creates. EasyChat verifies filesystem ownership using an empty temporary file in the same private directory. You do not need to change permissions manually or move storage into the public directory. If the host prevents the file from being created, validated, or removed, the connection stops; support will need the attempt log.

On hosts with a short MySQL idle timeout, EasyChat keeps the background worker’s database connection alive and checks that it still owns the session lock. Global database settings remain unchanged. If the connection drops, the next cron run retries processing; the interruption alone does not require scanning another QR code.

Initial sync of a large address book uses batches with a fixed time budget. EasyChat can process up to 1,000 events per cycle, reducing the time new messages spend waiting behind contacts and history.

Last updated on