Local Agent

WhatsApp Automation — Directly From Your Server or Local Network

Rasayily Local Agent is a Laravel web application you install on any server, hosting, or local machine. It connects to the main platform and sends WhatsApp messages automatically — without exposing your internal systems to the public internet.

PHP 8+
Laravel
Any Server / Hosting
Local Network Support
Rasayily Local Agent ● Running
📁 Sync Folder — Auto Send
966501234567_invoice.pdf Sent
971502345678_offer.jpg Sending
966509876543_report.pdf Queued
📌 Recommended Format: {number}_{message}.{ext}
🧠 If no number is in the filename, the system automatically tries reading it from inside the file.
Every message tracked by status
Manual review when unsure
Instant alert on failure

Everything Local Agent Can Do

A powerful bridge between your local systems and Rasayily — works on any server, hosting, or local machine inside your network.

Smart Auto-Send Folder

Drop any file in the sync folder — its name just needs the phone number anywhere in it, e.g. 966501234567_Hello.pdf. The system scans the folder every minute and sends files automatically via Rasayily to the specified number.

Reading the Phone Number From Inside the File

If the filename has no phone number, the system opens the file's content and searches inside it: reading PDF and Word text directly, and using OCR (Arabic and English) to read scanned images or pages — instead of rejecting the file outright.

Duplicate Detection & Learning From Your Decisions

If an incoming file matches one already sent to the same number recently, or its extracted number is low-confidence, the file is held for manual review instead of being sent blindly. Repeated approvals of the same pattern teach the system to skip manual review for that case going forward.

Contact Sync

Upload contacts from Local Agent and they sync automatically with the main Rasayily platform — no manual import or data duplication.

Send & Receive via Webhook (Fixed IP)

If your local machine has a fixed IP address, enter it in the Webhook settings in your company profile — Local Agent will receive any incoming or outgoing message directly from the main platform.

Local Customer Service

If your local machine has a fixed IP, Local Agent can serve as a customer service extension — receive and reply to conversations directly from within your internal network.

Runs on Any Environment

Since it's a Laravel web application, it runs on any hosting, server, or local machine. Sending and receiving work on any OS with no restrictions; Smart Printing specifically is built and tested on Windows (it talks directly to local Windows printers).

Internal Network Access

If the system runs on a local machine without a public IP, any device on the same network can access and use it — ideal for organizations operating on a closed internal network.

Connect Multiple Printers With Smart Routing Rules

Connect more than one printer to the same system, and set a routing rule for each: auto-print any file arriving from a specific phone number, when a specific keyword appears in the message text (e.g. "print"), or by file type — the system automatically picks the right printer for every request.

A Dedicated Print Folder for Each Printer

Beyond printing via WhatsApp, each printer gets its own dedicated folder on your machine — any file you drop there prints directly on that specific printer, with no WhatsApp or phone number involved at all. Ideal for printing internal files straight from your local systems.

Flexible Approval Before Printing or Sending

Choose one of three approval methods per printer or for the sync folder: fully automatic with no intervention, approval via a simple WhatsApp text reply — e.g. replying "approve print 12" — with the option to preview the file first by asking for it, or approval with a direct button from the system's dashboard page.

Automatic Failover to a Backup Printer

Link a backup printer to each main printer. If periodic health checks find the main printer unhealthy, new print jobs are automatically redirected to the backup printer, with a WhatsApp alert to the admin to fix the original — no print request is lost.

System Health Dashboard & Full Audit Log

A dedicated page showing the history of pending/failed messages, each printer's health status, and the latest recorded technical errors — alongside an audit log recording who changed any setting or approved any request, and exactly when.

Automatic Conversation Distribution to Your Team

Every new incoming conversation is fairly distributed among available agents based on their actual current workload (not blind round-robin), with an instant alert to the assigned agent (in-app notification + WhatsApp message) including the customer's latest message.

Daily Backups & Automatic Reminders

A full backup of your database is taken automatically every day and stored safely, with old backups auto-deleted after the retention period you set. And any pending approval request (print or send) left unanswered triggers an automatic WhatsApp reminder — no manual daily monitoring required.

Message Edit & Delete Sync

When a customer edits or deletes a previously sent WhatsApp message, that change is reflected instantly in your system — no stale copies left showing as if nothing happened.

How It Works

Up and Running in 3 Steps

1
Install the App on Your Server

Clone the project from Git, install dependencies via Composer, and configure your .env file — works on any hosting, server, or local machine.

2
Connect to Your Rasayily Account

From the in-app settings page, enter your Rasayily connection token and company ID — no manual file editing. A one-click connection check confirms it instantly.

3
Start Automatic Sending

Drop files in the sync folder or connect your local system — every message is automatically sent to the number specified in the filename.

Connection Architecture
Your Internal System
ERP · Hospital · School
Local Agent
Laravel · Local / Hosted
Rasayily
Main Platform
WhatsApp
End Customer

Both your internal system and Local Agent connect to Rasayily independently — Rasayily then delivers messages to WhatsApp.

A Real Message Journey

From Saving the File to the Customer Receiving It — Step by Step

This is exactly what happens behind the scenes — no oversimplification, no exaggeration.

1
Your internal system saves the file
An invoice, a lab result, a notice — any file automatically saved into the sync folder on disk.
2
Local Agent detects the file
It scans the folder automatically every minute, checking the file's type and size.
3
It extracts the phone number
From the filename first — and if not found there, it reads it from the file's own content.
4
It verifies before it trusts (a sending approval gate)
If the number is uncertain, or the file duplicates a prior send to the same number, the file is held before sending for manual review — never sent on its own judgment alone. After a few repeated approvals of the same exact pattern, it skips this review automatically for that specific case going forward.
5
Sending via Rasayily
The file is sent through Rasayily, which delivers it to the customer's WhatsApp within seconds.
6
Printing, if a rule applies — after a printer health check
If the file matches a print routing rule (number, keyword, or file type), the system first checks the target printer's health. If it's down and a healthy backup printer is configured, the job is automatically routed to that backup instead of getting stuck.
7
Approval when required (a separate printing approval gate)
If the target printer (main or backup) is set to "requires approval", a request reaches the admin's WhatsApp before printing, who approves with a simple reply — entirely separate from the sending-approval gate above.
8
Actual printing
The document is physically printed on the printer determined in the two previous steps.
9
Everything gets logged
Message status, print job status, and every approval — all logged and reviewable anytime from the system health dashboard and audit log.

Perfect for These Use Cases

Automatic Invoice Sending

Accounting system generates a PDF invoice named with the customer number → drops it in the folder → sent to the customer on WhatsApp instantly with no intervention.

Medical Lab Results

Hospital system exports the lab result PDF named with the patient number → placed in the folder → sent directly to the patient on WhatsApp.

School Notifications

School system drops an absence or result notice in the folder named with the parent's number → automatically sent via WhatsApp.

ERP Notifications

Any ERP running on the internal network sends notifications to customers via Local Agent — without opening public internet ports.

Internal Customer Service

With a fixed IP, the team uses Local Agent to receive and reply to customer conversations directly from within the internal network.

Reports & Statements

Any system exporting periodic files (reports, statements, alerts) drops them in the folder → automatically sent to each customer by number.

Auto-Printing Incoming Documents

Reception desks and print shops: any file a customer sends via WhatsApp is automatically printed on the correct printer instantly — with an option to require approval before printing if you want to review every request manually.

Common Questions About Local Agent

The simplest and clearest: international phone number without + or 00, then _, then the message text, then the file extension. Example: 966501234567_Welcome.pdf. In practice, any 9–15 digit number anywhere in the filename works, and if the filename has no number at all, the system automatically tries reading it from the file's own content (PDF/Word text, or OCR for images). You can also set a default message text from the settings page, used when the filename carries no message.

No — a fixed IP is only required if you want to use the message receiving and customer service features. Smart folder sending and contact sync work without a fixed IP.

Yes — since it's a Laravel web application, any device on the same local network can access it via browser using the host machine's IP — ideal for organizations with internal networks.

Yes — works with all providers supported in Rasayily, both official (Meta Cloud API) and unofficial (Evolution API, WAHA, etc.). You can assign a specific provider to Local Agent or let it use the default.

You can install more than one Local Agent instance — for example, a separate one per branch. Each instance is identified by its own name and location and connects to the same Rasayily account. Each instance is managed and configured independently from its own settings page.

The file isn't rejected outright. Local Agent first tries reading the number from the file's own content. If the extracted number isn't confident enough (e.g. no clear label, or it matches a file already sent to the same number), the file is held in a "pending review" queue with the reason shown, so you approve it manually instead of it being sent on the system's own judgment alone.

Yes — you can connect multiple printers and define routing rules (by phone number or file type) to automatically pick the right printer. Each printer has its own setting: instant automatic execution, or waiting for your approval via a simple WhatsApp reply before actually printing.

Ready to Automate WhatsApp From Your Own Server?

Start free and get Local Agent — connect your first system in under 10 minutes.

PHP 8+ Laravel Free with all plans