Client Onboarding Checklist
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Provides a fully configurable checklist panel for managing client onboarding processes. The script displays a checklist with customizable tasks organized by categories such as Contract, Welcome, Setup, Access, Training, and Launch. You can add, complete, reopen, or delete tasks, and track overall progress with a real-time percentage completion indicator. Tasks are saved per domain, allowing separate checklists for different clients or projects. The panel also shows the time elapsed since onboarding began and supports sorting tasks by status or category.
WHERE IT RUNS
Works on all websites (match pattern *://*/*) and adapts to any domain. The checklist is tied to the current domain (e.g., clientportal.com, project.domain.com), making it perfect for client-facing portals, project management tools, CRM systems, or any web-based client workspace. Each client or project gets its own independent checklist, ensuring you never mix up onboarding tasks across different accounts.
HOW TO USE
Install the script and open your client's workspace. The checklist panel appears with default tasks and categories. Check off tasks as you complete them to see progress update automatically. Click "Add Task" to create new tasks with any category. Use the "Add Category" and "Remove Category" buttons to customize your workflow. Sort tasks by status (completed/incomplete) or by category to focus on specific areas. The panel saves your progress automatically as you work.
REAL MECHANISM: DOMAIN-KEYED PERSISTENCE WITH REACTIVE RENDERING
This script uses a domain-based storage key pattern to maintain separate checklists for each client. The getClientIdentifier() function extracts the hostname from window.location.hostname and removes "www." prefixes, creating a unique key like "clientportal.example.com". Tasks are stored using GM_setValue with a key format of "onboarding_tasks_" plus the client identifier, ensuring data isolation between clients. The renderChecklist() function applies a sorted copy of tasks based on the current sortMode, calculating progress using filter() and length properties. Each task object includes an id (generated using Date.now() and a random suffix), text, category, completed boolean, and a createdAt timestamp. The checklist renders as a series of flex rows with checkbox inputs bound to the completed state, category badges for visual context, and delete buttons. When a checkbox changes, the task object is updated, saveTasks() is called with the entire tasks array, and renderChecklist() re-renders the DOM, creating a reactive update loop. Categories are stored globally (not per-client) using a separate GM_setValue key "onboarding_categories", allowing reuse across all clients. The elapsed time since onboarding started is calculated using Math.min(...tasks.map(t => t.createdAt)) to find the earliest task creation timestamp.
THE PANEL
Drag the panel anywhere on screen by clicking and holding the header. It snaps to screen edges when released. Collapse it to a small bubble by clicking the minimize button, and expand it back by clicking the bubble. Resize the panel from any corner. Press Escape to close the configuration panel. Your position and size preferences are saved automatically per site.
PLEASE NOTE
This script requires the free BotGentz browser extension which provides the BGPanel framework and storage APIs. All data (tasks, categories, and sort preference) is stored locally in your browser using GM_setValue and never sent anywhere. No analytics, no tracking, no external calls. The script only reads the current domain to isolate checklists and never accesses user data, passwords, or sensitive information. Tasks are stored per domain, so if you work with multiple clients on the same domain, consider using a custom client identifier system or manually resetting tasks as needed.