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
Required field for Creating a new account.
Minimum 8 characters, with at least one uppercase letter, one lowercase letter, one number, and one special character Workspace name (no uppercase of special characters allowed) 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.
An Email can have multiple companies
A company can have multiple workspaces
After successful signup login the user automatically and send an email with verification code
user will see a bar saying “verify your account”
in the email user will receive numerical code to verify the account
Once the user clicks on verify button
user will enter the code received in email
verify the user and start the trial mode
This user will be SuperAdmin.
User will select the workspace first. then put email and password 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.
Once the forgot password is clicked ask the user for email once the proper email is given a code will be sent once the code is entered ask the user to give new password and confirm password if wrong pattern is entered show a error message user profile will be under settings user can change their name user can change their password Create Service (By Agency) Super Admin, Admin can create service, update, Delete Service page form contains type of service: One-time payment, Subscription.() User can add multiple recurrent pricing. 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 Services can’t be deleted with an active order. the delete button will be disabled on hover show “Services with active orders/subscriptions can’t be deleted” If a client is deleted it will show greyed out for all the data points that has client info created by and created date is removed (12/5/2023 -ali) All the published service list can be viewed with direct URL. Catalog URL will be “/catalog.” the individual purchase URL will be “/service_name/checkout” On top of the service/services there will be a form order details/brief (required) user can select the amount of a service. (quantity) the price will update automatically. Coupon code (to be added later) user will be able to pay directly. with the firstname, lastname, email a client will be created and an order will be created once the payment is completed. client onboarding will progress as regular. if the email address has already a client registered it will automatically create an order with status “in progress” Once the order is created after payment an invoice will be created with the paid amount and “Paid Status” after successful payment redirect to service page with a toaster saying “Payment successful” In “catalog” purchase button will be available and if no payment method is set up by agency it will show and error message (update date: 27/3/2024) Admin, super admin can create client information. 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. A client can’t can be added as a team member Admin, Super Admin, PM, Client can create proposal(catalog). (client can’t create proposal updated: 2/10/2025 PM) unpublished services can be added in proposal (added: 2-16-25) Required fields for quotation.
Select service (Required) 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.
As client can no longer send proposal remove the sent/receive option just show the table (added: 10/2/25) PM, Super Admin, Admin, Client can create an order. Required field for creating an order. Name
Select Service, (Multiple service can be selected)
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 “order_id” for you.
When client creates an order a notification will be sent to the company Super Admin & Admin. The text will be Client Facebook wants to purchase Service 1. Please review.
Super Admin & Admin can accept/reject the order. If accepts, Order status will change into ongoing. “Orvi” has accepted your order, and your order is currently 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. Only the items given below can be edited
PM, Super Admin, Admin able to create task Member can be assigned to task Required fields for task
name (min char: 3 max: 160) status - pending(default), progress, review, done. When user changes status to review it should send a notification to the client (Super Admin, Admin, PM) . Notification Text link: Mail text link: A checkbox to select if a task needs client review or not. if client review is checked Client can see those tasks from pending to completed when the task is set to in review send and email and notification to client 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 and a notification will be super admin, admin, pm. notification text link: if a client mistakenly rejects a task Super Admin, Admin, PM can either send for review again or directly mark it as complete. when the task is sent for client review assignee can’t change the task status Super Admin, Admin, PM can change the task status while in client review SuperAdmin, Admin, PM can edit the task while in client review If client review is unchecked client will be unable to see the task agency (superadmin, admin, pm, assignee) can change the task status without needing any approval. There shouldn't be any section like client comment when client review is off (Updated at 27-6-24) time log (same as onethread) 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 a task is unchecked for client review client can’t be mentioned in the comment section. If need client review is on then agency cannot create task with status “done” The idea of order form is to enable our consumers to customize their order form. The purpose of order form is to
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. Basic chatting (one on one) Team chatting (Can create groups) file share (size to be selected) Text can be edited after send. Text can be deleted after send. Admin, Super Admin, PM, Client can create ticket. Required field for creating ticket.
Select order (Required Optional)(updated:2-3-25) 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. Asignee can comment on clients queries.
Done reading?
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) discard this 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. 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. 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. 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 Super Admin, Admin can change Agency name Super admin, Admin, PM can change color, add logo 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
A option for asking us for support. If the custom domain is disconnected the Superadmin will receive email Subject: Domain on $(Company name) needs configurationAgencyHandy Domain setup deleted Body : “${company.customDomain} has been disconnected from AgencyHandy. Please review your domain Kind Regards,
Agency Handy”
Custom email template configuration Purpose:
Enable users to modify email templates for enhanced personal communication with options to edit the subject, body, email signature, and add social icons. Targeted for businesses to manage client onboarding, project proposals, task reviews, and invoice notifications.
Goals:
- Simplify email customization process.
- Allow dynamic content insertion for personalized communication.
Functional Requirements
Editable templates for client onboarding, project proposals, task reviews, and invoice acceptance. Customizable subject lines, email bodies with placeholder support, signatures, and social media links. Real-time previews of edits. (under 2 sec) Save and manage custom templates. Non-Functional
Intuitive UI for non-technical users. Fast performance with sub-2-second response for edits. Should have 2 previews web and mobile Send a test mail button for testing User Stories
1. As a user, I want to easily customize email templates to match my brand and communicate effectively with clients.
2. As a user, I need to insert dynamic fields like {{firstName}} to personalize emails automatically.
Purpose: Enable users to send emails from their custom email addresses directly through our platform, enhancing brand consistency and trust. Goals:
- Provide a seamless setup process for using custom email addresses.
- Ensure secure and reliable email delivery. Allow users to register their custom email address with the platform. Implement verification process for the ownership of the custom email address. Provide SMTP/IMAP configuration settings to integrate custom email services. Enable users to compose and send emails from the platform using their custom email address. Support secure authentication methods (e.g., OAuth 2.0) for email service providers that require it. Implement a fallback mechanism for email delivery failures. User-friendly setup interface. Ensure email delivery within 3 minutes of sending. Adhere to email security standards (e.g., SPF, DKIM, DMARC) to minimize the risk of emails being marked as spam. Scalable infrastructure to support a growing number of users and emails. Setup and Configuration Steps (For Developers) Email Address Registration & Verification:
- Users enter their custom email address.
- Send a verification email with a unique link or code to confirm ownership. SMTP/IMAP Configuration:
- Provide fields for SMTP and IMAP server details: Host, Port, Username, Password, and Encryption (SSL/TLS).
- Include instructions for common email providers and links to their documentation. Authentication Integration:
- For providers supporting OAuth 2.0, integrate the OAuth flow to request email sending permissions.
- Store access tokens securely and handle token refreshes. Email Sending Functionality:
- Develop a feature for composing emails in the platform with options for subject, body, attachments, etc.
- Utilize the configured SMTP details for sending emails. 5. Delivery Failure Handling:
- Implement logic to retry sending emails when temporary issues are encountered.
- Notify users of permanent failures and suggest troubleshooting steps.
User Stories
As a business owner, I want to send emails from my business email address through the platform to maintain a professional image. As a marketer, I need to ensure emails sent from the platform reach the inbox and not the spam folder, maintaining our reputation. As a developer, I require clear configuration steps and secure authentication methods to integrate custom email services without compromising security. All the files of an order can be accessed from here. In files there will order lists in order all the order specific files. 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 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. 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 Team member can be client 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.
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. 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? 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.) 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. Filter by payment type (Onetime/ recurring) Filter by price (select range) Sort By Priority (High to Low) Sort By Priority (Low to High) 30 days shall be counted from the payment date. when adding team member in this plan You cannot add team member in Solopreneur Plan. To add team member please upgrade your plan.
Client purchased on 1st Nov then next charge 1st Dec.
If a client purchases within trial period, the 30 days count will start from the payment date once a subscription is downgraded the Super admin will have select which team members will stay Apart from the owner everyone will show on the list. if a user has selected solo plan (49$) and want to upgrade to pro(149$) after 15 days then the adjusted price would be 124.5$. in case of the downgrade from pro (149$) to solo (49$) after 15 days the price should be 74.5$ so no charge for the first month and adjusting the price after later months as well. in this case 25.5$ adjustment in the second month. plan price/30=daily usage
upgrade price = plan price-total daily usage (no of days)
downgrade price = plan price-total daily usage
- Agency will get notification if client cancel a purchased service
‘Client’ has canceled the order ‘order_ID’ from “service_name”
- if Admin, Super Admin, PM send quotation to client, Client will get a notification
you have received a new quotation for “service_name”
- If client reject, it will sent a notification to the agency with a reason.
“Client name” has rejected the order/ the task for “order id”
- If agency rejects quotation of client, client will get a notification with a reason.
“super admin/admin/pm name” has rejected a proposal for “service name”
- If client sent quotation to agency, admin or super admin will get notification
“client name” has sent a proposal for “service name” please review.
- If agency add company member in a order, that member should get notification
“adder name” has added you in a task in a order “order id”
- if PM Creates a order, admin and super admin will get notification
a new order was created by “pm name” for “client name”
- Client should get a notification with reason for rejection if agency rejects order.
“rejector name” has rejected your order
- If agency change their task status to in "review” or creates with status “review”, client should get notification
you have a task to be reviewed for “order id”
- If agency change their task status to in review, if client accepts, agency will receive notification
client name has accepted the task
- If client rejects, he needs to give a reason for rejection which will be sent to agency with notification
client name has rejected the task
- Agency will get notification if client create an ticket
“client name” has created a ticket for “order id”
- Client will get notification if agency creates an ticket
Agency has created a ticket for order “order id”
- Client should got a notification when agency sent a invoice to client
you have received an invoice “invoice id” for order “order id”
client should get notification when order is completed “client_name” Your order has been successfully completed for “service_name”
client should get notification when order is canceled
“client_name” Your order has been canceled for “service_name”
once payment is received from client (for agency) “client_name has successfully paid for service service_name” once payment is received from client (for client) You have successfully paid for service “service_name” Subscription reminder (Agency) The subscription for [Client Name] to the service [Service Name] is due for renewal in 7 days. The subscription for [Client Name] to the service [Service Name] is due for renewal in 3 days. The subscription for [Client Name] to the service [Service Name] is due for renewal tomorrow. The subscription for [Client Name] to the service [Service Name] has missed payment Subscription reminder (Client) Your subscription to [Service Name] is due for renewal in 7 days. Your subscription to [Service Name] is due for renewal in 3 days. Your subscription to [Service Name] is due for renewal tomorrow Your subscription payment for the service [Service Name] was missed. Please update your payment details to continue using the service. Dear {client_name}
Congratulations (client_name), you have upgraded to our (package_name) package. With this now you can enjoy:
(list of features in the package)
We are very happy to have you on board at Agency Handy.
You can find your purchase receipt attached to this email.
(attach purchase receipt)
Best regards,
Agency Handy
Subject: Issue with Guest User Purchase Attempt
Dear [Agency Owner's Name],
I hope this email finds you well.
We noticed that a guest user with the email address [Guest User's Email] attempted to purchase a service (service_name) but was unable to complete the transaction. Please feel free to review the issue and follow up with the user if necessary to ensure a smooth purchasing process.
Let us know if you need any additional information or assistance.
Kind Regards,
Agency Handy
Subject: Issue with clients (client_name) Purchase Attempt
Dear [Agency Owner's Name],
I hope this email finds you well.
We noticed that a client [client_name] with the email address [clients Email] attempted to purchase a service (service_name) but was unable to complete the transaction. Please feel free to review the issue and follow up with the client if necessary to ensure a smooth purchasing process.
Let us know if you need any additional information or assistance.
Kind Regards,
Agency Handy
Subject: You have been invited to [workspace name] - Agency Handy
Hello {name},
You have been invited as a [role name] on [workspace]. To join please click the button below
[CTA: Join {workspace name}]
Best regards,
[company name]
Proposal received for both parties. Sub: You have received a new proposal for {service_name}
Hi,
{client name} has sent you a new proposal for {service_name}
{preview of our proposal page}
To accept/reject please login to your workspace.
[CTA: Login]
after login directly redirect to proposal page
Regards,
AgencyHandy
Sub: You have received a new proposal for {service_name} from {company name}
Hi,
{Company_name} has sent you a new proposal for {service_name}
{preview of our proposal page}
To accept/reject please login to your workspace.
[CTA: View proposal]
after login directly redirect to proposal page
Regards,
[Company_name]
Client has purchased a service. Subject: Order Confirmation: #[Order Number] for [service_name]
Dear [Client's Name],
We're excited to confirm that your order has been created successfully.
Order Details:
Order Number: #[Order Number] Date of Order: [Insert Date] Services Ordered: [Service name] Total Amount: [Insert Total Amount] If you have any questions or need assistance or want to see the progress, please login to the portal.
[CTA: Log in]
after login directly redirect to the order details
Regards,
[Company_name]
Client has purchased a service from catalog Subject: Order Confirmation: #[Order Number] for [service_name]
Dear [Client's Name],
We're excited to confirm that your order has been created successfully.
Order Details:
Order Number: #[Order Number] Date of Order: [Insert Date] Services Ordered: [Service name] Total Amount: [Insert Total Amount] If you have any questions or need assistance or want to see the progress, please login to the portal. You should have received an email detailing your signup/sign in process and credentials.
[CTA: Log in]
after login directly redirect to the order details
Regards,
[Company_name]
Agency created an order for client Sub: An order has been created for [client_name] by [company_name] for [service_name]
Dear [Client's Name],
We're excited to confirm that your order has been created successfully.
Order Details:
Order Number: #[Order Number] Date of Order: [Insert Date] Services Ordered: [Service name] Total Amount: [Insert Total Amount] If you have any questions or need assistance or want to see the progress, please login to the portal.
[CTA: Log in]
after login directly redirect to the order details
Regards,
[Company_name]
Sub: New Ticket Created: [Ticket Number] - [Ticket Subject]
Dear [Team/Asignee_name],
A new ticket has been created by a client.
Ticket Information:
Ticket Number: [Insert Ticket Number] Client Name: [Insert Client Name] Brief Description: [Insert Brief Description of the Issue] Action Required:
Please review the ticket details and assign it to the appropriate team member for further action. [CTA: View Ticket]
after login directly redirect to the ticket details
Agency creates a ticket for client Sub: New Ticket Created: [Ticket Number] - [Ticket Subject]
Dear [Team/Asignee_name],
A new ticket has been created by a client.
Ticket Information:
Ticket Number: [Insert Ticket Number] Client Name: [Insert Client Name] Brief Description: [Insert Brief Description of the Issue] Action Required:
Please review the ticket details and assign it to the appropriate team member for further action. [CTA: View Ticket]
after login directly redirect to the ticket details
Subject: New Comment on ticket “ticket_name/”ticket_subject”
Dear [Client's Name],
You have received a new comment on [ticket_name/”ticket_subject”]:
Date/Time: [Insert Date/Time] Comment: [Insert Comment] Please review and respond as necessary.
Thank you.
Best regards,
[Company_Name]
Subject: New Comment on ticket “ticket_name”/”ticket_subject”
Dear [Company_name],
You have received a new comment on [ticket name/”ticket_subject”]:
Date/Time: [Insert Date/Time] Comment: [Insert Comment] Please review and respond as necessary.
Thank you.
Best regards,
Agency Handy
Client (with action button) Sub: You have a task to review from [Company Name] for the [Service Name]. Action required!
Dear [Client's Name],
You have received a task to review.
Task Details:
Task Name/Number: [Insert Task Name - Number] Action Required: (button)
You can also log in into your client portal to review the task.
[login url]- redirect to the order
Thank you for your cooperation.
Best regards,
[company name]
Client (without action button) Sub: You have a task to review from [Company Name] for the [Service Name]. Action required!
Dear [Client's Name],
You have received a task to review.
Task Details:
Task Name/Number: [Insert Task Name - Number] You can log in into your client portal to review the task.
[CTA: Review Task]
after login directly redirect to the task details
Thank you for your cooperation.
Best regards,
[company name]
Subject: New Comment: [order_id] for [service_name]
Dear [Client's Name],
You have received a new comment on [order_id]:
Date/Time: [Insert Date/Time] Comment: [Insert Comment] Please review and respond as necessary.
Thank you.
Best regards,
[Company_Name]
Subject: New Comment: [order_id] for [service_name]
Dear [Company_name],
You have received a new comment on [order_id]:
Date/Time: [Insert Date/Time] Comment: [Insert Comment] Please review and respond as necessary.
Thank you.
Best regards,
Agency Handy
Payment received (to be added in template) Agency (from support@agencyhandy) Subject: Payment Confirmation for [Service Name]
Hi [Agency Owner],
We are pleased to inform you that [Client Name] has successfully paid for the service [Service Name].
Details of the transaction are as follows:
- Service Name: [Service Name]
- Payment Amount: [Payment Amount]
- Payment Date: [Payment Date]
- Invoice ID: [Invoice ID]
- Order ID: [Order ID]
regards,
Agency Handy team
Client (from agency email) Dear [Client Name],
Thank you for your payment! We have successfully received your payment for the service [Service Name].
**Payment Details: **
- Service Name: [Service Name]
- Payment Amount: [Payment Amount]
- Payment Date: [Payment Date]
- Invoice ID: [Invoice ID]
- Order ID: [Order ID]
Your account has been updated accordingly, and your service will continue without interruption. If you have any questions or need further assistance, please feel free to contact us.
Thank you for choosing [Your Company Name].
Best regards,
The [Your Company Name] Team
Payment reminder (to be added in template) Agency (from support@agencyhandy) Dear [Agency Owner],
This is a friendly reminder that the subscription for [Client Name] to the service [Service Name] is due for renewal in 7/3 days/tomorrow.
**Subscription Details:**
- Service Name: [Service Name]
- Client Name: [Client Name]
- Renewal Date: [Renewal Date]
- Subscription Amount: [Subscription Amount]
- Order ID: [Order ID]
Please ensure that all necessary steps are taken to facilitate the renewal process.
If you have any questions or need further assistance, please feel free to contact us.
Best regards,
Agency Handy Team
Client (from agency email) Dear [Client Name],
We hope you are enjoying our [Service Name]. This is a friendly reminder that your subscription is due for renewal in 2 days.
**Subscription Details:**
- Service Name: [Service Name]
- Renewal Date: [Renewal Date]
- Subscription Amount: [Subscription Amount]
- Order ID: [Order ID]
To ensure uninterrupted service, please make sure your payment details are up to date. You can manage your subscription and payment information from your account dashboard.
If you have any questions or need further assistance, please feel free to contact us.
Thank you for choosing our service!
Best regards,
Company_Name
Agency(from support @agenyhandy) Dear [Agency Owner/Admin Name],
We wanted to inform you that [Client Name] has missed their recent payment for the service [Service Name].
**Subscription Details:**
- Service Name: [Service Name]
- Client Name: [Client Name]
- Due Date: [Due Date]
- Missed Payment Amount: [Missed Payment Amount]
- Order ID: [Order ID]
Please reach out to the client to address this issue and ensure their service continues without interruption.
If you have any questions or need further assistance, please feel free to contact us.
Best regards,
Agency Handy Team
Client (from agency email) Dear [Client Name],
We hope you are well. Our records indicate that we were unable to process your recent payment for the service [Service Name].
**Subscription Details:**
- Service Name: [Service Name]
- Due Date: [Due Date]
- Missed Payment Amount: [Missed Payment Amount]
- Order ID: [Order ID]
Please update your payment details to avoid any interruption in your service. You can manage your payment information from your account dashboard.
If you have any questions or need further assistance, please feel free to contact us.
Thank you for your prompt attention to this matter.
Best regards,
Company_name
The Multi-Currency Pricing feature enables users of our SAAS platform to set service prices in different currencies, offering flexibility to cater to global markets and diverse customer preferences.
Currency Selection: Users can select the desired currency from a dropdown menu when setting service prices. Default currency should be based on location. In setting - Default currency (later version) Integration Points: Changes will be implemented across multiple platform areas: Service listing and catalog display. Order creation by agencies. Currency Display in Invoice and Proposal: The currency will be displayed and calculated as usual in invoices and proposals. For example, if the service price is set in EUR, only EUR will be shown in the proposal and invoice. A "three-dot button" will be added to the dashboard, enabling users to switch between currencies in revenue and revenue overviews. Only currencies used in services/orders will be loaded for selection. When agency is creating an order they are not allowed to add multiple currencies in one order services with the same currency can be added. The Multi-Language Translation feature enriches the user experience within our application by enabling users to access content in their preferred language. By supporting multiple languages, we enhance accessibility and usability, ensuring that our platform caters to a diverse global audience.
Language Selection: Users can easily translate content into their preferred language. Default language based on location: if we do not support that locations language yet default to English Language Switch Button: A language switch button will be placed beside the notification button, allowing users to change the language effortlessly. Initial Language Support: The feature will initially support English, Bangla, Spanish, Mandarin, French, and German languages to accommodate a broad user base. Comprehensive Translation: All content, including backend data such as priority and status, will be translated to ensure a seamless user experience across all aspects of the application. Once a language is changed it should be saved and not changed. Pricing strategy
(14 days trial) 7 days trial- changed on 10/15/2024 In trial period user will have all the services from pro plan. After trial ends Suppose user use pro feature there will an option to downgrade the plan or user have to pay for the current plan. So, lets assume, User use pro plan in the trial period and want to use teams during subscription. there will be a downgrade option where system tells the user to remove 10 members and custom domain (if it’s connected) trail will have 1tb storage When a subscription expires lock the application in billing page additionally make catalog non accessible clicking on the contact us page will open a modal for email with subject and body field that email will go to superadmin once clicked send Custom Brand (Per Workspace)
Client & Internal Team Conversation
Webhook (Per Company/Per Month))
Upload Limit attachment (per file)
Lifetime plan 1 update user update from 3 to 10
LTD will be a separate package. The pricing is 499$. user will have a coupon. the first 50 coupon users can purchase at 49$.
only available in Bangladesh user can change their lifetime plan to other plans. (upgrade/downgrade) The flow for upgrade and downgrade will be same as our other packages. for downgrade remove team members if the number is high custom domain auto disconnect. Once the user switches from lifetime to another plan user will be charged monthly/yearly. LTD
Overview
This feature enables users to purchase and redeem a limited-time Black Friday Lifetime Deal (LTD) license through a designated section on the Agency Handy landing page. Following purchase, users receive a unique redemption code via email, which they can apply within the Agency Handy platform to activate their license. Codes needed per Black friday package 200
User Stories
As a prospective user, I want to purchase a Black Friday LTD license and receive a code for redemption. As a licensed user, I want to redeem my Black Friday LTD code within Agency Handy settings to activate my subscription. Functional Requirements
Landing Page Section for Black Friday LTD: Purchase Option: Users can access the LTD section on the landing page to initiate the purchase process. Payment Flow: Users enter their email address and complete the payment for the LTD license through the checkout process. Email Collection: The system will collect the user’s email address during purchase for license delivery. Automated Email Trigger: Upon successful payment, an automated email is sent to the user. Subject: "Thank you for Purchasing Agency Handy" Body: Contains a redemption code and step-by-step instructions for code application. Code Display: The unique LTD code generated for the user. Instructions: Guide the user to "Settings > Promotion Tab > Paste the code for code redemption. Subject: Thank You for Purchasing Agency Handy's Black Friday Lifetime Deal!
Body:
Hello [User(email before@)],
Thank you for taking advantage of our exclusive Black Friday Lifetime Deal for Agency Handy! We’re thrilled to have you on board and look forward to supporting your business needs.
Here’s your unique code to redeem your lifetime access:
Code: [LTD-REDEMPTION-CODE]
To activate your license:
or log into your Agency Handy account.
Go to Settings and navigate to the Promotion tab.
Enter your code in the provided field.
Follow the prompts to complete your redemption.
Once redeemed, your lifetime access will be activated, and you’ll have full access to the benefits of Agency Handy!
Signup Button (Sign up link)
Need Help? If you have any questions or run into any issues during the redemption process, feel free to reach out to our support team at [].
Thank you once again, and welcome to the Agency Handy family!
Best regards,
The Agency Handy Team
Redemption Process within Agency Handy: Settings Section Access: Users must first sign up for an account or log in to an existing account. Promotion Tab Configuration: Users navigate to Settings > Promotion Tab Redeem Code Option: An input field for users to enter their unique code. Verification: The system verifies the code’s validity and checks for redemption status. Activation Confirmation: A success message confirming activation of the LTD license. License Application: Upon successful redemption, the user's account is upgraded to the LTD license status with access to applicable features. Account Management: The LTD license is linked to the user’s account and viewable in account settings. Non-Functional Requirements
Email Reliability: Ensure prompt and reliable email delivery upon successful payment. User Experience: Ensure the LTD section on the landing page is visually engaging and easy to navigate. Redemption Security: Codes should be uniquely generated, trackable, and secure against multiple redemptions. Performance: Ensure smooth processing of code verification and activation in real time. Acceptance Criteria
Purchase and Email Delivery: Users successfully complete the payment and receive a confirmation email with the LTD redemption code and instructions. Users can redeem their LTD code via the Promotion Tab in Settings without errors. Code validation correctly identifies valid and expired codes. Successful code redemption upgrades the user’s account to LTD license status. Account settings display LTD license status after activation. Dependencies
Payment Gateway: Integration with a payment processor for secure LTD license purchases. Email Service: Reliable email service to automate delivery of purchase confirmation and redemption code. User Account System: To enable redemption and license management post-purchase. FAQ
Can the code be redeemed more than once? No, each code is valid for a single redemption only. What if a user doesn’t receive the email? Users can request a resend of the confirmation email through the support team. Is the LTD license transferable? No, the LTD license is non-transferable and tied to the user’s account email.