Generalize the hr.employee activity plan to any model, allowing to create activity plan that can be launched on any model. The activity can now be created in batch by selecting multiple record in the list view and then clicking on a "clock" icon in a row similarly to the batch records update (selecting multiple records allows to change for example their name in batch in the list view). We implement also that functionality for the plan, allowing to launch a plan on multiple records at once. We also centralize the launching of activity or activity plan through either the "Activities" button in the chatter or the "clock" button in the view list. Scheduling activity is now taken in charge by a wizard that can schedule a single activity as well as a plan. We add/update tests for checking that the wizard is launched with the right record selection (on a single record or a batch) and add tests for checking the wizard itself. The plan can be defined through an added menu in the technical admin menu but also through configuration menu added in the module crm, project. Technical notes: In the added wizard, to determine that there is a error, we introduce the has_error field because we cannot use easily the error field for that. Indeed, to determine that there is no error, we have to compare it to "<p><br></p>" (more precisely <p><br></p>) which is not handy and may change in the future. This is because when we write False on field error and read it after, we get "<p><br></p>". Instead, we centralize this weird comparison in the model in the compute method of has_error. The ActivityListPopover still displays the activity of the record on which it has been triggered but the button to schedule activity will launch a wizard that create activities in batch for the selected records if more than one was selected. For that, the ActivityListPopover component receives now an additional prop: resIds (selected records) on top of the resId prop (record on which the popup has been triggered). Note that when the line that trigger the popup is not selected, the batch mode is disabled to avoid confusion. Test are updated because the wizard is opened instead of the activity form to schedule a new activity and as the form view is only used to edit already existing activities, default_res_id and default_res_model are no longer passed. We defines date_deadline and date_plan_deadline in the schedule wizard because those date are managed differently (default value, required or not, ...). Task-3390865 Part-of: odoo/odoo#137969
Odoo CRM
Boost sales productivity, improve win rates, grow revenue with the Odoo Open Source CRM.
Manage your sales funnel with no effort. Attract leads, follow-up on phone calls and meetings. Analyse the quality of your leads to make informed decisions and save time by integrating emails directly into the application.
Your Sales Funnel, The Way You Like It
Track your opportunities pipeline with the revolutionary kanban view. Work inside your sales funnel and get instant visual information about next actions, new messages, top opportunities and expected revenues.
Lead Management Made Easy
Create leads automatically from incoming emails. Analyse leads efficiency and compare performance by campaigns, channels or Sales Team.
Find duplicates, merge leads and assign them to the right salesperson in one operation. Spend less time on administration and more time on qualifying leads.
Organize Your Opportunities
Get your opportunities organized to stay focused on the best deals. Manage all your customer interactions from the opportunity like emails, phone calls, internal notes, meetings and quotations.
Follow opportunities that interest you to get notified upon specific events: deal won or lost, stage changed, new customer demand, etc.
Email Integration and Automation
Work with the email applications you already use every day. Whether your company uses Microsoft Outlook or Gmail, no one needs to change the way they work, so everyone stays productive.
Route, sort and filter incoming emails automatically. Odoo CRM handles incoming emails and route them to the right opportunities or Sales Team. New leads are created on the fly and interested salespersons are notified automatically.
Collaborative Agenda
Schedule your meetings and phone calls using the integrated calendar. You can see your agenda and your colleagues' in one view. As a manager, it's easy to see what your team is busy with.
Lead Automation and Marketing Campaigns
Drive performance by automating tasks with Odoo CRM.
Use our marketing campaigns to automate lead acquisition, follow ups and promotions. Define automation rules (e.g. ask a salesperson to call, send an email, ...) based on triggers (no activity since 20 days, answered a promotional email, etc.)
Optimize campaigns from lead to close, on every channel. Make smarter decisions about where to invest and show the impact of your marketing activities on your company's bottom line.
Customize Your Sales Cycle
Customize your sales cycle by configuring sales stages that perfectly fit your sales approach. Control statistics to get accurate forecasts to improve your sales performance at every stage of your customer relationship.
Drive Engagement with Gamification
Leverage your team's natural desire for competition
Reinforce good habits and improve win rates with real-time recognition and rewards inspired by game mechanics. Align Sales Teams around clear business objectives with challenges, personal objectives and team leader boards.
Leaderboards
Promote leaders and competition amongst Sales Team with performance ratios.
Personal Objectives
Assign clear goals to users to align them with the company objectives.
Team Targets
Compare revenues with forecasts and budgets in real time.