Congrats! Your pipeline is ready. Distribute leads faster with Smart Auto Assign.
Smart Auto Assign balances workload across available employees by stage so high-priority and unassigned leads reach the right person without manual sorting.
Pipeline templates
Active stages
Click a stage to inspect leads, employees, and routing rules
Loading pipeline stages...
Unassigned by stage
Pools ready for assignment
Loading…
Assign Leads to Stage
Pick a pipeline stage, choose one or more employees, and distribute unassigned leads in bulk.
✦ Select multiple employees to split leads evenly across the team. View stage stats
How many unassigned leads to distribute to the selected employees.
Select a stage and employee(s) to see available leads.
Stage Load Overview
Line
Bar
Sync to load data
Employee Lead Filter Rules
Restrict what leads an employee sees. Only leads matching all selected filters appear.
✦ Focus each person on hot, priority, or industry-specific leads. Assign leads now
Active Filter Rules
Loading...
Search or select an employee above to view their leads.
Transfer Leads
Move leads between employees with Auto Transfer or Immediate Transfer.
✦ Auto respects pipeline rules · Immediate bypasses stage routing. Back to Assignment
Transfer Lead to Next Stage
Move a specific lead to the next pipeline stage and auto-assign it to the responsible employee.
Use Immediate Transfer to bypass pipeline rules and send directly to any employee.
Auto (Next Stage)
Follows pipeline order and auto-selects the least-loaded employee in the next stage.
Immediate Transfer
Pick any employee directly and override pipeline rules for this move.
This bypasses pipeline stage rules and assigns the lead directly to the selected employee.
Optional — update the lead's status as part of this transfer.
Unassign all leads from one or more employees. Useful when people leave the team or change roles.
Search and select multiple employees. All of their assigned leads will be cleared.
Special Routing Channels
Create automatic routing rules. When any employee triggers a condition, the lead moves instantly to the specialist.
✦ Channels work across the full pipeline — they override assignment when a trigger matches. Go to pipeline stage
Name this routing rule first so it is easy to find later.
Lead marked as Hot
Lead reaches a specific Status
Lead reaches a specific Priority
Lead belongs to Industry / Service
This employee receives all leads matching the trigger, irrespective of pipeline stage or current assignment.
Active Routing Channels
No routing channels yet.
Confirm
Assigned leads
Search by employee name, employee ID, email, phone, or lead ID.
Reset employee leads
Unassign all leads from an employee in one step.
Smart Auto Assign
Configure distribution settings before running assignment
1. Configure
2. Review Summary
3. Complete
Assignment Scope
Employee Selection
Leads Per Employee
Distribution Strategy
Assignment Summary
Review the summary above. Click "Run Assignment" to begin. Already-assigned leads will not be overwritten.
Smart Assignment Started
Configure Pipeline Stages
Saved to browser · synced on save
Each stage defines who handles leads at that point in the funnel. When a lead reaches the
Trigger Status, it automatically advances to the next stage and is reassigned
to an available employee in that stage's team.
Add New Stage
Employees in this stage will only see these actions on their dashboard.
Search and select multiple team members for this stage.
Pipeline Funnel
See exactly where leads are in your sales funnel
Assessment · Pipeline Funnel
Lead volume by stage · hover for overview · click a bar for lead list
Show stages
Loading funnel…
Top stages
Volume
Needs attention
Watch
Lead details
Click a bar above to view leads in that stage
Task Management
Assign, track and manage employee tasks in real time
All Tasks
Task ID
Title
Assigned To
Priority
Status
Due Date
Last Updated
Actions
Click Refresh to load tasks
Assign Task
To Do
In Progress
On Hold
Done
Low
Medium
High
Critical
Employee Management
Manage accounts, roles, permissions and access
All Employees
Status
Employee
Role
Status
Shift
Score
Phone
Actions
Click Sync to load employees
Feature Control
Enable or disable individual features per employee
Employee
Email
Role
Status
Loading employees...
Shift Tracker
Monitor login times, active hours and break patterns
All Employees
0
Click to show all
Currently Active
0
On shift
On Break
0
Taking a break
On Hold
0
Inactive 3+ min
Absent Today
0
Not logged in
Avg Active Time
0h
Today
Today's Shift Log
Employee
Login Time
Logout Time
Break Time
Active (min)
Leads
Status
Score
Location
Actions
Sync to load shift data
Click a tab to view metrics
Select a metric view above to load chart data
Employee Shift Details
Attendance & Leave
Grant holidays, manage leave and track attendance
Monthly Attendance Overview
Sun
Mon
Tue
Wed
Thu
Fri
Sat
Leave Management
No pending leave requests
Apply Leave on Behalf of Employee
Teams
Group employees for assignment and roster planning
Weekly Roster
Configure and manage weekly shift schedules for each employee
Employee Weekly Schedule
Click any cell to set shift or mark as day off
Employee
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
Sync employees to load roster
Legend:
Working
Day Off
Half Day
Work From Home
Salary & Payroll
Calculate and download detailed salary reports per employee
Total Payroll
Rs. 0
This period
Employees
0
On payroll
Total Hours
0h
Worked
Deductions
Rs. 0
Absent days
Employee Salary Breakdown
Employee
Role
Base Salary
Expected Days
Days Present
Days Absent
Hours Worked
Deduction
Net Salary
Actions
Select a period and click Calculate to load salary data
Set Shift
Salary Report
Employee
—
Select an employee
Contact Support
We're here to help — reach out via form, call, or WhatsApp
View sent email activity and send emails directly from the platform
Connect a business email account to enable full email activity and sending.
Send Email
Email Activity
Sent via Nucleous
To
Subject
Sent By
Lead
Date
No email activity found
Broadcast Centre
Company-isolated channels and announcements for your workspace
Send messages, announcements and notifications to channels and individuals
Channels
# general
# sales
# escalations
# leads
# meetings
Admin Actions
Broadcast to All
Direct Messages
Loading...
# general
Admin sending as AfterResult Admin
Send a message to the channel
Support Tickets
Review, assign and resolve all raised tickets
All
Open
In Progress
Resolved
Escalated
Ticket ID
Subject
Category
Priority
Raised By
Status
Created
Actions
Sync to load tickets
Performance Analytics
Team metrics, score breakdown & individual deep-dive
All Employees
Today
By activity
to
Total Leads
0
—
From All Leads
Total Calls
0
—
Calls logged in period
Quotations
0
—
Quotations sent
Emails Sent
0
—
Emails shared with leads
0000%0
Performance Overview
0%
0
0
Team performance
Employee
Calls
Meetings
Quotations
Leads
Emails
Score
Sync to load
Access Management
Set defaults for everyone, or target specific employees and teams
Configure employee access in one place
Choose who the settings apply to — all employees, selected people, or a team — then control tools, activity rules, and lead fields. Saves write to the sheet and apply on the employee panel.
FEATURES ENABLED
—
LEAD FIELDS VISIBLE
—
SHIFT-ONLY LOGIN
Off
LOCATION REQUIRED
Off
Activity Control
On Hold, AHT timer, and activity behaviour. Apply to everyone or target selected employees / a team.
✦ Select multiple employees to apply the same activity rules in one save.
Allow On Hold
Let employees pause their shift and mark themselves on hold
Show AHT timer
Display average handling time timer on the employee panel
Lead Information fields
Choose up to 8 fields employees see in Lead Information. Apply company-wide or to selected people.
✦ Field layout is saved to the company lead layout. Scope still targets who can use the employee panel fields.
Employee features
Enable or disable tools in the employee panel. Apply to all staff, selected employees, or a whole team.
✦ Select multiple employees to grant or revoke the same tools in one step.
WhatsApp
Open WhatsApp composer and message leads
Calling
Log calls and use call actions on leads
Email
Compose and send emails from the lead panel
Quotation
Build and send quotations to leads
Add Lead
Allow employees to create new leads
Broadcast
Access team broadcast channels and messages
Other operational permissions
Location, shift timing, and profile controls for the selected scope.
✦ Use Selected employees or Team when rules should not apply company-wide.
Location access
Allow the employee panel to request device location
Geo-fetch on shift start
Capture location automatically when a shift starts
Restrict login to shift hours only
Block employee sign-in outside configured shift windows
Allow password change
Employees can update their own login password
Allow avatar change
Employees can upload or change their profile photo
Settings
Manage appearance, access, and workspace preferences
General
Access Control
Shifts
Business Email
Google Workspace
Gmail
Send emails and track outreach directly from your workspace
Not Connected
Google Sheets
Import, export and sync lead data with a connected spreadsheet
Not Connected
Google Forms
Turn form submissions into leads automatically
Not Connected
Google Drive
Store and access documents and files from your workspace
Not Connected
Coming Soon
Slack
Send lead notifications and alerts to your team channels
Coming Soon
Microsoft Excel
Sync lead data with Excel workbooks via OneDrive
Coming Soon
HubSpot
Sync contacts and deals with your HubSpot CRM account
Coming Soon
Zapier
Automate workflows by connecting to 5,000+ apps
Coming Soon
No integrations found
Try a different search term
Appearance
Switch between Light, Dark, and Hub themes. Hub uses a charcoal header and side panel with teal primary buttons.
Light
Dark
Hub
Choose a font that matches your preferred style across the entire interface.
Adjust how wide the left navigation panel appears.
Compact
Default
Wide
Extra Wide
Control spacing and table row height across the panel.
Comfortable
Default
Compact
Scale the entire interface for smaller or larger displays.
90%
100%
110%
125%
Customise the coloured dots used for lead status labels.
Customise the coloured dots used for priority labels.
Admin Password
Password required to access this admin panel.
Authorized Admin Emails
One email per line. Only these addresses can access the admin panel.
Shift Configuration
Business Email Identity
Checking connection status…
Organization Email Identity
Connect your business Gmail account so every customer-facing email is sent from your organization's verified address.
No business email connected. All outgoing CRM emails are currently sent via the platform account. Connect your organization's Gmail to send emails from your own business address.
Once connected, every customer email — proposals, follow-ups, quotations, hot lead alerts, and all CRM communication — will automatically be sent from your verified business Gmail account. Employees do not need to authenticate separately.
What changes after connecting
All CRM emails (proposals, follow-ups, quotations, outreach) are sent from your business address.
Employees automatically use the organization's sender identity — no separate authentication needed.
Platform emails (invitations, security alerts, billing, password resets) continue via the platform — unaffected.
Email templates, scheduling, and automation continue working exactly as before — only the sender changes.
Organization Email Identity
Business Gmail account connected. All CRM emails are sent from your organization's address.
G
—
—
Verified
Sender Address
—
Display Name
—
Reply-To
—
Connected
—
All customer-facing CRM emails are now automatically sent from your business address. Employees do not need to configure anything separately.
Connection Health
Account VerificationVerified
Send PermissionsGranted
Authentication StatusActive
Email RoutingActive
Sender Settings
Authentication required. Please reconnect your business Gmail account.
Recent Emails Sent
Emails via Nucleous
To
Subject
Sent By
Lead
Date
Click Refresh to load
Connect Business
Connect your Google account to send emails and track outreach directly from Nucleous. Your credentials are never stored — only an access token is used.
Send emails
Compose and send messages on your behalf
Read account info
Verify your identity and email address
You will be redirected to Google to authorize access. No passwords are ever shared.
Connect Google Sheets
Connect a data source to sync your lead records. Choose how you'd like to proceed:
Use an existing source
Enter an ID to connect a data source you already have
Create a new destination
Set up a fresh data destination with the right structure
Connect existing data source
Found in the URL of your data source
Sync Options
Auto-sync on changes
Automatically keep data in sync
Import on first connect
Pull existing records immediately after connecting
Create new data destination
A new destination will be created in your connected Google account with the correct structure for storing lead records.
Connect Google Forms
Connect a form to automatically capture submissions as leads in your workspace.
The form must be published and accessible
Field Mapping
Name field
Email field
Phone field
Live submission capture
New submissions become leads instantly
Connect Google Drive
Connect Google Drive to store and access documents from your workspace. This enables document uploads and sharing for leads and employees.
Read and write files
Access files and folders you choose to share
Create workspace folder
A dedicated folder will be created for Nucleous files
Data Sync Settings
Sync Actions
Automation
Continuous sync
Automatically sync whenever leads are updated
Developer Tools
Integrate Lead Sources and Manage Data Directly from One Panel
1. Data Sync
2. Embed Lead Capture on Your Website
Paste this snippet before </body> on any page with a contact or inquiry form.
Leads will appear in your admin panel within seconds.
Lead Capture Snippet
How it works: The snippet listens for form submissions on your page. It looks for fields named
name,
phone,
email,
company,
message.
Make sure your form inputs have matching name="" attributes.
3. Connect a Google Form
Use this trigger code inside your form's script editor.
Paste it in Tools → Script Editor of your Google Form, then save and authorize.
Backend API Reference
The complete backend includes: lead management, employee accounts, chat, workflows, quotations, tickets, routing rules, pipeline config, shift tracking, email logging, and company registry. Click Show Code to expand, then Copy All to paste into your backend script editor.
After pasting: Run → onFormSubmit once to authorize, then set a trigger:
Triggers → Add Trigger → onFormSubmit → From form → On form submit.
4. Your Company Profile
Keep your company details up to date. This information is used in your backend configuration and for support.
Each company gets their own isolated data workspace, their own admin panel URL,
and their own backend deployment. No data ever mixes between companies.
Register a new company below to provision a new workspace.
Register New Company
Active Company Registry
Company
Admin / Contact
Plan
Status
Registered
Actions
Click "View All Companies" to load
5. Webhook & API Reference
Use these API endpoints to push leads from any external tool — Zapier, Make, n8n, or custom code.
Replace YOUR_URL with your backend deployment URL.
// Add a lead (GET)
GET YOUR_URL?fn=addLead&args=[{"name":"John","phone":"9999999999","email":"john@co.com","source":"Website"}]
// Add a lead (POST)
POST YOUR_URL Content-Type: application/json {"fn":"addLead","args":[{"name":"Jane","phone":"8888888888","source":"Zapier"}]}
// Get all leads
GET YOUR_URL?fn=getLeads
All endpoints return JSON. CORS is open. No authentication token needed — security is through obscurity of the URL.
For production, consider deploying with restricted access if needed.
+
PHOTO
Add New Employee
Step 1 of 5 — Identity
Personal Information
This will be the employee's login ID — must be a valid email address
Lead Assignment
Role & Experience
Working Hours
Compensation
Salary details are stored securely and used only for payroll reports. They are never shared with other employees.
Select the modules this employee can access from their dashboard. Unchecked items will be hidden entirely.
Module Access
The employee will use their email address and this password to log in. They can change it later from their profile.
Set Login Credentials
?
Employee
Department—
—
Date Hired—
—
Personal Information
Fullname
—
Languages Spoken
—
Gender
—
Education
—
Marital Status
—
Emergency Contact
—
Address
—
Professional Information
Employment ID
—
Job Title
—
Employment Type
—
Department
—
Date Join
—
Status
—
Professional Email
—
Phone Number
—
Reporting Manager
—
Daily Quota
—
Shift Hours
—
Admin Note
—
Personal Information
Professional Information
Notes
Compensation Structure
Deductions
Bank Details
Salary details are stored securely and used only for internal payroll records. This information is never visible to other employees.
Control which features this employee can access. Unchecked items will be hidden entirely from their dashboard.
Module Permissions
AST Inactivity Timer
Timer (minutes)
This updates the employee's login password. They must use the new password on their next login.
Reset Password
Employee Credentials
Employee ID
Login Email
—
Send Credentials
QR Code
Employee IDs & Access
View as Employee
Select an employee to open their dashboard and view the panel exactly as they see it.
Send Email via AfterResult
From: info.afterresult@gmail.com
BCC is automatically sent to bhatiaparas583@gmail.com for records.
Broadcast to All Employees
Notifications
Grant Leave
Simple Pricing
Choose the plan that fits your team. Upgrade anytime as you grow.
Free Current
For individuals and small teams getting started with CRM.
$0
forever
Premium Current
Composers, quotations, and documents.
$19Save 20%
user / month
Team PopularCurrent
People ops, lead assignment, analytics, and more.
$294Save 20%
user / month
Business
Custom options for larger organizations.
Custom
pricing
PRODUCTIVITY ESSENTIALS
All Leads & Upload
✓
✓
✓
✓
Funnel View & Flow
✓
✓
✓
✓
Emails, Tickets, Catalog
✓
✓
✓
✓
Full Email / WhatsApp Composer
—
✓
✓
✓
Quotation print
—
✓
✓
✓
TEAM & OPERATIONS
Assign Leads, Analytics
—
—
✓
✓
Teams, Roster, Shifts, Salary
—
—
✓
✓
Broadcast, Location, Access, Zira
—
—
✓
✓
BUSINESS SUPPORT
Account manager & custom options
—
—
—
✓
Lead Control Center
WhatsApp AI agent for your leads
Professional, operator-controlled engagement on WhatsApp Web.
Connect only to leads that belong to your Nucleous account.
Every action stays under explicit administrator control.
Chrome package · Load unpacked in developer mode
Install
Download the extension package
Open Chrome and go to chrome://extensions
Enable Developer mode
Click Load unpacked and select the extracted folder
Open WhatsApp Web and sign in
Connect
Open the extension side panel
Sign in with your Nucleous email and password
Complete OTP verification sent to your email
Select the lead status or audience to engage
Configure limits and enable the agent only when ready
Operator control
The agent never initiates contact or changes lead status unless you have explicitly enabled the relevant automation and selected the allowed audience.
It sends one message at a time and waits for the lead response before continuing, unless a specific follow-up rule is enabled.
All activity is limited by the message and lead caps you set.
Privacy Policy
Effective: September 10, 2025 · Updated: September 10, 2026
Loading policy…
Live Employee Locations
Real-time map of all active employees
Status
Product & Service Catalog
Manage products, services, categories, plans, and add-ons for your quotation builder
Total Items
0
Products
0
Services
0
Categories
0
Catalog Items
0 items
Item ID / SKU
Type
Item Name
Category
Plan
Unit Price
Discount
Final Price
Status
Actions
No items yet. Click Add Item to get started.
Add New Item
Quotation Builder — Product & Service Entry
0/80 characters
0/300 characters
No image
Paste an image URL or upload a small image for quotations.
INR
Final Quoted Price
—
Type to create a new category or select an existing one
Existing Categories — click to apply
Plan Tier Reference
Basic — entry-level, limited features
Standard — core features, most popular
Premium — advanced, priority support
Enterprise — custom, unlimited scale
Manage Categories
Quotation Builder
Generate quotations for walk-in and new customers — leads are created automatically
0%
Quotations linked to your leads
Track how many quotation clients are already in Lead Management.
Congrats! Your quotation workspace is ready. Quote walk-in clients faster with Quick Quotation.
Quick Quotation lets you capture a customer at the counter, generate a professional quote, and auto-save them into Lead Management — no manual lead entry required.
Generate Quotation
Add a new customer and open the quotation builder. The customer is saved as a lead automatically.
Tip: use Share Form if the customer is at the counter and can fill details on their phone.
Open Share Form
Clients
Search by client name, email, or phone. Open an existing quote or create a new one for the client.
Share customer form
Reuse the same permanent link and QR code at your physical location.
Customise QR code
Design a print-ready double-sided card (16×20). Front is black with QR; back shows your brand details. Update title, description, logo, and contact fields below.
Upload logo
Optional. PNG or JPG, square works best. Appears top-left on the back.
Submissions
Customers who submitted the shared form and are waiting for a quotation.
Select date or range
Important: Saving changes will refresh the share link and QR code. Share the new link after saving.
Learn more
Form builder
Design the public customer form shown via Share Form. Update title, description, logo, and fields.
Upload logo
Disclaimer checkbox
Show a confirmation checkbox before submit
Fields on form
Tell us what you need
Share a few details. We will get back with options and pricing.
Upload leads
×
Choose which database should receive the imported leads. You can select one or more databases.
Imported rows are stored in the selected database(s).
Add a database
×
Connect an external data source to Lead Management so contacts stay in sync without repeated file uploads. You can authorize Google or set up a manual Apps Script connection.
Data Integration
Connect a Google Sheet once and work with it in Lead Management — no repeated file uploads
0%
Connected datasets
Link an external source once — data stays available in Lead Management.
Connect a Google Sheet once. Access it in Lead Management anytime.
Authenticate with Google, choose a spreadsheet, and keep the connection active so leads stay in sync without repeated file uploads.
Import a File
Use file import when you cannot connect a live source. Prefer Connect Dataset for ongoing sync.
CSV or spreadsheet upload
Same import path as Upload Leads. Map columns, then add records to your Main dataset.
Sync from Apps
Explore available apps, authenticate once, and keep Client ID and Client Secret with your account. Connections remain available for Lead Management.
Authentication configuration
Store Client ID and Client Secret for app connections. Values are saved to your account.
Manual connection
Copy the connection snippet into your external data source, then add the import script so Nucleous can read the dataset.
1. Connection code (add to your data source)
// Nucleous dataset connection
// Paste this into your external source webhook / onSubmit handler
function pushToNucleous(rows) {
var endpoint = "YOUR_NUCLEOUS_DATASET_ENDPOINT";
var token = "YOUR_ACCOUNT_TOKEN";
fetch(endpoint, {
method: "POST",
headers: { "Content-Type": "application/json", "Authorization": "Bearer " + token },
body: JSON.stringify({ datasetId: "external", rows: rows })
});
}
2. Import script (Apps Script style)
/**
* Import connected rows into a Nucleous dataset.
* Deploy as a web app or time-driven trigger.
*/
function importConnectedSource() {
var sourceUrl = "YOUR_SOURCE_EXPORT_URL";
var response = UrlFetchApp.fetch(sourceUrl, { muteHttpExceptions: true });
var data = JSON.parse(response.getContentText());
var rows = Array.isArray(data) ? data : (data.rows || []);
// Map fields as needed, then push to Nucleous
pushToNucleous(rows);
}
After both pieces are in place, open Database and select your new dataset. No technical knowledge beyond copy and paste is required.
Explore apps
Google
Authenticate and select a spreadsheet to keep in sync with Lead Management.
Gmail
Push leads to a database when Gmail events match your conditions.
Drive
Attach files and folders when document access is enabled for your plan.
Calendar
Meeting links and schedule context for leads when Calendar is connected.
Tasks
Push follow-up tasks from Lead Management into your task list.
Google Sheet
Connect a Google Sheet as a live dataset for Lead Management.
Connect app
Name the database and choose when leads should be pushed. Sign-in runs after you continue.
Set conditions that match how this app should send leads into Lead Management.
You can select one or more triggers. Authentication runs after Continue.
Manual connection with Apps Script
Copy the script into your data source, then register the endpoint URL and database name so leads appear under Contacts in Lead Management.
Paste this into your spreadsheet's Apps Script project. Run setupNucleousBackend once — it creates a Nucleous Leads sheet with Lead ID, Status, Priority, Progress, Notes, Activity Log, Documentation, and imports rows from your other tabs. Then deploy as Web App (Anyone) and paste the /exec URL below.
/**
* Nucleous CRM — backend sheet connector (v3)
*
* SETUP
* 1) Open your spreadsheet → Extensions → Apps Script
* 2) Paste this entire file → Save
* 3) Run setupNucleousBackend once (from the editor Run menu)
* → Creates a sheet "Nucleous Leads" with full CRM columns
* → Imports / maps existing rows from other tabs into it
* 4) Deploy → New deployment → Web app
* Execute as: Me | Who has access: Anyone
* 5) Copy the /exec URL into Nucleous → Manual connection
*
* doGet → exports all leads as JSON (CRM import)
* doPost → upserts lead changes from the CRM (status, notes, etc.)
*/
var DATASET_ID = 'manual_dataset';
var BACKEND_SHEET = 'Nucleous Leads';
/** Full CRM column layout (order matters) */
var CRM_HEADERS = [
'Lead ID',
'Name',
'Email',
'Phone',
'Company',
'Industry',
'Status',
'Priority',
'Progress',
'Assigned To',
'Source',
'Location',
'Pin',
'Service',
'Gender',
'Notes',
'Activity Log',
'Documentation',
'Date Added',
'Last Updated',
'Hot',
'Deal Value',
'Custom JSON'
];
var STATUS_OPTIONS = ['New', 'Contacted', 'Qualified', 'Proposal', 'Negotiation', 'Sold', 'Lost', 'On Hold', 'Archived'];
var PRIORITY_OPTIONS = ['Low', 'Medium', 'High', 'Urgent'];
/* ───────── Web entry points ───────── */
function doGet(e) {
e = e || {};
var p = e.parameter || {};
var action = String(p.action || p.fn || 'exportLeads');
try {
ensureBackendSheet_();
if (action === 'ping' || action === 'health') {
return json_({ ok: true, service: 'nucleous-backend-v3', sheet: BACKEND_SHEET, datasetId: DATASET_ID });
}
if (action === 'setup') {
var r = setupNucleousBackend();
return json_(r);
}
if (action === 'listSheets') {
return json_(listSheets_());
}
return json_(exportLeads_());
} catch (err) {
return json_({ ok: false, error: String(err) });
}
}
function doPost(e) {
try {
ensureBackendSheet_();
var body = {};
if (e && e.postData && e.postData.contents) {
body = JSON.parse(e.postData.contents);
}
var action = String((body && body.action) || (body && body.fn) || 'upsertLeads');
if (action === 'upsertLeads' || action === 'syncFromCrm' || action === 'push') {
return json_(upsertFromCrm_(body));
}
if (action === 'setup') {
return json_(setupNucleousBackend());
}
return json_({ ok: true });
} catch (err) {
return json_({ ok: false, error: String(err) });
}
}
/** Run once from the script editor */
function setupNucleousBackend() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
if (!ss) throw new Error('Open this project from the spreadsheet');
var backend = ensureBackendSheet_();
var imported = importExistingTabsIntoBackend_(ss, backend);
return {
ok: true,
sheet: BACKEND_SHEET,
imported: imported,
message: 'Nucleous Leads is ready. Deploy as Web App (Anyone) and paste the /exec URL in Nucleous.'
};
}
function testExport() {
ensureBackendSheet_();
var pack = exportLeads_();
Logger.log('count=' + pack.count);
Logger.log(JSON.stringify((pack.rows || []).slice(0, 2)));
}
/* ───────── Backend sheet ───────── */
function ensureBackendSheet_() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
if (!ss) throw new Error('Bind script to a spreadsheet (Extensions > Apps Script from the file)');
var sheet = ss.getSheetByName(BACKEND_SHEET);
if (!sheet) {
sheet = ss.insertSheet(BACKEND_SHEET);
}
// Ensure header row
var lastCol = Math.max(sheet.getLastColumn(), CRM_HEADERS.length);
var existing = sheet.getRange(1, 1, 1, CRM_HEADERS.length).getValues()[0];
var needsHeader = !existing[0] || String(existing[0]).toLowerCase().indexOf('lead') < 0;
if (needsHeader || sheet.getLastRow() === 0) {
sheet.getRange(1, 1, 1, CRM_HEADERS.length).setValues([CRM_HEADERS]);
sheet.getRange(1, 1, 1, CRM_HEADERS.length).setFontWeight('bold');
sheet.setFrozenRows(1);
} else {
// Fill any missing header cells
for (var c = 0; c < CRM_HEADERS.length; c++) {
if (!existing[c]) sheet.getRange(1, c + 1).setValue(CRM_HEADERS[c]);
}
}
return sheet;
}
function listSheets_() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
return {
ok: true,
spreadsheetId: ss.getId(),
spreadsheetName: ss.getName(),
sheets: ss.getSheets().map(function(s) {
return { name: s.getName(), id: s.getSheetId(), rows: s.getLastRow(), cols: s.getLastColumn() };
})
};
}
/* ───────── Export ───────── */
function exportLeads_() {
var sheet = ensureBackendSheet_();
var values = sheet.getDataRange().getValues();
if (!values || values.length < 2) {
return { ok: true, datasetId: DATASET_ID, sheet: BACKEND_SHEET, headers: CRM_HEADERS, count: 0, rows: [] };
}
var headers = values[0].map(function(h){ return String(h || '').trim(); });
var rows = [];
for (var i = 1; i < values.length; i++) {
var row = values[i];
if (isBlank_(row)) continue;
var obj = rowToLead_(headers, row, i + 1);
rows.push(obj);
}
// Fresh first
rows.sort(function(a, b) {
return new Date(b.addedAt || 0) - new Date(a.addedAt || 0);
});
return {
ok: true,
datasetId: DATASET_ID,
sheet: BACKEND_SHEET,
headers: headers,
count: rows.length,
rows: rows
};
}
function rowToLead_(headers, row, row1) {
function col(name) {
var want = String(name).toLowerCase();
for (var i = 0; i < headers.length; i++) {
if (String(headers[i]).toLowerCase() === want) return cellStr_(row[i]);
}
// fuzzy
for (var j = 0; j < headers.length; j++) {
if (String(headers[j]).toLowerCase().indexOf(want) >= 0) return cellStr_(row[j]);
}
return '';
}
var columns = {};
for (var c = 0; c < headers.length; c++) {
if (headers[c]) columns[headers[c]] = cellStr_(row[c]);
}
var id = col('Lead ID') || ('row_' + row1);
var status = col('Status') || 'New';
if (STATUS_OPTIONS.indexOf(status) < 0) {
// keep custom status text
}
return {
id: id,
name: col('Name'),
email: col('Email'),
phone: col('Phone'),
company: col('Company'),
industry: col('Industry') || col('Service'),
status: status,
priority: col('Priority') || 'Medium',
progress: col('Progress'),
assignedTo: col('Assigned To'),
source: col('Source') || 'connected-sheet',
location: col('Location'),
pin: col('Pin'),
service: col('Service'),
gender: col('Gender'),
notes: col('Notes'),
activityLog: col('Activity Log'),
documentation: col('Documentation'),
addedAt: col('Date Added') || new Date().toISOString(),
updatedAt: col('Last Updated'),
hot: String(col('Hot')).toLowerCase() === 'true' || col('Hot') === '1' || col('Hot') === 'Yes',
deal: col('Deal Value'),
columns: columns,
_row: row1,
_sheet: BACKEND_SHEET
};
}
/* ───────── Import existing messy tabs → Nucleous Leads ───────── */
function importExistingTabsIntoBackend_(ss, backend) {
var tabs = ss.getSheets();
var imported = 0;
var existingIds = {};
var bValues = backend.getDataRange().getValues();
for (var r = 1; r < bValues.length; r++) {
var id = String(bValues[r][0] || '');
if (id) existingIds[id] = true;
}
tabs.forEach(function(tab) {
if (tab.getName() === BACKEND_SHEET) return;
if (tab.getLastRow() < 2) return;
var values = tab.getDataRange().getValues();
var det = detectHeader_(values);
var headers = det.headers;
var roles = classifyHeaders_(headers);
for (var i = det.startRow; i < values.length; i++) {
var cells = values[i];
if (isBlank_(cells)) continue;
var lead = mapMessyRow_(headers, cells, roles, tab.getName(), i + 1);
if (!lead.name && !lead.email && !lead.phone) continue;
if (existingIds[lead.id]) continue;
appendLeadRow_(backend, lead);
existingIds[lead.id] = true;
imported++;
}
});
return imported;
}
function appendLeadRow_(sheet, lead) {
var row = [
lead.id || '',
lead.name || '',
lead.email || '',
lead.phone || '',
lead.company || '',
lead.industry || '',
lead.status || 'New',
lead.priority || 'Medium',
lead.progress || '',
lead.assignedTo || '',
lead.source || 'connected-sheet',
lead.location || '',
lead.pin || '',
lead.service || '',
lead.gender || '',
lead.notes || '',
lead.activityLog || '',
lead.documentation || '',
lead.addedAt || new Date().toISOString(),
lead.updatedAt || new Date().toISOString(),
lead.hot ? 'Yes' : '',
lead.deal || '',
lead.customJson || ''
];
sheet.appendRow(row);
}
/* ───────── Upsert from CRM ───────── */
function upsertFromCrm_(body) {
var sheet = ensureBackendSheet_();
var list = (body && body.rows) || [];
if (!list.length && body && body.lead) list = [body.lead];
if (!list.length) return { ok: true, updated: 0 };
var values = sheet.getDataRange().getValues();
var idCol = 0;
var updated = 0;
for (var i = 0; i < list.length; i++) {
var lead = normalizeCrmLead_(list[i]);
var row1 = findRowByIdOrContact_(values, lead);
if (row1 < 0) {
appendLeadRow_(sheet, lead);
values = sheet.getDataRange().getValues();
updated++;
} else {
writeLeadRow_(sheet, row1, lead);
updated++;
}
}
return { ok: true, updated: updated };
}
function normalizeCrmLead_(l) {
l = l || {};
var notes = l.notes || '';
var activity = l.activityLog || '';
if (!activity && Array.isArray(l.activities)) {
activity = l.activities.map(function(a) {
return [a.at || a.date || '', a.type || '', a.text || a.note || a.message || ''].join(' ').trim();
}).filter(Boolean).join(' || ');
}
var docs = l.documentation || '';
if (!docs && Array.isArray(l.documents)) {
docs = l.documents.map(function(d){ return d.name || d.url || JSON.stringify(d); }).join(' || ');
}
return {
id: l.id || l.leadId || ('crm_' + Date.now()),
name: l.name || '',
email: l.email || '',
phone: l.phone || '',
company: l.company || '',
industry: l.industry || '',
status: l.status || 'New',
priority: l.priority || 'Medium',
progress: l.progress || l.stage || '',
assignedTo: l.assignedTo || l.assignedEmail || '',
source: l.source || 'crm',
location: l.location || '',
pin: l.pin || '',
service: l.service || '',
gender: l.gender || '',
notes: notes,
activityLog: activity,
documentation: docs,
addedAt: l.addedAt || '',
updatedAt: new Date().toISOString(),
hot: !!l.hot,
deal: l.deal || l.dealValue || '',
customJson: l.columns ? JSON.stringify(l.columns) : (l.custom ? JSON.stringify(l.custom) : '')
};
}
function findRowByIdOrContact_(values, lead) {
var id = String(lead.id || '');
var phone = String(lead.phone || '').replace(/\D/g, '');
var email = String(lead.email || '').toLowerCase();
for (var i = 1; i < values.length; i++) {
var rid = String(values[i][0] || '');
if (id && rid === id) return i + 1;
var rPhone = String(values[i][3] || '').replace(/\D/g, '');
var rEmail = String(values[i][2] || '').toLowerCase();
if (phone && rPhone && (rPhone === phone || rPhone.slice(-10) === phone.slice(-10))) return i + 1;
if (email && rEmail && rEmail === email) return i + 1;
}
return -1;
}
function writeLeadRow_(sheet, row1, lead) {
var row = [
lead.id || '',
lead.name || '',
lead.email || '',
lead.phone || '',
lead.company || '',
lead.industry || '',
lead.status || 'New',
lead.priority || 'Medium',
lead.progress || '',
lead.assignedTo || '',
lead.source || '',
lead.location || '',
lead.pin || '',
lead.service || '',
lead.gender || '',
lead.notes || '',
lead.activityLog || '',
lead.documentation || '',
lead.addedAt || '',
lead.updatedAt || new Date().toISOString(),
lead.hot ? 'Yes' : '',
lead.deal || '',
lead.customJson || ''
];
sheet.getRange(row1, 1, row1, row.length).setValues([row]);
}
/* ───────── Messy sheet helpers ───────── */
function detectHeader_(values) {
var bestIdx = 0, bestScore = -1;
var maxScan = Math.min(8, values.length);
for (var r = 0; r < maxScan; r++) {
var row = values[r], score = 0, nonEmpty = 0;
for (var c = 0; c < row.length; c++) {
var cell = String(row[c] == null ? '' : row[c]).trim();
if (!cell) continue;
nonEmpty++;
if (/name|email|phone|mobile|company|status|note|service|city|location/i.test(cell)) score += 4;
if (/^[A-Za-z0-9 _#./()%-]{1,40}$/.test(cell)) score += 1;
}
score += Math.min(nonEmpty, 10);
if (score > bestScore) { bestScore = score; bestIdx = r; }
}
var headerRow = values[bestIdx] || [];
var headers = [], used = {};
for (var c2 = 0; c2 < headerRow.length; c2++) {
var h = String(headerRow[c2] == null ? '' : headerRow[c2]).trim();
if (!h) h = 'Column ' + (c2 + 1);
var base = h, n = 2;
while (used[h]) { h = base + ' (' + n + ')'; n++; }
used[h] = true;
headers.push(h);
}
return { headers: headers, startRow: bestIdx + 1 };
}
function norm_(s) { return String(s || '').toLowerCase().replace(/[^a-z0-9]/g, ''); }
function classifyHeaders_(headers) {
var roles = { name: -1, email: -1, phone: -1, company: -1, category: -1, location: -1, pin: -1, service: -1, gender: -1, notes: -1, status: -1, date: -1 };
var map = {
name: ['name','fullname','contact','customer','client'],
email: ['email','mail','emailid'],
phone: ['phone','mobile','whatsapp','contactnumber','number','tel'],
company: ['company','organisation','organization','agency'],
category: ['category','industry','sector'],
location: ['location','city','area','address'],
pin: ['pin','pincode','zip'],
service: ['service','servicerequired','requirement'],
gender: ['gender'],
notes: ['notes','note','comment','remark','message'],
status: ['status','stage'],
date: ['date','created','added']
};
for (var i = 0; i < headers.length; i++) {
var nk = norm_(headers[i]);
for (var role in map) {
if (roles[role] >= 0) continue;
map[role].forEach(function(a) {
if (roles[role] < 0 && (nk === a || nk.indexOf(a) >= 0)) roles[role] = i;
});
}
}
return roles;
}
function mapMessyRow_(headers, cells, roles, sheetName, row1) {
function at(idx) { return idx >= 0 ? cellStr_(cells[idx]) : ''; }
var blob = cells.map(cellStr_).join(' | ');
var phones = extractPhones_(blob);
var emails = extractEmails_(blob);
var name = at(roles.name);
var email = at(roles.email) || (emails[0] || '');
var phone = at(roles.phone) || (phones[0] || '');
if (!name) {
for (var i = 0; i < cells.length; i++) {
var s = cellStr_(cells[i]);
if (!s || extractEmails_(s).length || (extractPhones_(s).length && s.replace(/\D/g,'').length >= 8)) continue;
name = s; break;
}
}
var extra = [];
if (emails.length > 1) extra.push('Other emails: ' + emails.slice(1).join(', '));
if (phones.length > 1) extra.push('Other phones: ' + phones.slice(1).join(', '));
var notes = at(roles.notes);
if (extra.length) notes = (notes ? notes + ' | ' : '') + extra.join(' | ');
var columns = {};
for (var c = 0; c < headers.length; c++) columns[headers[c]] = cellStr_(cells[c]);
return {
id: 'import_' + sheetName.replace(/\W+/g,'_') + '_' + row1,
name: name || email || phone || ('Lead ' + row1),
email: email,
phone: phone,
company: at(roles.company),
industry: at(roles.category) || at(roles.service),
status: at(roles.status) || 'New',
priority: 'Medium',
progress: '',
assignedTo: '',
source: sheetName,
location: at(roles.location),
pin: at(roles.pin),
service: at(roles.service),
gender: at(roles.gender),
notes: notes,
activityLog: '',
documentation: '',
addedAt: at(roles.date) || new Date().toISOString(),
updatedAt: new Date().toISOString(),
hot: false,
deal: '',
customJson: JSON.stringify(columns)
};
}
function extractPhones_(text) {
var found = [], s = String(text || '');
var re = /(\+?\d{1,4}[\s\-.]?)?(?:\(?\d{2,5}\)?[\s\-.]?)?\d{3,5}[\s\-.]?\d{3,5}(?:[\s\-.]?\d{2,5})?/g;
var m;
while ((m = re.exec(s)) !== null) {
var raw = m[0].trim();
var d = raw.replace(/\D/g, '');
if (d.length >= 8 && d.length <= 15 && found.indexOf(raw) < 0) found.push(raw);
}
return found;
}
function extractEmails_(text) {
var found = [], s = String(text || '');
var re = /[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}/g;
var m;
while ((m = re.exec(s)) !== null) {
var em = m[0].toLowerCase();
if (found.indexOf(em) < 0) found.push(em);
}
return found;
}
function cellStr_(v) {
if (v === null || typeof v === 'undefined' || v === '') return '';
if (Object.prototype.toString.call(v) === '[object Date]') {
return Utilities.formatDate(v, Session.getScriptTimeZone() || 'GMT', "yyyy-MM-dd'T'HH:mm:ss");
}
return String(v).trim();
}
function isBlank_(row) {
for (var i = 0; i < (row || []).length; i++) {
if (cellStr_(row[i])) return false;
}
return true;
}
function json_(o) {
return ContentService.createTextOutput(JSON.stringify(o)).setMimeType(ContentService.MimeType.JSON);
}
function onOpen() {
try {
SpreadsheetApp.getUi().createMenu('Nucleous')
.addItem('Setup backend sheet', 'setupNucleousBackend')
.addItem('Test export', 'testExport')
.addToUi();
} catch (e) {}
}
Required: Deploy → New deployment → Web app → Execute as Me, Who has access Anyone. Replace any old URL. In the script editor, run testExport once to verify row count before connecting in Nucleous.
Use the Web App URL from your deployed script. The name appears under Contacts in All Leads.
This database will appear under Contacts in All Leads. Open the Contacts dropdown or the dataset tabs, select this database, then use Sync now anytime to refresh rows from your Apps Script endpoint.
You can also manage it from Data Integration → Database (Open in Contacts, Sync now, Remove).
Connected databases
Manage sources linked to Lead Management. Selected databases appear under Contacts.
Connect app
×
When should leads be pushed?
Set one or more triggers. Authentication runs after you continue.
Select sheet
×
Choose one spreadsheet tab to import into Lead Management.
Select dataset
×
Choose an existing dataset or create a new one for this connection.
Integrations
Connect the tools your team already uses to your workspace
0
Filter by Type
Filter by Status
Google Workspace
Gmail
mail.google.com
Send and track outreach emails directly from your CRM. Compose personalised messages, monitor open rates, and log replies automatically to lead timelines. Follow up at exactly the right moment without switching between tools.
Not Connected
Google Sheets
sheets.google.com
Bi-directionally sync your lead pipeline with a Google Sheet. Import leads in bulk, export snapshots for reporting, or keep a live mirror of CRM data with full read and write access managed from your dashboard.
Not Connected
Google Forms
forms.google.com
Turn every form submission into a live CRM lead. Choose from ready-made enquiry and contact templates, build a custom form, or connect an existing one. Responses flow straight into your pipeline with no manual copy-paste.
Not Connected
Google Drive
drive.google.com
Attach proposals, contracts, and documents to any lead stored securely in Drive. Browse folders, upload files, create new documents, and share links with contacts — all without leaving your workspace.
Not Connected
Google Calendar
calendar.google.com
Schedule demos, follow-up calls, and check-ins directly from a lead card. Events sync in real time with your Google Calendar so nothing clashes. Shared team calendars ensure everyone knows what is booked and when.
Not Connected
Google Meet
meet.google.com
Instantly start a video call with any lead or client and attach the Meet link to their record. Generate unique meeting links, track attendance, and log call notes — keeping every conversation tied to the right lead.
Not Connected
Google Docs
docs.google.com
Draft proposals, quotations, and reports linked to specific leads. Start from scratch or pick a built-in template, then share a live link directly with the contact. Changes sync automatically and activity is logged to the lead record.
Not Connected
Google Tasks
tasks.google.com
Convert follow-up reminders and action items into Google Tasks with a single click. Tasks are assigned, prioritised, and tracked against each lead, ensuring nothing slips through and your team always knows what to do next.
Not Connected
Data & Files
CSV Import / Export
Built-in
Bulk-upload thousands of leads from any spreadsheet in seconds, or export your entire pipeline as a clean CSV for reporting, backups, or migration. No extra setup required — always available on every plan.
Coming Soon
Slack Soon
slack.com
Send real-time lead notifications and pipeline alerts to your team channels. Trigger custom messages when a lead progresses, closes, or requires follow-up — keeping your whole team in sync without leaving Slack.
HubSpot Soon
hubspot.com
Sync contacts, deals, and activity bidirectionally with HubSpot CRM. Map your pipeline stages, import existing contacts, and keep both platforms up to date automatically without manual data entry.
Zapier Soon
zapier.com
Automate CRM workflows by connecting to thousands of third-party applications. Trigger actions in other tools when leads are created, updated, or closed — no developer needed and no code required.
Microsoft Excel Soon
microsoft.com/excel
Sync CRM data with Excel workbooks stored in OneDrive or SharePoint. Import lead lists, export reports, and keep live pipelines in sync with your organisation's existing Excel-based workflows and dashboards.
No integrations found
Try a different search term
Connect Business
Google Workspace Integration
Authorize your Google account to send, receive, and track emails directly from your CRM workspace — no configuration needed and no passwords stored.
What you can do
Send outreach emails
Compose and send from your Gmail account to any lead directly from their profile
Track replies & opens
Monitor email activity, response rates, and follow-up timing across your pipeline
Log email history to leads
Every sent email is automatically logged under the lead's activity timeline
Bulk outreach campaigns
Send personalised emails to multiple leads at once from the Marketing module
Connect Google Sheets
Sign in with Google to browse, select, or create a data source. You will be able to choose an existing file or create a new one after authorization.
What you can do
Read and write data
Sync lead information with your chosen data source
Create new files
Optionally create a dedicated file for your workspace
Choose how you would like to connect your data source.
Loading your spreadsheets…
A new file will be created and connected to your workspace
Connect Google Forms
Google Workspace Integration
Connect a form to automatically capture submissions as CRM leads. Authorize with Google, then select a workflow below.
Select a template to instantly generate a functional Google Form. You can customise it further after creation.
A real Google Form will be created with the fields above and a shareable link. Authorize your Google account to continue.
Form Created — Shareable Link
Loading your forms…
Connect Google Drive
Authorize Google Drive to store and manage files from your workspace. A dedicated folder will be created automatically.
What you can do
Read and write files
Access files and folders you choose to share
Create a workspace folder
A dedicated folder will be created for your files
Connect Google Calendar
Google Workspace Integration
Schedule demos, calls, and follow-ups directly from lead cards. Events sync in real time with your Google Calendar so your whole team stays aligned.
What you can do
Create & view events
Schedule meetings and see upcoming appointments from any lead record
Team availability
Coordinate across employees and avoid double-bookings automatically
Meeting reminders
Auto-send reminders to contacts before scheduled calls or demos
Connect Google Meet
Google Workspace Integration
Start or schedule a video call with any lead in one click. Unique Meet links are generated instantly and shared automatically via email or lead record.
What you can do
Instant meeting links
Generate unique Meet links for any lead from their profile in one click
Share link via email
Meeting links can be sent to contacts directly through the Gmail integration
Calendar sync
Meetings are added to your Google Calendar and the lead's activity timeline
Connect Google Docs
Sign in with Google to create, share, and manage proposals, reports, and documents directly from your workspace.
A new document will be created and connected to your workspace
Loading your documents…
Connect Google Tasks
Google Workspace Integration
Turn pipeline actions into actionable to-dos. Follow-up tasks you create in the CRM appear in Google Tasks automatically — keeping nothing forgotten and everyone accountable.
What you can do
Create & manage tasks
Sync follow-up reminders and action items from your lead pipeline into Google Tasks
Two-way sync
Completing a task in Google Tasks automatically marks it done in the CRM too
Assign & prioritise
Tasks are assigned to the right employee with due dates and priority labels
Help
Click the Connect button and sign in with your Google account. Once authorized, follow the on-screen steps to complete setup.
If you encounter issues, ensure pop-ups are allowed in your browser and that your Google account has the necessary permissions.
Manage Integration
Data Sync Settings
Connected Sources
Sync Actions
Automation
Continuous sync
Automatically synchronize whenever leads are updated
Manage Subscription
Your current plan and usage
Current Plan
Free Plan
Lifetime free with limited features
Leads Used
0/50
Free plan limit: 50
Employees
0/3
Free plan limit: 3
Admin ID
—
Your unique account ID
Free Plan
₹0 / forever
Current
Up to 50 leads
Up to 3 employees
Lead management & funnel
Shift & attendance tracking
Platform integration
Broadcast & tickets
Instant Transfer (Paid)
Special Routing Channels (Paid)
Quotation Builder (Paid)
Jira AI & Pitch AI (Paid)
Unlimited leads & employees (Paid)
RECOMMENDED
Premium Plan
₹2,000 / month
Unlimited leads
Unlimited employees
Everything in Free Plan
Instant Lead Transfer
Special Routing Channels
Quotation Builder
Jira AI + Pitch AI
Priority support
Our team will activate your plan within 24 hours
Data Source Setup
Connected API URL
Not connected — go to Developer tab to connect
Your API URL is securely stored in your browser and auto-loaded on every login. It never leaves your device.
Upgrade your plan
Upgrade required to access this feature.
The Premium Plan at ₹2,000/month unlocks:
unlimited leads, unlimited employees, instant transfer, routing channels, quotation builder, Jira AI, and Pitch AI.
Click the button below to message us on WhatsApp. Include your Admin ID and we'll activate your plan within 24 hours.
Admin ID:—
Welcome to Nucleous
One-time setup
Let's set up your company profile to personalise your admin panel.
Admin Profile
Manage your account details, company information, and security
P
Click to change logo
Admin
—
Admin ID: —
Status: —
Active from: —
Admin Profile
Current plan
Free Plan
Personal & company
Update your profile details used across the panel.
Details
Security
Marketing & Reach
Create campaigns, reach leads across channels, track results and automate responses
Email Live
WhatsApp Live
Overview
Campaigns
Create Campaign
Audience
Responses
Automations
Analytics
Total Contacts
0
In your database
Campaigns Sent
0
All time
Avg Open Rate
—
Email campaigns
Responses
0
From campaigns
Unsubscribes
0
All time
Leads Converted
0
Via campaigns
Channel Health
Email
Reach unlimited leads
Live
WhatsApp
via wa.me links
Live
SMS
Text messages
Configure
LinkedIn
InMail outreach
Connect
Facebook
Ads + Messenger
Setup
Telegram
Bot broadcasts
Setup
Recent Campaigns
No campaigns yet — click New Campaign to start
Quick Actions
All
Email
WhatsApp
Draft
Sent
Scheduled
Campaign
Channel
Audience
Sent
Opens
Clicks
Status
Actions
No campaigns yet — create your first campaign above
1
2
3
4
5
Step 1: Campaign Basics
Campaign Details
Channel Guide
Select a channel above to see setup requirements and best practices.
Target Audience
Select which leads this campaign will reach. Filters are additive — a lead must match ALL selected filters.