Skip to content

Hypothesis

Most of agency use multiple apps for managing clients and internal team
So, they have to pay for each app
which increases their operation cost
Also, managing multiple apps is a hassle.
Decision 1: Agencies needs an end-to-end solution for managing clients and maintain their internal team to reduce their operational cost.

Solution

Agency handy is a client portal management solution for agencies. Here agency can manage their clients, projects and tasks. For client, there will be a similar login portal where he can check the project progress, can review the task and provide feedback if necessary.

Competitor

Product specification flow

Account
Signup
Required field for Creating a new account.
First name
Last name
Email (unique)
Password
Workspace name (Unique)
An email can be added into multiple workspaces.
After successful signup, a verification mail will be sent to the user mail.
In email URL and password will be sent.
After user click on that link, should redirect to card information.
If the user is redirected from affiliate URL show lifetime deal option else only the credit card information
Once the promo for lifetime is accepted no need to ask for credit card information
User can only view the lifetime promo tab if they come from affiliate links.
User can add promos from settings as well.
After both promo and credit card section take the user to dashboard
User can also signup with google.
Sign in
User will select the workspace first. then put email and password
After successful 200,
Admin, Super Admin, Client will redirect to their dashboard. (Dashboard data provided in the dashboard section)
Assignee, PM will redirect to Order list.
We are Making every company unique in DB. Under that company a user can be a client but in a different company he can be an agency owner.
Forget Password:
User Profile
Service
Create Service (By Agency)
Super Admin, Admin can create service, update, Delete Service page form contains
name min(3), max(64),
descriptions min(3) max (250),
price min(1),
Image,
duration,
type of service: One-time payment, Recurrent.
In recurrent 2 options:
weekly
monthly
User can add multiple recurrent pricing.
status: isPublish (Disable for)
SuperAdmin, Admin, Client, PM can view the service.
SuperAdmin, Admin, PM can delete, edit the service.
Every service will have two options ‘Order’ and ‘Send Quotation.’
While deleting a service user will get prompt with checkbox to confirm if he wants to delete the orders and quotations relating to service.
If the clients select then delete the service and orders
if not only delete the service from view and keep the orders
Client
Admin, super admin can create client information.
Name (Required)
address
email (Required)
Company
Status
Lead (By default)
Status (Once an order is given)
Import client list from csv, excel.
From CSV we will take the required name and email field.
The optional fields if it is populated like address (city, state, country etc.) we will take it else discard.
Send a welcome email to client email address with username, password, and login url.
While deleting a client give prompt with a Checkbox to confirm if he wants to delete order, invoice, quotations and tickets.
Items the user selects will be deleted.
Items the user didn’t select will remain.
Quotation
Admin, Super Admin, PM, Client can create quotation.
Required fields for quotation.
Id (auto increment)
Order Brief
Duration
Attachment
Quantity
Budget
Select service (Required)
PM
If Admin, Super Admin, PM creates a quotation then they need to select a client. if Client creates the quotation, the field don’t need to show.
Admin, Super Admin, PM will send it to the agency. Client will get notification
Orvi sends you a quotation. Please review it.
Client can review the quotation.
If accepts, it will create an order automatically. Check section
If rejects, send a notification to the person with reasoning. the text will be
Facebook rejects your quotation because the price is too high
Client will send it to the agency. Super Admin & Admin will get notification
Facebook sends you a quotation. Please review it.
Super Admin, Admin can review the quotation.
If accepts, it will create an order automatically. Check section
If rejects, send a notification to client with reasoning. the text will be
Orvi rejects your quotation because the price is too high
For Each rejection, User has to send new quotation. After sending a quotation there’s no way to edit it.
Order Flow
PM, Super Admin, Admin, Client can create an order.
Required field for creating an order.
Name
Select Service,
Select client,
Order Brief,
kick off date (optional),
end date (optional),
Attachments (optional),
budget,
Select PM (optional),
id(incremental)
Quantity (default 1)
Status - Pending, Ongoing, Review, Completed, Cancelled
An order have 5 status. Pending, Ongoing, In Review, Complete, Cancelled
After creating an order (By PM, Super admin, admin) all the super admin in a company will get access to the order and send a created order notification to the client. the text will be.
Orvi created an order for you.
When client creates an order a notification will be sent to the company Super Admin & Admin. The text will be
Client Facebook ordered Service 1
Super Admin & Admin can accept/reject the order.
If accepts, Order status will change into ongoing.
If rejects, Rejecter will show the reason. A notification will sent to the client. The text
Orvi rejects your order because the price is too high.
Only PM, Super Admin, Admin can change the status.
The created person also add to the order. His role will be his default role.
Orvi added you in order 1.
SuperAdmin, Admin, PM can add employee in order. The member will get notification.
Super Admin, Admin, PM, Client can send feedback/chat
SuperAdmin, Admin, PM can create discussion
When new order created one default discussion would be created. “client name”
Admin, SuperAdmin can create other discussion and add team members from order list in the discussion.
While deleting the order client prompt with checkbox of tickets, invoice
Items the user selects will be deleted.
Items the user didn’t select will remain.
Task
PM, Super Admin, Admin able to create task
Member can be assigned to task
Required fields for task
name
description
manual progress
assignee
status - pending, progress, review, done.
When user changes status to review it should send a notification to the client (Super Admin, Admin, PM)
A checkbox to select if a task needs client review or not.
Client can see only tasks in review and done.
if client accepts, the status will move to done and task will mark as complete. Notification will be sent to super admin, admin, pm.
if client rejects, the status will move to progress.
If client review is unchecked, it will work same as onethread.
time log (same as onethread)
label
Priority
Task has 2 views. Board and List.
List view should have search, filter, sorting
A board can be make by status and assignee
Client can only view the task
Assignee can see only his assigned task.
Super Admin, Admin, PM, Assignee, Client can comment/chat in task.
A selection box for tasks that needs client review.
By default, it is checked.
If it checked that specific task requires client review if unchecked doesn’t require client review.
A separate box for both client and internal team. Only admin, super admin, PM can send and reply feedback to the clients. (For task)
If need client review is on then agency cannot create task with status “done”
Acceptance Test:
Task Name field is limited to a reasonable character count.
Task Name field has proper validation for special characters.
Description field is available for providing task details.
Assignee field is a dropdown for selecting the task assignee.
Assignee options are based on team members or users.
Kick-off Date field is available for specifying when the task starts.
End Date field is available for setting the task's due date.
Kick-off Date and End Date fields include date picker controls.
End date must be later than start date
Status field for tracking the task's progress (e.g., "To Do," "In Progress," "Completed").
Checkbox for indicating whether the task requires client review.
Proper error messages for missing or invalid task information.
Create button should save task
Task modal
Should see task id
Task name update works properly
Description can add
Description can update
Can attach file through attachment
Can see number of attachment
Attachment can remove
Attachment can download
Can see the Activity for client
Can see the Activity for Team
Can see the comment
Can sort by Newest First
Can sort by Oldest First
Can see the task Progress
Can see the task created date
can see the status
Can update the Status
Can see the members associated with the task
Can add more members
Can see the label
Can update label
Can see the Priority level
Can Change Priority level
Can see the Start date
Can edit start date
Verify if a modal appears asking for reason of changing start date
Can see due date
can edit due date
Verify if a modal appears asking for reason of changing due date
Can see time Reminder
Can update time reminder
Can add link
Can add title of link
Can add web address at URL box
Can user see the added link
Can add time entry
Can complete a task
Task List Page
Task Name column displays the names of tasks.
Progress column visually indicates task progress (e.g., percentage completion).
Label column allows users to categorize tasks with labels or tags.
Multiple label should show in +1, +2
Assignee column shows the names of task assignees.
Multiple assignee should show in +1, +2
Status column displays the current status of each task.
Due Date column shows the task's due date
Ability to sort tasks by various criteria (e.g., task name, due date, status).
Option to filter tasks by status (e.g., "To Do," "In Progress," "Completed").
Search functionality for finding specific tasks by Task Name, Assignee, or Label.
Clear and labeled headers for each column.
Pagination or infinite scrolling for handling a large number of tasks.
Proper alignment and spacing of elements.
User-friendly error messages for actions like sorting and filtering.
Clear icons or labels for task status (e.g., "To Do," "In Progress," "Completed").
Option to delete tasks individually or in bulk from the list view.
Confirmation or warning dialog before deleting a task.
Discussion
A chatting system similar to telegram/WhatsApp
A discussion sidebar with all the discussions
Whoever creates a team discussion will be the admin.
Once a order is created a Discussion is created automatically for that order
Members would be Client, Admin, Super Admin, PM (if there is one)
Superadmin , Admin can add members to the discussion.
Superadmin , Admin can create a separate discussion with team members.
Features
Basic chatting (one on one)
Team chatting (Can create groups)
file share (size to be selected)
Like, dislike
Text can be edited after send.
Text can be deleted after send.
Ticket management
Admin, Super Admin, PM, Client can create ticket.
Required field for creating ticket.
Select order (Required)
Name (Required)
Description
Assignee
Priority
Issued Date
Status: Open, close, Hold
Time log (from ticket creation time to close, timer will pause when ticket is on hold)
Once a ticket is created, Client can’t edit anything on the ticket but can leave comments
Super admin, Admin, PM can edit the description of the ticket which is created by agency and client.
Super admin, Admin, PM, Assignee can change the status, priority and assign members
To close a ticket a popup box for the closing statements.
Closed ticket can be reopened.
In case of reopening a pop up box will be opened to state the reason to reopen.
Invoice
Invoice Flow
Agency creates the invoice.
Once the invoice is created the status is draft
Send the invoice to client by clicking send to client button and the status is changed to open.
From open status agency can change the status to paid, void, uncollectable.
client can only view the generated invoice.
both parties can download the invoice
invoice generate should contain - created date, paid date/Void date.
When showing invoice show the service
When the status is changed to paid/void. auto capture the paidDate’
Agency logo and address will be added in the invoice(template)
In draft, open and uncollectable agency can edit the paid, due and discount.
Once the invoice is sent it will have the payment(stripe) link in the invoice
once the user pays using the link the status will automatically change to paid.
Create invoice.
invoice creation for client (agency) (Super admin, admin, PM can create invoice)
client name, order, address, partial amount, total amount, upfront, due date, created, discount%, status - draft, open(Unpaid), paid, void(cancelled), uncollectable.
Status details
Draft
The invoice isn’t ready to use. All invoices start in draft status.
Edit any part of the invoice.
When the invoice is ready to use, finalize it by changing its status to open.
If the invoice isn’t associated with a subscription, delete it.
Open/Unpaid
The invoice is finalized and awaiting payment.
Send the invoice to a customer for payment.
Change the invoice’s status to paid, void, or uncollectible.
Paid (The Invoice is paid)
Void (This invoice is canceled.)
Uncollectable (The customer is unlikely to pay the invoice. Normally, you treat it as bad debt in your accounting process)
Change the invoice’s status to void or paid.
Client name selected from dropdown.
order selected from dropdown.
textbox for amount, discount
date selector
Role Permission
Role Permission
0
Super Admin
Admin
PM
assignee
Client
1
Can create a service
Can create a service
can create a service
2
Can view Unpublished service
Can view Unpublished service
Can view Unpublished service
Can view Unpublished service
N/A
3
View Published service
View Published service
View Published service
View Published service
View Published service
4
Can unpublish a service
Can unpublish a service
Can unpublish a service
5
Update a service
Update a service
Update a service
6
Delete a service
Delete a service
Delete a service
7
Create an order
Create an order
Create an order
N/A
Create an order
8
Can View all orders
Can View all orders
Can View all orders
Can view assigned orders
Can view own order (self order and a client of)
9
View orders list
View orders list
View orders list
View orders list
View orders list
10
Update an order
Update an order
Update an order
11
create a discussion
create a discussion
create a discussion
12
Add member in discussion
Add member in discussion
Add member in discussion
13
Can view all Discussions
Can View all Discussions
Can view all Discussions
Can view assigned discussion
Can view discussions which is a member of
14
create a task in an order
create a task in an order
create a task in an order
Can only view the task (in review, done)
15
Can View all tasks
Can View all tasks
Can View all tasks
Can view assigned tasks
Can only view the task (in review, done)
16
Can assign member in order
Can assign member in order
Can assign member in order
17
Can remove a member in order
Can remove a member in order
Can remove a member in order
18
Edit/update a task
Edit/update a task
Edit/update a task
Edit/update a task if assigned
19
delete a task
delete a task
delete a task
20
Can send a task to client for approval
Can send to client for approval
Can send to client for approval
Can approve/reject a task
21
Can assign member in a task
Can assign member in a task
Can assign member in a task
N/A
N/A
22
Can remove a member in task
Can remove a member in task
Can remove a member in task
23
can change a task status
can change a task status
can change a task status
can change assigned task status
24
Add/remove a client
Add/remove a client
N/A
N/A
N/A
25
Can create invoice
Can create invoice
can create invoice
26
Can update invoice
Can update invoice
Can update invoice
27
Can delete invoice
Can delete invoice
Can delete invoice
28
Can View all invoices
Can View all invoices
Can View all invoices
Can View own invoices
29
Create a ticket
Create a ticket
Create a ticket
Create a ticket
30
Update a ticket
Update a ticket
Update assigned ticket
update own created ticket(to close and comment on the ticket)
31
Close a ticket
Close a ticket
Close a ticket
Close a ticket (If assigned)
Close a ticket
32
Can view all tickets
Can view all tickets
Can view all tickets
Can view all tickets
Can view own tickets
33
Can send feedback
Can send feedback
can send feedback
can send feedback to assigned task
can send feedback
34
can change agency name, color, logo
can change agency name, color, logo
can change agency, color, logo
35
Can create a quotation
Can create a quotation
Can create a quotation
Can create a quotation
36
Can delete a quotation
Can delete a quotation
Can delete a quotation
37
Can approve/reject a quotation sent by client
Can approve/reject a quotation sent by client
Can approve/reject a quotation sent by client
Can approve/reject a quotation sent by agency
38
Can view all quotations
Can view all quotations
Can view all quotations
Can view own quotations. (sent by client and sent by agency)
39
add team member
add team member
can add team member
40
Can View all the members
Can view all the members
41
Can change a members role
Can change a members role
42
Can delete a member
Can delete a member
43
Can get timesheet
Can get timesheet
Can get timesheet
Can view his own timesheet
44
Can delete workspace
45
Can view revenue widget
There are no rows in this table
Settings
Profile
Name
password
Super Admin, Admin can change Agency name
Super admin, Admin, PM can change color, add logo
Navbar
Top bar
Promo code
Custom Domain Setup
It is for our paid customers. It will show in trial but not accessible.
Under settings > Company profile > Custom domain setup
A text box for domain name
in list view type, Name, Value, status and delete option
Name will have the subdomain value and Value will have the
like for and agencyhandy.com
Example
0
Type
Name
Value
Status
1
CName
testing
testing.onethread.com
2
Cname
@
agencyhandy.com
There are no rows in this table
A option for asking us for support.
If the custom domain is disconnected the Superadmin will receive email
Subject: AgencyHandy Domain setup deleted
Body : “${company.customDomain} has been disconnected from AgencyHandy. Please review your domain”
Files
All the files of an order can be accessed from here.
In files there will order lists
in order all the order specific files.
Dashboard
Widgets
Revenue (Super admin)
Only paid invoices will be calculated.
No of Unpaid invoice (Super Admin, Admin, PM)
recent order, recent opened ticket (Super admin, admin, PM)
Recent order - list of five last orders
Recent tickets list of five last opened tickets

no of clients
revenue month based.
new quotations
If agency creates a ticket with open status, it should show in the Recent open ticket section of client dashboard
For recent order and tickets from dashboard onclick should redirect.
Teams
Super Admin, Admin,PM can add team member.
To add team member email and role is required.
Super admin, admin can delete a team member.
Super admin, admin can change role.
Once a user is invited/added in team
user will get a subdomain sign up URL

Integration
A sidebar button where upon interacting will take us to Integration panel.
In the panel Integration item list (Stripe, drive, quickbook, zapier etc).
Only Superadmin can integrate and will see this panel.
Every item will have connect and disconnect option.
Full integration item list given below.
Zapier
Google and Onedrive
Super admin can integrate Google /One Drive
once the connection is established “Files” will sync
Initially a folder will be created with the workspace name
Then inside that folder it will follow the same structure as files.
QUESTION:
How should the folder structure be? Putting everything in "order" or "service" won't cut it since there's quotation which doesn't belong to neither of them.
What will happen if user remove files from drive?

Outloook and
Google Docs (2nd)
Google Sheet (2nd)
Stripe (1st)
We will be using direct charges system for this (we will not take any charges agency will bear the clients transaction charges)
Integration with Stripe’s payment processing platform.
Support for credit cards, debit cards
store payment details securely.
send invoices to recurring customers.
show payment history of order.
Support for custom pricing models. (discount, individual pricing etc.)
User story
As a client, I want to be able to charge my clients using Stripe.
As a client, I want to be able to store my payment details securely so that I don’t have to enter them every time I make a payment.
As a client, I want to be able to receive invoices for recurring payments.
As an administrator, I want to be able to customize pricing models so that I can offer different pricing options to different clients.
QuickBook (3rd)
Hubspot
Whatsapp
Filtering
Invoice
Filter by Client
Filter by service
Filter by status
Order
Filter by status
Filter by service
Filter by client
Filter by due date
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.