{"id":57,"date":"2026-10-18T07:49:18","date_gmt":"2026-10-18T07:49:18","guid":{"rendered":"https:\/\/7dayscare.com\/?page_id=57"},"modified":"2026-10-18T08:01:59","modified_gmt":"2026-10-18T08:01:59","slug":"features","status":"publish","type":"page","link":"https:\/\/7dayscare.com\/index.php\/features\/","title":{"rendered":"Features"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"57\" class=\"elementor elementor-57\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ff89410 e-con-full e-flex e-con e-parent\" data-id=\"ff89410\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0b885d0 elementor-widget elementor-widget-html\" data-id=\"0b885d0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"sdc-page-head\">\r\n  <div class=\"sdc-wrap\">\r\n    <div class=\"sdc-crumbs\"><a href=\"\/\">Home<\/a><span>&#8250;<\/span><a href=\"\/for-companies\/\">For companies<\/a><span>&#8250;<\/span><span>The platform<\/span><\/div>\r\n    <p class=\"sdc-eyebrow\">Everything in a self-hosted instance<\/p>\r\n    <h1>150 parts, and <span class=\"sdc-grad-text\">what each one is for<\/span>.<\/h1>\r\n    <p class=\"sdc-hero-lede\">This is the whole inventory of an instance on your own infrastructure: the\r\n      modules we build for clinical work, and the free Odoo Community applications underneath\r\n      them. <strong>Nothing on this page carries a licence fee or a charge per user<\/strong> \u2014\r\n      the open-source foundation is free, and what you pay for is the work of fitting it to\r\n      your organisation.<\/p>\r\n    <div class=\"sdc-hero-actions\" style=\"margin-top:var(--sdc-space-8)\">\r\n      <a class=\"sdc-btn sdc-btn--primary\" href=\"\/pricing\/\">Price the modules you need<\/a>\r\n      <a class=\"sdc-btn sdc-btn--ghost sdc-on-dark\" href=\"\/for-companies\/\">Why an instance of your own<\/a>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-counts\" style=\"margin-top:var(--sdc-space-10)\">\r\n      <div class=\"sdc-count\"><b>85<\/b><span>modules we build<\/span><\/div>\r\n      <div class=\"sdc-count\"><b>43<\/b><span>Odoo Community entries<\/span><\/div>\r\n      <div class=\"sdc-count\"><b>138<\/b><span>Odoo applications covered<\/span><\/div>\r\n      <div class=\"sdc-count\"><b>22<\/b><span>app and gateway areas<\/span><\/div>\r\n      <div class=\"sdc-count\"><b>0<\/b><span>per-user licence fees<\/span><\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8a4a09d e-con-full e-flex e-con e-parent\" data-id=\"8a4a09d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-503f76b elementor-widget elementor-widget-html\" data-id=\"503f76b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"sdc-band\" id=\"jump\">\r\n  <div class=\"sdc-wrap\">\r\n    <p class=\"sdc-eyebrow sdc-center\">The nineteen groups<\/p>\r\n    <h2 class=\"sdc-section-title sdc-center\">Jump to the part you are evaluating<\/h2>\r\n    <div class=\"sdc-jumpgrid\">\r\n      <a href=\"#g-mobile\">The mobile app <i>14<\/i><\/a>\r\n      <a href=\"#g-gateway\">The API gateway <i>8<\/i><\/a>\r\n      <a href=\"#g-platform\">The clinic platform <i>15<\/i><\/a>\r\n      <a href=\"#g-record\">The clinical record <i>11<\/i><\/a>\r\n      <a href=\"#g-pay\">Paying the professionals <i>2<\/i><\/a>\r\n      <a href=\"#g-experts\">Independent experts and the marketplace <i>4<\/i><\/a>\r\n      <a href=\"#g-secure\">Secure documents <i>9<\/i><\/a>\r\n      <a href=\"#g-clinical\">Clinical records and jurisdictions <i>11<\/i><\/a>\r\n      <a href=\"#g-esign\">Electronic signature <i>7<\/i><\/a>\r\n      <a href=\"#g-services\">Platform services <i>4<\/i><\/a>\r\n      <a href=\"#g-odoofoundation\">foundation <i>8<\/i><\/a>\r\n      <a href=\"#g-odoomoney\">sales, money and payments <i>8<\/i><\/a>\r\n      <a href=\"#g-odoocrm\">CRM, messaging and marketing <i>6<\/i><\/a>\r\n      <a href=\"#g-odooweb\">website and eCommerce <i>5<\/i><\/a>\r\n      <a href=\"#g-odoopeople\">people, delivery and scheduling <i>9<\/i><\/a>\r\n      <a href=\"#g-odooavailable\">installed-ready, switched off <i>7<\/i><\/a>\r\n      <a href=\"#g-contract\">Contract lifecycle <i>12<\/i><\/a>\r\n      <a href=\"#g-rules\">Contract rules <i>2<\/i><\/a>\r\n      <a href=\"#g-packs\">Contract industry packs <i>8<\/i><\/a>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6effbb4 e-con-full e-flex e-con e-parent\" data-id=\"6effbb4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ab56b61 elementor-widget elementor-widget-html\" data-id=\"ab56b61\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"sdc-band sdc-band--subtle\" id=\"apps\">\r\n  <div class=\"sdc-wrap\">\r\n    <p class=\"sdc-eyebrow sdc-center\">The part people ask about by name<\/p>\r\n    <h2 class=\"sdc-section-title sdc-center\">The free Odoo applications, switched on as you need them<\/h2>\r\n    <p class=\"sdc-section-lede sdc-center\">These are not add-ons we resell. They are Odoo Community\r\n      applications under an open licence, running in your instance, and they cost nothing to\r\n      licence however many people use them. Every one of them is covered by a module below.<\/p>\r\n    <p class=\"sdc-section-lede sdc-center\" style=\"margin-top:calc(var(--sdc-space-6) * -1)\">Some live inside\r\n      another: <b>quotations<\/b> are part of Sales, <b>timesheets<\/b> part of Project, and\r\n      <b>live chat<\/b>, <b>forum<\/b> and <b>blog<\/b> part of Website. The module cards below name\r\n      every application each one accounts for.<\/p>\r\n    <div class=\"sdc-apps\">\r\n      <span class=\"sdc-app\">CRM<\/span>\r\n      <span class=\"sdc-app\">Sales<\/span>\r\n      <span class=\"sdc-app\">Invoicing<\/span>\r\n      <span class=\"sdc-app\">Contacts<\/span>\r\n      <span class=\"sdc-app\">Calendar<\/span>\r\n      <span class=\"sdc-app\">Discuss<\/span>\r\n      <span class=\"sdc-app\">Project<\/span>\r\n      <span class=\"sdc-app\">Employees<\/span>\r\n      <span class=\"sdc-app\">Recruitment<\/span>\r\n      <span class=\"sdc-app\">Attendances<\/span>\r\n      <span class=\"sdc-app\">Time Off<\/span>\r\n      <span class=\"sdc-app\">Expenses<\/span>\r\n      <span class=\"sdc-app\">Email Marketing<\/span>\r\n      <span class=\"sdc-app\">Events<\/span>\r\n      <span class=\"sdc-app\">Surveys<\/span>\r\n      <span class=\"sdc-app\">eLearning<\/span>\r\n      <span class=\"sdc-app\">Lunch<\/span>\r\n      <span class=\"sdc-app\">Fleet<\/span>\r\n    <\/div>\r\n    <div class=\"sdc-notice\" style=\"margin-top:var(--sdc-space-10)\">\r\n      <strong>What you actually pay for<\/strong>\r\n      <p>Setting it up, fitting it to how your organisation works, and supporting it. Never the\r\n        software that already exists. 138 Odoo applications are accounted for on this\r\n        page and not one of them is a line on your invoice.<\/p>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bcc6b42 e-con-full e-flex e-con e-parent\" data-id=\"bcc6b42\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c44ef84 elementor-widget elementor-widget-html\" data-id=\"c44ef84\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"sdc-band\" id=\"ours\">\r\n  <div class=\"sdc-wrap\">\r\n    <p class=\"sdc-eyebrow sdc-center\">Built for clinical work<\/p>\r\n    <h2 class=\"sdc-section-title sdc-center\">The 85 modules we build and maintain<\/h2>\r\n    <p class=\"sdc-section-lede sdc-center\">The part that makes this a clinical system rather than a business one. Each installs and uninstalls on its own, so an instance carries what it uses and nothing else.<\/p>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-platform\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>The clinic platform<\/h3>\r\n        <span class=\"sdc-feature-group-count\">15<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">What a mental-health practice runs on day to day: the diary, the sale of a session, the professionals who deliver it, and the reports a manager opens each morning.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Booking &amp; Scheduling<\/h3>\r\n          <p>The scheduling engine underneath everything else \u2014 calendars, availability, rooms and the rules that decide which slots a client is actually allowed to see.<\/p>\r\n          <ul>\r\n            <li>An availability engine that resolves weekly hours, dated exceptions and existing bookings into free slots<\/li>\r\n            <li>Schedulers, hosts, locations and rooms, with capacity and clash detection<\/li>\r\n            <li>Slot rules, waitlists and automatic slot offers when a booking is freed<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Paid Meeting Booking<\/h3>\r\n          <p>Sells one-to-one sessions as credits. This is the module that makes buying and booking two separate steps, which is what allows a package to be sold today and scheduled over months.<\/p>\r\n          <ul>\r\n            <li>Sessions sold as credits against a product, singly or as a package<\/li>\r\n            <li>Package service agreements accepted at purchase and kept at the version accepted<\/li>\r\n            <li>Tiered cancellation policies with notice windows, penalties and a grace period<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Clinic Platform<\/h3>\r\n          <p>The application layer: professionals and their public profiles, the mobile API, content and community, notifications, and the client-facing account.<\/p>\r\n          <ul>\r\n            <li>Expert profiles with a verification workflow, credentials, services and calendars<\/li>\r\n            <li>Reviews, ratings, public questions and the expert dashboard behind them<\/li>\r\n            <li>REST endpoints for the mobile app, JWT authentication, and WebSocket sessions<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Clinic<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Clinic Reports<\/h3>\r\n          <p>The seventeen management reports. Twelve ask whether the clinic\u2019s record matches what happened; four compare how professionals are doing; one sits above them all.<\/p>\r\n          <ul>\r\n            <li>Alignment lists: stuck sessions, unbooked credits, coverage vs demand, money chain, fee ledger<\/li>\r\n            <li>Payout readiness, cancellation conduct, compliance file, client continuity and the moderation queue<\/li>\r\n            <li>Sessions without a report, and cancelled sessions read alongside conduct<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Session Reports<\/h3>\r\n          <p>The clinical note a professional files after a held session \u2014 stored as a secure document about the client rather than as an attachment on a meeting.<\/p>\r\n          <ul>\r\n            <li>A report filed against the session and recorded as being about the client<\/li>\r\n            <li>Encrypted at rest on the secure document service, with a key per version<\/li>\r\n            <li>Access decided only by the care team resolution, never by a role or by seniority<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Memberships<\/h3>\r\n          <p>A standing arrangement rather than a purchase each time: a plan sold in the shop, and one client\u2019s membership against it.<\/p>\r\n          <ul>\r\n            <li>Plans are shop products with an image and a description; the public catalogue is at \/memberships<\/li>\r\n            <li>A membership carries session credits, chat access and offline consultation minutes<\/li>\r\n            <li>Credits stay ordinary session credits, so booking never learns a second rulebook<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Metered Chat Consultations<\/h3>\r\n          <p>Expert time bought as minutes rather than as an appointment, spent in chat and accounted for to the minute.<\/p>\r\n          <ul>\r\n            <li>A service can sell a budget of expert minutes, with an optional validity window<\/li>\r\n            <li>Rate card on the company, overridable per service<\/li>\r\n            <li>A ledger entry per charge, and a statement both the client and the expert can open<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Intake Forms<\/h3>\r\n          <p>The questionnaire a client fills before the first session, stored as clinical content rather than as survey answers.<\/p>\r\n          <ul>\r\n            <li>A service names the questionnaire that goes with it<\/li>\r\n            <li>The client fills it before the session, from their own pages<\/li>\r\n            <li>Answers are written straight to an encrypted document \u2014 never left in the survey\u2019s own storage<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Offline Payment Review<\/h3>\r\n          <p>Bank transfer as a payment route, for clinics that want a person to look at every order before and after the money moves.<\/p>\r\n          <ul>\r\n            <li>Approve the order, invoice it, take the proof of transfer, approve the proof, then mint the credits<\/li>\r\n            <li>Credits appear only once the proof is approved, so an unpaid order cannot book a session<\/li>\r\n            <li>A rejection carries its reason, and the order goes back to the person who can fix it<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Offline Payment \u2014 client pages<\/h3>\r\n          <p>The client-facing half of the offline route: where they pay, what they upload, and what the order is waiting for.<\/p>\r\n          <ul>\r\n            <li>Each state has its own colour and mark on My orders, so waiting is visibly different from rejected<\/li>\r\n            <li>Pay and upload the proof in one dialog, without leaving the order<\/li>\r\n            <li>The rejection reason is shown where the person who has to act on it will read it<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Accountant Dashboard<\/h3>\r\n          <p>The books, on a dashboard of their own: what came in, what is owed, what delivery cost and what is still to come. Separate from the administrator&#39;s by design \u2014 chasing an unpaid invoice on the floor is one job, and keeping the ledger is another.<\/p>\r\n          <ul>\r\n            <li>A landing page of four money tiles, six health ratios, six charts and a flag list<\/li>\r\n            <li>Twenty-one reports: cash, revenue, delivery cost, forecast, leakage and two control checklists<\/li>\r\n            <li>Accrual or cash, five periods and a custom range, carried through every drill-down<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Team Dashboards<\/h3>\r\n          <p>What needs doing, for the four teams around the clinic. Sales, people, marketing and delivery each get a page, and every page opens with the same question: what is late, what is now, what is coming, and what has nobody promised to act on.<\/p>\r\n          <ul>\r\n            <li>Four dashboards, each a record rather than code, so a pack can add one<\/li>\r\n            <li>The activity strip on every page: late \u00b7 today \u00b7 planned \u00b7 nothing scheduled \u00b7 needs attention<\/li>\r\n            <li>&quot;Nothing scheduled&quot; is the band Odoo has no state for \u2014 an open record nobody has promised to do anything about, which appears on no other screen<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Dashboards \u2014 CRM, Sales, Delivery, People<\/h3>\r\n          <p>How we are doing, in the app managers already open. Four pages in Odoo&#39;s own Dashboards, in a Clinic Teams section of their own, built the way its Sales and Expenses pages are built.<\/p>\r\n          <ul>\r\n            <li>Four pages \u2014 CRM, Sales, Delivery, People \u2014 beside Odoo&#39;s own<\/li>\r\n            <li>Four KPI tiles a page, each with the previous period beside it<\/li>\r\n            <li>Two charts and two to four top-N tables a page, every one opening the records behind it<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Dashboards \u2014 Attendance, Time off, Staff payments<\/h3>\r\n          <p>Three more pages in the same section, kept apart because each one needs an app the clinic may not run.<\/p>\r\n          <ul>\r\n            <li>Attendance: currently checked in, records, hours worked, extra hours, by employee and by department<\/li>\r\n            <li>Time off: requests awaiting an answer, days approved, refusals, and where leave falls by month, type and department<\/li>\r\n            <li>Staff payments: to report, to validate, to reimburse, and what was claimed in the period<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Support Tickets<\/h3>\r\n          <p>A public form that turns a question into a task somebody owns.<\/p>\r\n          <ul>\r\n            <li>A form at \/support\/ticket that anyone can use, signed in or not<\/li>\r\n            <li>Each submission opens a task, assigned to the store administrator<\/li>\r\n            <li>The submitter follows their own ticket, and the administrator is notified in Discuss<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-record\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>The clinical record<\/h3>\r\n        <span class=\"sdc-feature-group-count\">11<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">What a course of care is made of: the episode, the plan inside it, the goals the plan works towards, and what is recorded against each. Every clinical page in the product is one of these four things seen from a different chair.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Episodes of Care<\/h3>\r\n          <p>A course of care with a start, an end and a plan \u2014 the spine everything else in the clinical record hangs from. Care is not a stream of appointments, and the record says so.<\/p>\r\n          <ul>\r\n            <li>An episode opens on the first held session, and a client has one open at a time<\/li>\r\n            <li>A treatment plan per episode: problem \u2192 goal \u2192 objective, three levels and no more<\/li>\r\n            <li>A goal carries a title, a target date and a result \u2014 what was worked towards, and how it went<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Clinical Notes<\/h3>\r\n          <p>Note templates as an ordered list of typed fields, so a note is answers rather than prose nobody can search.<\/p>\r\n          <ul>\r\n            <li>A template is a versioned, published list of typed fields \u2014 text, number, scale, choice, date<\/li>\r\n            <li>A completed note is the answers plus a rendered secure document<\/li>\r\n            <li>Answers are readable exactly when their document is: one access rule, not two that drift apart<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Note Template Library<\/h3>\r\n          <p>The starting content for the template engine: a thousand named note formats, so a clinic does not begin with an empty library.<\/p>\r\n          <ul>\r\n            <li>Over a thousand named templates \u2014 SOAP, DAP, BIRP, intake, review \u2014 grouped by discipline<\/li>\r\n            <li>Installed as data, editable afterwards like any template the clinic writes itself<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Goals Monitoring<\/h3>\r\n          <p>What a client records between sessions, attached to the goal it measures. A programme that reports against nothing is how monitoring turns into homework.<\/p>\r\n          <ul>\r\n            <li>A programme library with six item kinds: questionnaire, measurement, choice, journal, upload, task<\/li>\r\n            <li>A programme is sent to a goal, so every entry reports against something the plan actually asked for<\/li>\r\n            <li>The client records on their own plan: what is due today first, then each goal and what is open against it<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Scored Questionnaires<\/h3>\r\n          <p>Clinic-owned scored instruments. No instrument content is shipped and no licence is claimed: the clinic enters what it is entitled to use.<\/p>\r\n          <ul>\r\n            <li>A score is stored with the instrument version that produced it, and is never recomputed<\/li>\r\n            <li>Bands and thresholds per instrument, with a risk band raising a flag somebody has to acknowledge<\/li>\r\n            <li>Filled by the client on the portal or in session, and the channel recorded either way<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Group Sessions<\/h3>\r\n          <p>One note written once and filed to each attendee as their own document.<\/p>\r\n          <ul>\r\n            <li>One authored source, one filed document per attending client<\/li>\r\n            <li>A private field is absent from another attendee\u2019s document, not hidden inside it<\/li>\r\n            <li>Filed to the people who attended, not to everybody who was booked<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Recall &amp; Follow-up<\/h3>\r\n          <p>A due date a clinician sets when a session ends, acted on when it arrives.<\/p>\r\n          <ul>\r\n            <li>A recall is a date and a reason, created at the end of a session<\/li>\r\n            <li>It invites; it never books<\/li>\r\n            <li>Due recalls appear on the clinic digest before any message is sent automatically<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>ICD-10-CM Coding<\/h3>\r\n          <p>Diagnostic codes where the billing needs them, searchable rather than typed from memory.<\/p>\r\n          <ul>\r\n            <li>Searchable ICD-10-CM chapters and codes<\/li>\r\n            <li>A code recorded on the client and carried onto orders and invoices<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>One Form Builder<\/h3>\r\n          <p>One question list in the product, and the three things it does not carry on its own: a stable answer key, per-question visibility, and a flag for the one number that may leave the ciphertext.<\/p>\r\n          <ul>\r\n            <li>The product had grown four builders \u2014 the note template\u2019s typed fields, the scheduler\u2019s own questions, monitoring items, and the survey behind the intake form<\/li>\r\n            <li>Four builders is four places to add a question type, four renderers, and four answers to \u201cwhere did that answer go\u201d<\/li>\r\n            <li>A question list is authored in survey.survey and nowhere else<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Booking Questions in Survey<\/h3>\r\n          <p>A schedule\u2019s questions designed in Survey and filed encrypted, so the booking scheduler can stay a scheduler.<\/p>\r\n          <ul>\r\n            <li>A scheduler names a survey, and the public booking page renders it with the one renderer<\/li>\r\n            <li>Answers are filed into an encrypted document against the booking<\/li>\r\n            <li>The scheduler\u2019s own question model stays, and should: a phone number, a reference, a consent tick, and the ones that write straight onto the contact record where a receptionist has to read them<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Psychology Forms Library<\/h3>\r\n          <p>The scanned psychology form pack as searchable records, with an optional live form once a scan is turned into one.<\/p>\r\n          <ul>\r\n            <li>The scanned pack loaded as records carrying their OCR text, so a form can be found by what is written on it<\/li>\r\n            <li>A taxonomy by the system each form targets<\/li>\r\n            <li>An optional survey, created when a scan is turned into a live form<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-pay\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>Paying the professionals<\/h3>\r\n        <span class=\"sdc-feature-group-count\">2<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">What somebody is paid is a property of their engagement, so it lives on their contract \u2014 dated, versioned, and settled each cycle as ordinary vendor bills.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Expert Pay<\/h3>\r\n          <p>Session pay terms on the employee contract, and the payment cycle that settles them. Nothing is recomputed at payout time \u2014 each session froze its own split when it was booked.<\/p>\r\n          <ul>\r\n            <li>Four pay types: monthly salary, hourly rate, fixed fee per session, or a percentage of each session<\/li>\r\n            <li>Terms held on the contract version, so the history is dated and one is in force at a time<\/li>\r\n            <li>Payment cycles \u2014 weekly, fortnightly, monthly or quarterly \u2014 anchored on the calendar or the contract start<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Expert Pay \u2014 E-Sign<\/h3>\r\n          <p>Sends engagement contracts for signature from the record they belong to, and keeps the signed history on that record.<\/p>\r\n          <ul>\r\n            <li>Send a contract for signature from the contract itself<\/li>\r\n            <li>Every request kept against that record as its history<\/li>\r\n            <li>Session pay can be withheld under a contract nobody has signed yet<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-experts\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>Independent experts and the marketplace<\/h3>\r\n        <span class=\"sdc-feature-group-count\">4<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">The professionals who are not on the payroll. They rent the platform on a plan, bring clients of their own to it or take clients from it, and \u2014 where they collect the money themselves \u2014 owe the company its share rather than being paid by it. Four modules that between them answer who brought whom, what a plan allows, and which way the money runs.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Expert Plans<\/h3>\r\n          <p>Independent experts rent the platform on a plan we build. This module holds the plans, the subscriptions, and the rules that say what a subscription\u2019s state lets an expert do.<\/p>\r\n          <ul>\r\n            <li>Plans carry a channel \u2014 practice, marketplace or both \u2014 monthly and yearly prices, and rate lines written as sentences<\/li>\r\n            <li>A plan\u2019s feature switches are read from the installed modules rather than typed in<\/li>\r\n            <li>A subscription copies the plan\u2019s rates and features when the expert signs and never reads them back, so a price change tomorrow leaves today\u2019s subscriptions alone<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Expert Attribution<\/h3>\r\n          <p>Who brought each client to each expert \u2014 the one fact every fee an independent expert pays depends on, and the one the platform did not record.<\/p>\r\n          <ul>\r\n            <li>One row per expert-and-client pair, carrying the source and the owner: the expert\u2019s client, or a platform client<\/li>\r\n            <li>Ownership is set at first contact and changed by nothing except a staff transfer, with a reason<\/li>\r\n            <li>The expert\u2019s short link, \/e\/&lt;the expert\u2019s code&gt;: a person following it registers and becomes that expert\u2019s client<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Expert Collection<\/h3>\r\n          <p>When the expert takes the client\u2019s money, the expert owes the company its share. A monthly run that invoices them for it and follows it to paid.<\/p>\r\n          <ul>\r\n            <li>With experts approving orders and sending payment links, the quotation, the invoice and the pay page carry the expert\u2019s own business name, address and VAT as the seller<\/li>\r\n            <li>Whether the expert collected is frozen on the session at booking, beside the share split, so changing the setting tomorrow does not reach back into last month<\/li>\r\n            <li>No new formula: the company share already says what the company keeps, and if the expert is holding the cash that is the number they owe<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Platform Feature Catalogue<\/h3>\r\n          <p>The list of things the installed modules can do, declared by each module itself, for plans to switch on and off.<\/p>\r\n          <ul>\r\n            <li>Nobody types the catalogue in: a module with something worth selling ships one feature record per capability<\/li>\r\n            <li>Odoo creates those records when the module is installed and deletes them when it is uninstalled, so the catalogue always describes what this database can actually do<\/li>\r\n            <li>No scan, no sync job, and no second list beside the module list to fall out of step with it<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-secure\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>Secure documents<\/h3>\r\n        <span class=\"sdc-feature-group-count\">9<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">A document service any model can adopt, for records where a single access mistake is a reportable breach. Encrypted, default-deny, and logged on every read.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Secure Documents<\/h3>\r\n          <p>The service itself. A model adopts it in one line and gains its documents, a count, and a filing dialog that says in plain language who will be able to open the result before it is stored.<\/p>\r\n          <ul>\r\n            <li>Encrypted at rest with a key of its own, stored outside the Odoo filestore and never served through \/web\/content<\/li>\r\n            <li>Access by explicit rules, default deny: a matching allow rule and no matching deny rule, every time<\/li>\r\n            <li>Being an administrator, a manager, or the person who filed it grants nothing by itself<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Secure Documents: Encryption<\/h3>\r\n          <p>The cryptographic layer, kept as a module of its own so key management can be reviewed and audited without reading the rest of the application.<\/p>\r\n          <ul>\r\n            <li>AES-256-GCM envelope encryption: a random data key per document version, wrapped under a deployment key<\/li>\r\n            <li>The key encryption key is never stored in the database<\/li>\r\n            <li>Ciphertext in a directory of its own, outside the filestore<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Secure Documents: Portal<\/h3>\r\n          <p>Where a person reads the documents that have been shared with them about themselves, at \/my\/documents \u2014 and only those.<\/p>\r\n          <ul>\r\n            <li>A subject sees a document when a subject access rule grants it and nothing denies it \u2014 never merely because it is about them<\/li>\r\n            <li>Psychotherapy notes, sealed documents and documents under a current withholding decision are never shown, whatever their rules say<\/li>\r\n            <li>One filter used by every route, so there is only ever one definition of who may see what<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Secure Documents: Contacts<\/h3>\r\n          <p>Files secure documents against contacts \u2014 the commonest subject, since the person a document is about is usually the person it is filed against.<\/p>\r\n          <ul>\r\n            <li>Adds the secure document service to res.partner<\/li>\r\n            <li>Installs itself once both sides are present, and uninstalls without touching either<\/li>\r\n            <li>A bridge per application, so adopting the service on a contact does not pull in unrelated apps<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Secure Documents: CRM<\/h3>\r\n          <p>Files secure documents against opportunities \u2014 a due-diligence pack is nothing clinical, and has exactly the same requirements.<\/p>\r\n          <ul>\r\n            <li>Adds the secure document service to crm.lead<\/li>\r\n            <li>Encrypted, rule-gated and logged on every read, like any other secure document<\/li>\r\n            <li>Installs and uninstalls cleanly and independently of the other bridges<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Secure Documents: Employees<\/h3>\r\n          <p>Files secure documents against employee records \u2014 a disciplinary file or an occupational health report is something a manager files and most of HR must not be able to open.<\/p>\r\n          <ul>\r\n            <li>Adds the secure document service to hr.employee<\/li>\r\n            <li>Default-deny access, so an HR role does not open a file by virtue of being an HR role<\/li>\r\n            <li>Installs and uninstalls cleanly and independently of the other bridges<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Secure Documents: Project<\/h3>\r\n          <p>Files secure documents against tasks \u2014 a confidential contract or a signed deliverable held where the work is tracked.<\/p>\r\n          <ul>\r\n            <li>Adds the secure document service to project.task<\/li>\r\n            <li>Installs itself once both sides are present, and uninstalls without touching either<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Secure Documents: Sales<\/h3>\r\n          <p>Files secure documents against orders \u2014 a signed agreement, or a customer\u2019s identity documents, held against the sale they belong to.<\/p>\r\n          <ul>\r\n            <li>Adds the secure document service to sale.order<\/li>\r\n            <li>Installs itself once both sides are present, and uninstalls without touching either<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Remote Key Authority<\/h3>\r\n          <p>Optional: move the key-encryption key off the Odoo host, so a copy of the database is not a copy of the documents.<\/p>\r\n          <ul>\r\n            <li>Document keys wrapped and unwrapped through a remote authority rather than locally<\/li>\r\n            <li>The key-encryption key never sits on the machine serving the application<\/li>\r\n            <li>Switched on per deployment; the local backend stays available and unchanged<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-clinical\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>Clinical records and jurisdictions<\/h3>\r\n        <span class=\"sdc-feature-group-count\">11<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">The mental-health vertical on top of the document service, plus one module per jurisdiction. The technical controls are shared; what differs is the rights and governance machinery.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Clinical Records<\/h3>\r\n          <p>Resolves the care team. A therapist reaches the records of the people on their own caseload, not the clinic\u2019s \u2014 which is what makes the minimum-necessary standard enforceable rather than aspirational.<\/p>\r\n          <ul>\r\n            <li>Care relationships \u2014 clinician to client, with a kind, a start and an end<\/li>\r\n            <li>Access ends when the relationship does, after a grace period long enough to finish outstanding notes<\/li>\r\n            <li>Clinical roles that decide what part of the application someone reaches, never what they can open<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Clinical Records: European Union (GDPR)<\/h3>\r\n          <p>The GDPR layer: the rights and governance machinery HIPAA has no equivalent for, which is why a US-standard build does not cover the EU.<\/p>\r\n          <ul>\r\n            <li>Lawful basis recorded per document type \u2014 Art. 9(2)(h) for treatment records, not consent<\/li>\r\n            <li>Erasure (Art. 17) carried out by destroying the key, so the right is honoured without erasing the evidence of what was held<\/li>\r\n            <li>An erasure assessment, and nothing destroyed while a legal hold or retention period stands<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Clinical Records: Notice acknowledgement by e-signature<\/h3>\r\n          <p>A bridge, not a build \u2014 joins a signed privacy notice to the acknowledgement record, so the file can answer which version they actually saw.<\/p>\r\n          <ul>\r\n            <li>A completed signature writes the acknowledgement, once \u2014 a webhook delivered twice must not make the count of who is outstanding wrong<\/li>\r\n            <li>The signature request names the notice version, because that is the only question an acknowledgement gets asked<\/li>\r\n            <li>A pen on a form at reception is still a written acknowledgement; the bridge adds a path rather than replacing the ordinary one<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Clinical Records: United Kingdom<\/h3>\r\n          <p>UK GDPR and the Data Protection Act 2018 on the same technical core \u2014 with the serious harm test built as a workflow rather than as a flag.<\/p>\r\n          <ul>\r\n            <li>The serious harm test (DPA 2018 Sch. 3 Pt. 2) recorded with who decided, when, over which documents and why<\/li>\r\n            <li>Only takeable by someone holding a current care relationship, which the system checks rather than assumes<\/li>\r\n            <li>Appears in a review queue before it expires, and lapses on its own at six months<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Clinical Records: Governance<\/h3>\r\n          <p>The administrative safeguards \u2014 the half of HIPAA that is not about encryption, and the half enforcement cites most.<\/p>\r\n          <ul>\r\n            <li>The risk analysis as an exercise with a period, a scope and a method, separate from the register of what it found \u2014 so next year can be compared with this one<\/li>\r\n            <li>Each risk carried into the next assessment with a link back, because a register that starts blank every year loses the record of what was decided<\/li>\r\n            <li>The inherent rating computed and the residual rating deliberately not \u2014 a residual worked out by subtracting a control score is a fiction that says the same thing about a control tested last week and one written in a policy<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Clinical Records: United States (HIPAA)<\/h3>\r\n          <p>The HIPAA layer. The separation of psychotherapy notes holds in the storage rather than resting on the access rules being right.<\/p>\r\n          <ul>\r\n            <li>The designated record set (45 CFR 164.501) marked per document type, so a subject access response cannot include what is out of it<\/li>\r\n            <li>Psychotherapy notes in their own key namespace \u2014 the key that opens the ordinary record does not open them<\/li>\r\n            <li>A subject grant on notes refused at every path, including a direct write to the rule table<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Clinical Records: Germany<\/h3>\r\n          <p>The German retention period, as a rule the document service counts rather than a line in a policy nobody applies.<\/p>\r\n          <ul>\r\n            <li>\u00a7 630f BGB: ten years after last contact, seeded as a retention rule<\/li>\r\n            <li>Scoped to this module rather than to the whole EU pack, because the period is national<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Clinic: Norway<\/h3>\r\n          <p>The Norwegian rules the GDPR layer does not cover, each one sitting where the action happens rather than in a policy: publishing a profile, confirming a payout run, disclosing something to a parent.<\/p>\r\n          <ul>\r\n            <li>Pasientjournalforskriften \u00a7 14: the patient reads every access to every record about them, including the records they are not shown \u2014 by type, never by title<\/li>\r\n            <li>A retention kind with no disposal date at all, because Norway keeps records while they are needed; the years are a review interval and a person decides, with a reason<\/li>\r\n            <li>A journal hand-over to a successor, Norsk helsearkiv or Nasjonalarkivet, built at the moment of download, recorded as a disclosure per document, and downloadable once<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Clinic: Finland<\/h3>\r\n          <p>The roles Finnish law makes a provider name, and the duties hanging off each one. Independent of the Norwegian pack \u2014 both switch on from the company country, so one database can hold both.<\/p>\r\n          <ul>\r\n            <li>Licensed and protected-title professionals kept apart, because they are different rights: psykoterapeutti is a protected title in Finland and a free word in Norway<\/li>\r\n            <li>Terhikki number, the date of the employer check and whether it was a register lookup or the decision document; a typed number counts as declared, not checked<\/li>\r\n            <li>A service unit with its own registration, and the vastuuhenkil\u00f6 as a designation per unit, so a fortnight with nobody answering for it is reported<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Clinic: Switzerland<\/h3>\r\n          <p>Switzerland splits the qualification from the permission to practise, counts insured sessions against a doctor&#39;s order, and binds the supplier to the same criminal secret as the practitioner. Three things the core cannot express, and nothing else.<\/p>\r\n          <ul>\r\n            <li>The federal title is not the licence: a practice permit is cantonal, one per canton, each with its own expiry, so a practitioner may hold the name in Switzerland and the right to work in only one place<\/li>\r\n            <li>A profile using a protected title is refused publication without both a checked PsyReg number and a current, checked cantonal licence \u2014 and the refusal says which of the two is missing<\/li>\r\n            <li>Where a title is checked and no licence is, the public status says so rather than implying one; an unverified market is not served by a listing that reads like a verified one<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Compliance Health Check<\/h3>\r\n          <p>A fixed list of questions asked of the deployment itself. Most of the checking already existed and was scattered; this is the page that reads it in one place.<\/p>\r\n          <ul>\r\n            <li>A registry of checks, a runner on a schedule, and a report over both<\/li>\r\n            <li>Only what is wrong is reported: a check that passes says nothing, so the page is empty when the deployment is sound<\/li>\r\n            <li>Each finding names the rule it came from and the record it was found on<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-esign\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>Electronic signature<\/h3>\r\n        <span class=\"sdc-feature-group-count\">7<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">A self-hosted signature service with a tamper-evident audit trail, plus one thin module per place a signature is actually asked for.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>E-Sign \u2014 Core<\/h3>\r\n          <p>The signature service itself: a portal signing ceremony, jurisdiction policies, and a hash-chained audit trail. Self-hosted, so no document leaves the estate to be signed.<\/p>\r\n          <ul>\r\n            <li>A portal signing ceremony with identity and intent captured at the moment of signing<\/li>\r\n            <li>A hash-chained audit trail nobody can edit or delete<\/li>\r\n            <li>Jurisdiction policies governing what a valid signature requires<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>E-Sign \u2014 Contracts<\/h3>\r\n          <p>Who was empowered to sign for a counterparty, and whether their credential is still valid \u2014 checked rather than assumed.<\/p>\r\n          <ul>\r\n            <li>Authority to bind tracked per counterparty signatory<\/li>\r\n            <li>Signed agreements kept as records with a term<\/li>\r\n            <li>Practitioner credentials chased before they lapse<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>E-Sign \u2014 Health<\/h3>\r\n          <p>What a clinical signature needs beyond a name: capacity, authority to sign on somebody\u2019s behalf, supervision, and consent that can be withdrawn.<\/p>\r\n          <ul>\r\n            <li>Capacity attestation recorded at the point of signing<\/li>\r\n            <li>Signing on behalf of a client, with the authority recorded<\/li>\r\n            <li>Supervisor co-signature where the service requires it<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>E-Sign \u2014 Health (United States)<\/h3>\r\n          <p>The elements HIPAA requires of an authorization, validated rather than trusted to a template.<\/p>\r\n          <ul>\r\n            <li>Validation of the required elements of a HIPAA authorization<\/li>\r\n            <li>42 CFR Part 2 material segregated from the rest<\/li>\r\n            <li>The accounting of disclosures a covered entity must produce on request<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>E-Sign \u2014 HR<\/h3>\r\n          <p>A Request Signature action on applicants and employees, so an offer or a policy is signed where the person already is.<\/p>\r\n          <ul>\r\n            <li>Request Signature on an applicant record<\/li>\r\n            <li>Request Signature on an employee record<\/li>\r\n            <li>Requests kept against the record as its history<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>E-Sign \u2014 Sales<\/h3>\r\n          <p>A Request Signature action on quotations and purchase orders.<\/p>\r\n          <ul>\r\n            <li>Request Signature on a sale order<\/li>\r\n            <li>Request Signature on a purchase order<\/li>\r\n            <li>The signed document kept against the order<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>E-Sign Agreements<\/h3>\r\n          <p>Puts signature templates where the clinic sells: pinned to a professional or a service, sent automatically on purchase, and visible as a status.<\/p>\r\n          <ul>\r\n            <li>E-sign templates pinned to an expert or to a service<\/li>\r\n            <li>Sent on purchase, without anybody remembering to send it<\/li>\r\n            <li>Signed status shown to professionals in the portal and in the mobile app<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-services\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>Platform services<\/h3>\r\n        <span class=\"sdc-feature-group-count\">4<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">Four modules that are not about clinics at all: one connects the estate to a language model, one ends sessions nobody is using, the third fixes a piece of Odoo user administration that is easy to get wrong by hand, and the fourth is the shell the public site is drawn in.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Secure Sessions<\/h3>\r\n          <p>Ends a session nobody is using. 45 CFR 164.312(a)(2)(iii) asks for termination after a predetermined period of inactivity, and leaves the period to you \u2014 so it is a setting, with the enforcement on the server rather than in the browser.<\/p>\r\n          <ul>\r\n            <li>Idle period, warning period and an absolute ceiling, set per company<\/li>\r\n            <li>Checked on the server on every authenticated request, so switching off the browser timer buys nothing<\/li>\r\n            <li>A warning before the session ends, so nobody loses a half-written note to a control meant to protect them<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>AI Bridge<\/h3>\r\n          <p>Connects Odoo Community to any large language model, behind an interface \u2014 so the vendor can change without the business logic knowing.<\/p>\r\n          <ul>\r\n            <li>Providers configured per deployment, with the credential held outside the application code<\/li>\r\n            <li>Agents defined as prompts with the tools they are allowed to call<\/li>\r\n            <li>Tool calling, so a model can act rather than only answer<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>User Extension<\/h3>\r\n          <p>Converting a user between internal and portal by hand means editing access rights in the right order and remembering the side effects. This makes it a button.<\/p>\r\n          <ul>\r\n            <li>A User Type field on the user form, the list and the search filters<\/li>\r\n            <li>Convert to Internal and Convert to Portal buttons on the user form<\/li>\r\n            <li>A Convert User Type action on the Users list, for several users at once<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Public Site Shell<\/h3>\r\n          <p>Header, footer and the sign-in page on one layout, named after the company on this database.<\/p>\r\n          <ul>\r\n            <li>One layout for the header, the footer and the sign-in page<\/li>\r\n            <li>The name shown is the company on this database, not a value typed into a template<\/li>\r\n            <li>Logo address and a custom copyright line are system parameters, also editable under Settings \u2192 Website \u2192 Public brand<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-contract\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>Contract lifecycle<\/h3>\r\n        <span class=\"sdc-feature-group-count\">12<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">An agreement is a record with terms that change over time, not a filed PDF. The core carries what is true of every contract in every industry; everything else is optional. This whole vertical ships in the codebase and is switched off on the clinic deployment \u2014 it is here because it is part of the system, not because a clinic runs it on day one.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Core<\/h3>\r\n          <p>The agreement, its parties, its structured terms with provenance, its versions, and a workflow of configurable stages mapped to five fixed phases.<\/p>\r\n          <ul>\r\n            <li>Agreements with parties, structured terms and term provenance<\/li>\r\n            <li>Versions, so &quot;what did it say in March?&quot; stays answerable<\/li>\r\n            <li>Configurable stages mapped to five fixed phases<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Negotiation<\/h3>\r\n          <p>Built so that review is directed at what changed and what deviates, and never at unchanged boilerplate \u2014 which is where contract systems are usually abandoned.<\/p>\r\n          <ul>\r\n            <li>A clause library linked to structured terms, so accepting a fallback sets the term it carries<\/li>\r\n            <li>Playbooks, rounds, issues and recorded deviations<\/li>\r\n            <li>Meetings as negotiation rounds in their own right, keeping the reasoning and the positions<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Approvals<\/h3>\r\n          <p>Approval decided on more than one axis. Treating it as seniority alone is the common design error: a standard NDA at any value needs nobody senior.<\/p>\r\n          <ul>\r\n            <li>Approval on value, deviation, contract type and risk<\/li>\r\n            <li>Deviation as an axis in its own right rather than a modifier on value<\/li>\r\n            <li>Approval by a delegate always recorded as such \u2014 &quot;on behalf of&quot; is a different fact<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Amendments<\/h3>\r\n          <p>Records what an amendment changed, not merely that it exists.<\/p>\r\n          <ul>\r\n            <li>Executing an amendment closes the term rows it varies and opens new ones at the effective date<\/li>\r\n            <li>Anything derived from a changed term recalculates, and the movement is shown before execution<\/li>\r\n            <li>Conflicting amendments detected at execution<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Obligations and dates<\/h3>\r\n          <p>Signature is the beginning of the obligation, not the end of a workflow. This carries what happens afterwards.<\/p>\r\n          <ul>\r\n            <li>Obligations in both directions, with evidence where evidence is required<\/li>\r\n            <li>Derived dates calculated from terms rather than typed, and moved when their driver terms move<\/li>\r\n            <li>An escalation ladder that does not rely on reminding the person who has already not acted<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Projects, time and cost<\/h3>\r\n          <p>Two costs, kept apart: what a contract cost to win, and what it costs to deliver. Combining them produces a number that answers neither question.<\/p>\r\n          <ul>\r\n            <li>Negotiation effort recorded as overhead, whether or not the contract signs<\/li>\r\n            <li>Delivery cost recovered against the contract value<\/li>\r\n            <li>Contracts linked to projects many-to-many with a role, because one project field breaks on the first framework agreement<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Billable time and fee bases<\/h3>\r\n          <p>What an hour is worth, what the fee allows, and the four figures that need both.<\/p>\r\n          <ul>\r\n            <li>Charge rates, a billable flag and a billed state on recorded time<\/li>\r\n            <li>Fee bases stated on the contract<\/li>\r\n            <li>Recovery \u2014 billed against the value of time recorded<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Counterparty portal<\/h3>\r\n          <p>The fourth exchange channel: the counterparty reads the current version here, comments, and uploads their markup as an inbound round.<\/p>\r\n          <ul>\r\n            <li>The counterparty opens the current version, comments on it and returns their markup<\/li>\r\n            <li>Markup arrives as an inbound round with the file attached, not as an email somebody must remember to file<\/li>\r\n            <li>Nothing internal is visible \u2014 not positions, deviations, approvals, the playbook or internal notes<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 E-signature bridge<\/h3>\r\n          <p>How a contract uses the signature service. Completion is the event that starts everything else.<\/p>\r\n          <ul>\r\n            <li>Approvals must be complete before a version can be sent<\/li>\r\n            <li>The signatory\u2019s authority to bind checked against their credential<\/li>\r\n            <li>The version locked when it goes out, so every later claim about what was signed is provable<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Secure storage bridge<\/h3>\r\n          <p>Encrypting every contract makes the system unusable; encrypting none makes it unsafe. So confidentiality is a level on the agreement.<\/p>\r\n          <ul>\r\n            <li>Only agreements marked secure route their documents into the secure document service<\/li>\r\n            <li>Per-version encryption under a key held outside the database<\/li>\r\n            <li>Default-deny access, and every read logged before content is returned<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Reports<\/h3>\r\n          <p>Flag lists that should be empty, and the management views worth arguing over.<\/p>\r\n          <ul>\r\n            <li>A flag list holds only what is out of line \u2014 an empty list is the good outcome<\/li>\r\n            <li>A flag whose model is not installed reports as not applicable rather than failing<\/li>\r\n            <li>Uncapped liability shown as a list, never as a number added into a total<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Legal Reports \u2014 clients, lawyers and management<\/h3>\r\n          <p>Three readers, one arithmetic. The same numbers computed once and rendered three ways, rather than re-derived per screen where they would drift apart.<\/p>\r\n          <ul>\r\n            <li>A single deadline view: derived contract dates, obligations both ways, actions agreed at meetings and delivery deadlines<\/li>\r\n            <li>Project control: revenue, labour, committed cost, margin and estimate variance, as a stored view so it can be grouped<\/li>\r\n            <li>A client-facing view of where the work has got to and what is owed<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-rules\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>Contract rules<\/h3>\r\n        <span class=\"sdc-feature-group-count\">2<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">If it describes one thing, it is data. If it checks a relationship between records, it is code. These two modules are the only places that test holds a rule out of a pack.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 IP rules<\/h3>\r\n          <p>Two rules, and only two \u2014 the ones that compare records and therefore cannot be expressed as configuration.<\/p>\r\n          <ul>\r\n            <li>A sublicence\u2019s territory must sit inside its parent\u2019s<\/li>\r\n            <li>Two exclusive licences must not overlap<\/li>\r\n            <li>Kept separate from the IP pack, so a business can install the contract types without the checks<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Legal rules<\/h3>\r\n          <p>Conflict checking at contract intake, the same as matter opening. It gates the stage transition; it does not warn.<\/p>\r\n          <ul>\r\n            <li>A counterparty checked against existing clients, opposing parties on live matters, and known affiliates<\/li>\r\n            <li>Gates the stage transition rather than raising a warning that can be dismissed<\/li>\r\n            <li>The check itself immutable once recorded \u2014 who ran it, over what scope, and what they found<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-packs\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>Contract industry packs<\/h3>\r\n        <span class=\"sdc-feature-group-count\">8<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">An industry is a pack of configuration, not a fork of the code. Each of these is agreement types, term types, a clause library, a playbook and obligation templates \u2014 and, in seven of the eight, no Python at all.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 General pack<\/h3>\r\n          <p>The starting pack. Install the core and this, and a business can run contracts on day one without configuring anything.<\/p>\r\n          <ul>\r\n            <li>NDAs, master agreements, statements of work, services, consultancy, supply and purchase<\/li>\r\n            <li>The terms each type carries and the workflow it moves through<\/li>\r\n            <li>Gates that stop a contract reaching signature half-formed<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 HR pack<\/h3>\r\n          <p>Employment, contractor engagement, consultancy and settlement.<\/p>\r\n          <ul>\r\n            <li>Agreement types, term types, clause library and playbook for employment contracting<\/li>\r\n            <li>Obligation templates for notice, probation and post-termination terms<\/li>\r\n            <li>Settlements default to secure \u2014 every word matters, and a regulator later asks about them<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Legal pack<\/h3>\r\n          <p>Law firms \u2014 contracts for clients and with them \u2014 and in-house legal departments. The same system serves both jobs with sharply different defaults.<\/p>\r\n          <ul>\r\n            <li>Engagement letters, retainers and counsel instructions<\/li>\r\n            <li>A clause library with the regulated wording marked mandatory<\/li>\r\n            <li>A firm\u2019s engagement letter defaults to confidential and itemised<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 IP pack<\/h3>\r\n          <p>Licensors, patent and trademark holders, technology transfer offices, universities and brand owners.<\/p>\r\n          <ul>\r\n            <li>Licences, assignments and options as agreement types, with licence term types<\/li>\r\n            <li>Clause library, playbook and obligation templates<\/li>\r\n            <li>No asset register, deliberately \u2014 a patent\u2019s prosecution history belongs to the portfolio system that already holds it<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Property pack<\/h3>\r\n          <p>Leases, agreements for lease, licences to occupy, sales, easements and the deeds that hang off a lease.<\/p>\r\n          <ul>\r\n            <li>Break dates as date-driving terms, because a break right expires in silence<\/li>\r\n            <li>The notice window as an obligation derived from the break date, and both escalate<\/li>\r\n            <li>Rent review, service charge and reinstatement terms<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Finance pack<\/h3>\r\n          <p>Debt documents: facility agreements, guarantees, security, intercreditor and subordination deeds.<\/p>\r\n          <ul>\r\n            <li>Financial covenants as structured terms, with derived test dates<\/li>\r\n            <li>The compliance certificate as an obligation with evidence required<\/li>\r\n            <li>&quot;Which facilities are tested this quarter, and on what numbers?&quot; becomes a question with an answer<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Construction pack<\/h3>\r\n          <p>Main contracts, subcontracts, professional appointments, collateral warranties and the instruments around them.<\/p>\r\n          <ul>\r\n            <li>Built around the chain: a main contract promises a date only the subcontracts can deliver<\/li>\r\n            <li>Back-to-back terms held as structured terms so they can be compared down the chain<\/li>\r\n            <li>Liability that the subcontracts and the professional indemnity cover have to carry<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contracts \u2014 Data protection pack<\/h3>\r\n          <p>Data processing agreements, business associate agreements and sub-processor terms.<\/p>\r\n          <ul>\r\n            <li>DPA, BAA and sub-processor agreement types with the terms they carry<\/li>\r\n            <li>The breach-notification window as its own term, because it is measured in hours<\/li>\r\n            <li>Audit response and sub-processor notice as derived dates<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<section class=\"sdc-band sdc-band--subtle\" id=\"odoo\">\r\n  <div class=\"sdc-wrap\">\r\n    <p class=\"sdc-eyebrow sdc-center\">Underneath all of it<\/p>\r\n    <h2 class=\"sdc-section-title sdc-center\">Odoo 19 Community, and what each application is for<\/h2>\r\n    <p class=\"sdc-section-lede sdc-center\">The business core. Open source, no licence fee, no per-user charge \u2014 and the last group is applications that ship with the same licence and can be switched on for nothing when you want them.<\/p>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-odoofoundation\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>Odoo Community \u2014 foundation<\/h3>\r\n        <span class=\"sdc-feature-group-count\">8<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">The business core is Odoo 19 Community. Every application in this group and the four that follow is open source and carries no licence fee \u2014 nothing here is bought, and there is no per-user Enterprise charge anywhere in the stack. What is quoted is configuration and development: the work of making it fit your clinic. You never pay for the software that already exists. This first group is what every other module stands on.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Core<\/h3>\r\n          <p>Companies, users, groups, contacts, languages and the record rules that decide who sees what. Not shown in the Apps list because everything depends on it.<\/p>\r\n          <ul>\r\n            <li>Companies and multi-company scoping<\/li>\r\n            <li>Users, groups and record-level access rules<\/li>\r\n            <li>Contacts as a single model shared by clients, professionals and suppliers<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Web client and editors<\/h3>\r\n          <p>The back-office interface staff work in, and the editing tools behind every rich-text field and website block.<\/p>\r\n          <ul>\r\n            <li>List, form, kanban, calendar, pivot and graph views<\/li>\r\n            <li>Filters, groupings and saved searches on every screen<\/li>\r\n            <li>Export to CSV and XLSX from any list<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Web<\/b><b>Web Routing<\/b><b>HTML Editor<\/b><b>HTML Builder<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Discuss and chatter<\/h3>\r\n          <p>Messaging, and the message thread attached to every record \u2014 which is how a decision keeps its history instead of living in somebody\u2019s inbox.<\/p>\r\n          <ul>\r\n            <li>The chatter on every record: messages, notes, followers and tracked field changes<\/li>\r\n            <li>Internal channels and direct messages<\/li>\r\n            <li>Outgoing email with templates, and inbound routing<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Discuss<\/b><b>OdooBot<\/b><b>OdooBot - HR<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Customer portal<\/h3>\r\n          <p>The authenticated area a client, a professional or a counterparty reaches without being an internal user \u2014 everything under \/my.<\/p>\r\n          <ul>\r\n            <li>Portal users with no access to the back office<\/li>\r\n            <li>Documents, orders and invoices shared with the person they belong to<\/li>\r\n            <li>The frame every custom portal page in this platform is built inside<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Customer Portal<\/b><b>Customize Signup Page<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Contacts<\/h3>\r\n          <p>The address book application: people, organisations, and the relationships between them.<\/p>\r\n          <ul>\r\n            <li>Individuals and companies, with child contacts<\/li>\r\n            <li>Addresses, tax identifiers and bank details<\/li>\r\n            <li>Tags and categories used for segmentation<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Contacts<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Products and pricelists<\/h3>\r\n          <p>What is sold. In a clinic that is sessions and packages, but the model underneath is the standard one.<\/p>\r\n          <ul>\r\n            <li>Product templates and variants<\/li>\r\n            <li>Units of measure, and service products for time<\/li>\r\n            <li>Pricelists, so a package or a segment can be priced differently<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Resources and working time<\/h3>\r\n          <p>Working calendars, capacity and leave \u2014 the model a professional\u2019s weekly hours and dated exceptions are expressed in.<\/p>\r\n          <ul>\r\n            <li>Working schedules per person, with timezones<\/li>\r\n            <li>Resource capacity and leaves<\/li>\r\n            <li>The calendar utilisation is calculated against<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Resource<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Setup and technical helpers<\/h3>\r\n          <p>The small installed modules nobody opens on purpose, each of which removes a specific category of support ticket.<\/p>\r\n          <ul>\r\n            <li>Onboarding Toolbox \u2014 guided set-up progress for a new deployment<\/li>\r\n            <li>Phone Numbers Validation \u2014 numbers normalised on entry, so SMS actually arrives<\/li>\r\n            <li>Google reCAPTCHA \u2014 spam protection on public forms<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Onboarding Toolbox<\/b><b>Phone Numbers Validation<\/b><b>Google reCAPTCHA integration<\/b><b>Google Gmail<\/b><\/p>\r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-odoomoney\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>Odoo Community \u2014 sales, money and payments<\/h3>\r\n        <span class=\"sdc-feature-group-count\">8<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">The transactional half of the core: what is sold, what is invoiced, how it is paid for, and what the business spends. Every figure on the accountant blueprint comes from here.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Sales<\/h3>\r\n          <p>Quotations and sale orders \u2014 the record every purchased session hangs off, and the left-hand end of the money chain.<\/p>\r\n          <ul>\r\n            <li>Quotations, confirmation and sale orders<\/li>\r\n            <li>Order lines carrying the sessions or packages bought<\/li>\r\n            <li>Delivery and invoicing status per line<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Sales<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Invoicing and accounting<\/h3>\r\n          <p>The general ledger. Invoices, bills, payments, taxes and reconciliation \u2014 where the clinic\u2019s books actually live.<\/p>\r\n          <ul>\r\n            <li>Customer invoices and credit notes, with issued invoices immutable<\/li>\r\n            <li>Vendor bills \u2014 including the ones a payout run creates for professionals<\/li>\r\n            <li>Payments, bank statements and reconciliation<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Invoicing<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Analytic accounting<\/h3>\r\n          <p>Cost and revenue attributed to something other than an account \u2014 a project, a service line, a professional.<\/p>\r\n          <ul>\r\n            <li>Analytic accounts and distributions<\/li>\r\n            <li>Cost and revenue tracked per project or per service line<\/li>\r\n            <li>The dimension margin reporting is computed across<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Payment framework<\/h3>\r\n          <p>The framework payment methods plug into, so adding or changing a provider is configuration rather than development.<\/p>\r\n          <ul>\r\n            <li>Payment providers configured per company<\/li>\r\n            <li>Payment tokens, for a saved card a client reuses<\/li>\r\n            <li>Transactions with their own state, reconciled against invoices<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Payment providers installed<\/h3>\r\n          <p>Three providers are switched on: a live card processor, a demo one for training, and manual methods for money that arrives outside a gateway.<\/p>\r\n          <ul>\r\n            <li>Stripe \u2014 cards, wallets and saved payment methods<\/li>\r\n            <li>Demo \u2014 a provider that behaves like a real one, for training and rehearsal<\/li>\r\n            <li>Custom Payment Modes \u2014 bank transfer, cash and anything reconciled by hand<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Payment Provider: Stripe<\/b><b>Payment Provider: Demo<\/b><b>Payment Provider: Custom Payment Modes<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Coupons and loyalty<\/h3>\r\n          <p>Discounts, promotions, gift cards and loyalty programmes \u2014 applied on a sale order and on the eCommerce checkout alike.<\/p>\r\n          <ul>\r\n            <li>Coupon codes and automatic promotions<\/li>\r\n            <li>Loyalty cards and point accrual<\/li>\r\n            <li>Gift cards, and eWallet balances<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Coupons &amp; Loyalty<\/b><b>Sale Loyalty<\/b><b>Sale Loyalty - Delivery<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Expenses<\/h3>\r\n          <p>What staff spend, and the part of it that is re-invoiced to a client rather than absorbed.<\/p>\r\n          <ul>\r\n            <li>Expense claims, approval and reimbursement<\/li>\r\n            <li>Expenses posted straight into accounting<\/li>\r\n            <li>Re-invoicing an expense by setting the sale order on it<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Expenses<\/b><b>Sales Expense<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Purchase<\/h3>\r\n          <p>Purchase orders and supplier management \u2014 the committed-cost side, and how vendor bills arrive.<\/p>\r\n          <ul>\r\n            <li>Requests for quotation and purchase orders<\/li>\r\n            <li>Supplier records and pricelists<\/li>\r\n            <li>Vendor bills matched against orders<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Purchase<\/b><\/p>\r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-odoocrm\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>Odoo Community \u2014 CRM, messaging and marketing<\/h3>\r\n        <span class=\"sdc-feature-group-count\">6<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">How an enquiry becomes a client, and every channel the business reaches somebody on. This is the group most clinics under-use, and the one that turns the directory into bookings.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>CRM<\/h3>\r\n          <p>Leads and opportunities \u2014 used here for enquiries that are not yet clients, and for the consultation requests that arrive from the app.<\/p>\r\n          <ul>\r\n            <li>Leads, opportunities and a configurable pipeline<\/li>\r\n            <li>Activities and next actions against each opportunity<\/li>\r\n            <li>Lost reasons and win-rate reporting<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>CRM<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Lead enrichment and pipeline gamification<\/h3>\r\n          <p>Filling in what a lead did not tell you, finding leads that never made contact, and giving a sales team something to compete over.<\/p>\r\n          <ul>\r\n            <li>Lead Enrichment \u2014 company details completed automatically from an email domain<\/li>\r\n            <li>Lead Generation \u2014 leads mined by industry, size and location<\/li>\r\n            <li>CRM Gamification \u2014 targets, badges and leaderboards on the pipeline<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Lead Enrichment<\/b><b>Lead Generation<\/b><b>CRM Gamification<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Live chat<\/h3>\r\n          <p>A chat widget on the public site, staffed by real people, and wired into both the pipeline and the HR helpdesk.<\/p>\r\n          <ul>\r\n            <li>Live Chat \u2014 operators, channels and canned responses<\/li>\r\n            <li>Website Live Chat \u2014 the widget on the public site and the directory<\/li>\r\n            <li>CRM Livechat \u2014 a conversation converted into a lead without re-typing anything<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Live Chat<\/b><b>Website Live Chat<\/b><b>CRM Livechat<\/b><b>HR - Livechat<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>SMS<\/h3>\r\n          <p>The channel with the highest open rate, wired into the places a clinic actually needs it. Session reminders already use it.<\/p>\r\n          <ul>\r\n            <li>SMS gateway \u2014 the sending infrastructure and delivery status<\/li>\r\n            <li>SMS in CRM \u2014 texting a lead from the opportunity<\/li>\r\n            <li>Send SMS to Visitor \u2014 and the variant that works from a lead<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>SMS gateway<\/b><b>SMS in CRM<\/b><b>Send SMS to Visitor<\/b><b>Send SMS to Visitor with leads<\/b><b>Recruitment - SMS<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>WhatsApp quick send<\/h3>\r\n          <p>A custom extension on leads and contacts: send a predefined WhatsApp message without leaving the record.<\/p>\r\n          <ul>\r\n            <li>Quick-send action on a lead and on a contact<\/li>\r\n            <li>Predefined message templates<\/li>\r\n            <li>The channel many clients in this market actually read<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>CRM Extension v2 - WhatsApp Quick Send<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Digests and link tracking<\/h3>\r\n          <p>Periodic numbers pushed to the people who should see them, and attribution for every link the business publishes.<\/p>\r\n          <ul>\r\n            <li>KPI Digests \u2014 a scheduled summary emailed to managers<\/li>\r\n            <li>Link Tracker \u2014 UTM-tagged short links with click statistics<\/li>\r\n            <li>Campaign, medium and source recorded against the visitor who converted<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>KPI Digests<\/b><b>Link Tracker<\/b><\/p>\r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-odooweb\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>Odoo Community \u2014 website and eCommerce<\/h3>\r\n        <span class=\"sdc-feature-group-count\">5<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">The public face: the directory a stranger lands on, the checkout they go through, and the forms that turn a visitor into a record in the system.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Website<\/h3>\r\n          <p>The page builder behind the public site \u2014 the pages marketing edits without a developer.<\/p>\r\n          <ul>\r\n            <li>Drag-and-drop pages with reusable blocks<\/li>\r\n            <li>Multi-language pages and SEO metadata<\/li>\r\n            <li>Menus, themes and page versioning<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Website<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>eCommerce<\/h3>\r\n          <p>Selling on the public site: the catalogue, the cart and the checkout a client goes through before they ever hold a credit.<\/p>\r\n          <ul>\r\n            <li>Public product catalogue and product pages<\/li>\r\n            <li>Cart, checkout and payment on the website<\/li>\r\n            <li>Customer accounts and order history<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>eCommerce<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Blog<\/h3>\r\n          <p>The publishing side: the articles that appear in the app\u2019s content feed and on the public site.<\/p>\r\n          <ul>\r\n            <li>Blogs, posts, tags and comments<\/li>\r\n            <li>Multi-language posts<\/li>\r\n            <li>The source the ranked content feed reads from<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Blog<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Website forms and submissions<\/h3>\r\n          <p>The three places a visitor can create a record without an account \u2014 each landing somewhere a person actually works.<\/p>\r\n          <ul>\r\n            <li>Contact Form \u2014 an enquiry that arrives as a lead, not as an email<\/li>\r\n            <li>Online Task Submission \u2014 a website form that creates a project task<\/li>\r\n            <li>Online Jobs \u2014 vacancies published, and applications arriving in Recruitment<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Contact Form<\/b><b>Online Task Submission<\/b><b>Online Jobs<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Website plumbing<\/h3>\r\n          <p>Three small modules that connect the public site to the rest of the system. Nobody opens them; everything breaks without them.<\/p>\r\n          <ul>\r\n            <li>Website Mail \u2014 subscriptions and message threads on public pages<\/li>\r\n            <li>Website Partner \u2014 a public page for a contact, which is what a professional profile is<\/li>\r\n            <li>Website Payment \u2014 payment on the site wired to the payment framework<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Website Mail<\/b><b>Website Partner<\/b><b>Website Payment<\/b><\/p>\r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-odoopeople\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>Odoo Community \u2014 people, delivery and scheduling<\/h3>\r\n        <span class=\"sdc-feature-group-count\">9<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">The staff side. Employee records carry the contract versions a professional\u2019s pay is priced from, and the calendar carries every session the clinic delivers.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Employees<\/h3>\r\n          <p>Employee records and contracts. In Odoo 19 a contract is a version of the employee, and that version timeline is what carries a professional\u2019s pay terms.<\/p>\r\n          <ul>\r\n            <li>Employee records, departments and job positions<\/li>\r\n            <li>Contract versions with a dated history, one in force at a time<\/li>\r\n            <li>Working schedule per employee<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Employees<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Skills and org chart<\/h3>\r\n          <p>What each professional is qualified to do, when that qualification expires, and who reports to whom.<\/p>\r\n          <ul>\r\n            <li>Skills Management \u2014 skills, levels and progression per employee<\/li>\r\n            <li>Skills Certification \u2014 certificates with expiry, which is what makes a credential chaseable<\/li>\r\n            <li>HR Org Chart \u2014 reporting lines on the employee record<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Skills Management<\/b><b>Skills Certification<\/b><b>HR Org Chart<\/b><b>HR Gamification<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Recruitment<\/h3>\r\n          <p>Applicants and hiring \u2014 and the reason an offer is one of the documents the e-sign stack is asked to handle.<\/p>\r\n          <ul>\r\n            <li>Job positions, applicants and a hiring pipeline<\/li>\r\n            <li>Interview scheduling and scorecards<\/li>\r\n            <li>Skills matched against the requirements of the role<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Recruitment<\/b><b>Recruitment - Skills Management<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Remote work<\/h3>\r\n          <p>Where each person is working from on a given day \u2014 which for a clinic means knowing who is on the premises to receive a client.<\/p>\r\n          <ul>\r\n            <li>Home and office days per employee<\/li>\r\n            <li>The same information shown on the team calendar<\/li>\r\n            <li>Visible alongside the room calendar when planning on-site sessions<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Remote Work<\/b><b>Remote Work with calendar<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Project<\/h3>\r\n          <p>Projects and tasks. Used for delivery work and, in the contract vertical, for keeping the cost of winning a contract apart from the cost of delivering under it.<\/p>\r\n          <ul>\r\n            <li>Projects, tasks and stages<\/li>\r\n            <li>Assignment, deadlines and progress<\/li>\r\n            <li>Task-level document filing, including secure documents<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Project<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>To-Do<\/h3>\r\n          <p>A personal task list per user, separate from project work \u2014 where the small things a manager picks up during the morning routine go.<\/p>\r\n          <ul>\r\n            <li>Private to-dos with due dates<\/li>\r\n            <li>Convertible into a project task when it turns out to be real work<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>To-Do<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Calendar<\/h3>\r\n          <p>Meetings and events. Every session is a calendar event underneath, which is what makes room and team calendars real rather than a rendering.<\/p>\r\n          <ul>\r\n            <li>Events with attendees, recurrence and reminders<\/li>\r\n            <li>Availability visible across a team<\/li>\r\n            <li>Synchronisation with external calendars<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Calendar<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Surveys<\/h3>\r\n          <p>Questionnaires. Used here for intake questions asked at booking and for the private feedback survey after a session.<\/p>\r\n          <ul>\r\n            <li>Questionnaires with conditional questions<\/li>\r\n            <li>Responses stored against the person who answered<\/li>\r\n            <li>Scoring, where a questionnaire is an assessment<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Surveys<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Timesheets<\/h3>\r\n          <p>Time recorded against a project or a task. Available and switched off on the reference deployment \u2014 it is a dependency of the contract vertical rather than of clinic work.<\/p>\r\n          <ul>\r\n            <li>Time entries against projects and tasks<\/li>\r\n            <li>Cost per hour from the employee record<\/li>\r\n            <li>Timesheet approval and reporting<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-odooavailable\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>Odoo Community \u2014 installed-ready, switched off<\/h3>\r\n        <span class=\"sdc-feature-group-count\">7<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">The reference deployment runs 94 applications. These seventy-four ship with it under the same open-source licence and are simply switched off. None is an upsell and none carries a fee \u2014 a clinic that later wants a training arm, a shop or a different card processor turns one on and pays only for the configuration. They are grouped here so that &quot;can it do X?&quot; has an answer even when X is off today. The contract vertical, also switched off, is listed at the end of this page.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Events, eLearning and community<\/h3>\r\n          <p>A training arm: paid or free events, online courses, and a public forum \u2014 all selling through the same cart and reporting into the same books.<\/p>\r\n          <ul>\r\n            <li>Events with registration, ticketing, tracks and exhibitors<\/li>\r\n            <li>Events sold as products through the existing checkout<\/li>\r\n            <li>Live tracks and quizzes for online sessions<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Events<\/b><b>Events Organization<\/b><b>Events Product<\/b><b>Events Sales<\/b><b>Event CRM<\/b><b>Event CRM Sale<\/b><b>Event Exhibitors<\/b><b>Live Event Tracks<\/b><b>Quizzes on Tracks<\/b><b>SMS on Events<\/b><b>Event Attendees SMS Marketing<\/b><b>Track Speakers SMS Marketing<\/b><b>Website Events CRM<\/b><b>eLearning<\/b><b>Skills e-learning<\/b><b>Forum<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Email and SMS marketing<\/h3>\r\n          <p>Campaigns to lists the business already holds. The clinic sends transactional email and SMS today; this is the marketing half of the same infrastructure.<\/p>\r\n          <ul>\r\n            <li>Email Marketing \u2014 campaigns, templates, A\/B testing and statistics<\/li>\r\n            <li>SMS Marketing \u2014 the same, on the channel with the highest open rate<\/li>\r\n            <li>Mass mailing targeted at leads, opportunities, event attendees or speakers<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Email Marketing<\/b><b>SMS Marketing<\/b><b>Mass mailing on attendees<\/b><b>Mass mailing on lead \/ opportunities<\/b><b>Mass mailing on track speakers<\/b><b>Mass mailing sms on lead \/ opportunities<\/b><b>Marketing Card<\/b><b>Newsletter Subscribe Button<\/b><b>Newsletter Subscribe SMS Template<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Stock and point of sale<\/h3>\r\n          <p>For a clinic that also sells something physical over a counter \u2014 books, supplements, test kits \u2014 or runs a reception till.<\/p>\r\n          <ul>\r\n            <li>Inventory \u2014 stock, locations, replenishment and valuation<\/li>\r\n            <li>Point of Sale \u2014 a till that works offline and syncs<\/li>\r\n            <li>Point of sale discounts, and the loyalty programmes already configured<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Inventory<\/b><b>Point of Sale<\/b><b>Point of Sale - Coupons &amp; Loyalty<\/b><b>Point of Sale Discounts<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Time off, attendance, fleet and lunch<\/h3>\r\n          <p>The staff-administration side. Relevant once a clinic employs enough people that leave and presence stop fitting in a shared calendar.<\/p>\r\n          <ul>\r\n            <li>Time Off \u2014 requests, approval, balances, and the effect on payslips<\/li>\r\n            <li>Attendances \u2014 check-in and check-out, with presence control<\/li>\r\n            <li>Attendance reporting alongside timesheets<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Time Off<\/b><b>Time Off in Payslips<\/b><b>Attendances<\/b><b>Timesheets\/attendances reporting<\/b><b>Employee Presence Control<\/b><b>HR Attendance Holidays<\/b><b>Employee Hourly Wage<\/b><b>Fleet<\/b><b>Fleet History<\/b><b>Lunch<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Seventeen more payment providers<\/h3>\r\n          <p>Stripe is switched on. Any of these can be added or swapped in as configuration \u2014 which is what makes entering a new market a settings change rather than a project.<\/p>\r\n          <ul>\r\n            <li>Europe \u2014 Mollie, Buckaroo, Worldline, Redsys, Adyen<\/li>\r\n            <li>Americas \u2014 Authorize.Net, Mercado Pago, PayPal, Nuvei<\/li>\r\n            <li>Middle East and Africa \u2014 Amazon Payment Services, Paymob, DPO, Flutterwave<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Payment Provider: Adyen<\/b><b>Payment Provider: Amazon Payment Services<\/b><b>Payment Provider: AsiaPay<\/b><b>Payment Provider: Authorize.Net<\/b><b>Payment Provider: Buckaroo<\/b><b>Payment Provider: DPO<\/b><b>Payment Provider: Flutterwave<\/b><b>Payment Provider: Iyzico<\/b><b>Payment Provider: Mercado Pago<\/b><b>Payment Provider: Mollie<\/b><b>Payment Provider: Nuvei<\/b><b>Payment Provider: Paymob<\/b><b>Payment Provider: Paypal<\/b><b>Payment Provider: Razorpay<\/b><b>Payment Provider: Redsys<\/b><b>Payment Provider: Worldline<\/b><b>Payment Provider: Xendit<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Google services and cloud storage<\/h3>\r\n          <p>Optional external services. All are off by default, which is deliberate: each one sends something outside the estate, and that should be a decision rather than a default.<\/p>\r\n          <ul>\r\n            <li>Google Calendar \u2014 two-way sync for staff diaries<\/li>\r\n            <li>Google Maps and places autocompletion on the website<\/li>\r\n            <li>Google Address Autocomplete on contact forms<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Google Calendar<\/b><b>Google Maps<\/b><b>Google places autocompletion<\/b><b>Google Address Autocomplete<\/b><b>Google Users<\/b><b>Cloud Storage<\/b><b>Cloud Storage Azure<\/b><b>Cloud Storage Google<\/b><\/p>\r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Mail plugins and smaller tools<\/h3>\r\n          <p>Odds and ends that each solve one narrow problem. Listed for completeness rather than because a clinic needs them on day one.<\/p>\r\n          <ul>\r\n            <li>Mail plugins for Outlook and Gmail, on CRM and on Project<\/li>\r\n            <li>Mail Group \u2014 a mailing-list style discussion, with a website archive<\/li>\r\n            <li>Data Recycle \u2014 finds duplicate and stale records<\/li>\r\n          <\/ul>\r\n          <p class=\"sdc-feature-covers\"><b>Mail Plugin<\/b><b>CRM Mail Plugin<\/b><b>Project Mail Plugin<\/b><b>Mail Group<\/b><b>Website Mail Group<\/b><b>Data Recycle<\/b><b>Website profile<\/b><b>Hr Recruitment Interview Forms<\/b><b>Sales Expense Margin<\/b><b>CRM Issabel Integration<\/b><\/p>\r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<section class=\"sdc-band\" id=\"surfaces\">\r\n  <div class=\"sdc-wrap\">\r\n    <p class=\"sdc-eyebrow sdc-center\">How people reach it<\/p>\r\n    <h2 class=\"sdc-section-title sdc-center\">The mobile app and the API gateway<\/h2>\r\n    <p class=\"sdc-section-lede sdc-center\">The app talks only to the gateway and holds no secret of its own; the gateway is the only thing that knows the business core. That is why changing a payment or AI provider never reaches the app, and why the app can never reach the database.<\/p>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-mobile\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>The mobile app<\/h3>\r\n        <span class=\"sdc-feature-group-count\">14<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">One Flutter application for iOS and Android, used by both sides of the business. A client books and attends in it; a practitioner runs a whole practice from it. It talks only to the API gateway and holds no secret of its own.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Sign in and sign up<\/h3>\r\n          <p>Getting into the app, and the age gate that decides whether an account may be used at all.<\/p>\r\n          <ul>\r\n            <li>Splash and first-run routing, so a returning user lands where they left off<\/li>\r\n            <li>Registration and sign-in against the gateway, with tokens held in secure storage<\/li>\r\n            <li>Password reset by email<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Identity and age verification<\/h3>\r\n          <p>The check that lets somebody transact, including the states a person sits in while a human reviews what the automatic step could not settle.<\/p>\r\n          <ul>\r\n            <li>Guided introduction explaining what is being asked for and why<\/li>\r\n            <li>Face scan capture, and document check as the alternative path<\/li>\r\n            <li>Borderline result and under-review states, so the person is never left guessing<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Home \u2014 content feed<\/h3>\r\n          <p>The first tab. A ranked feed of articles, videos and updates, plus the publishers behind them.<\/p>\r\n          <ul>\r\n            <li>A ranked content feed served by the gateway<\/li>\r\n            <li>Content detail with images and rich text<\/li>\r\n            <li>Publisher profiles, so a reader can follow a source<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Discovery and assessments<\/h3>\r\n          <p>Self-guided tools: assessments a person takes themselves, their results, and the partner features built around them.<\/p>\r\n          <ul>\r\n            <li>Take an assessment, and read the results<\/li>\r\n            <li>The delights map \u2014 a personal view, and a shared one<\/li>\r\n            <li>Add, join, invite and compare partners<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Finding a professional<\/h3>\r\n          <p>The directory as a client meets it: browsing, comparing, saving, asking, and the chat that follows.<\/p>\r\n          <ul>\r\n            <li>Browse and filter the directory of professionals<\/li>\r\n            <li>A profile with qualifications, languages, services and reviews<\/li>\r\n            <li>Saved professionals \u2014 My Experts<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Services<\/h3>\r\n          <p>What can actually be booked, with the price, the duration and whether it is online or on the premises.<\/p>\r\n          <ul>\r\n            <li>Browse services offered across the clinic<\/li>\r\n            <li>Service detail with price, duration and delivery mode<\/li>\r\n            <li>Straight into booking or purchase from the service<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Shop and checkout<\/h3>\r\n          <p>Buying \u2014 a single session, a package, or a product. This is where the credit a client later spends comes from.<\/p>\r\n          <ul>\r\n            <li>Product catalogue and product detail<\/li>\r\n            <li>Cart, checkout and the service agreement accepted at purchase<\/li>\r\n            <li>Order confirmation, and the order history behind it<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Booking a session<\/h3>\r\n          <p>Spending a credit on a specific time in a specific diary \u2014 and everything the client sees about it afterwards.<\/p>\r\n          <ul>\r\n            <li>Create a booking against real availability, in the client\u2019s own timezone<\/li>\r\n            <li>The bookings list, with every status a session can have<\/li>\r\n            <li>Booking detail: join link, location and room, reschedule and cancel<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Questions, tickets and partners<\/h3>\r\n          <p>Asking in public, asking in private, and the people a client chooses to share progress with.<\/p>\r\n          <ul>\r\n            <li>A public question feed, and asking a question before committing to anything<\/li>\r\n            <li>Question detail with the professional\u2019s own answer<\/li>\r\n            <li>Support tickets \u2014 raise one, track it, read the replies<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Profile \u2014 the client hub<\/h3>\r\n          <p>The third tab, and the answer to most support questions. Everything the app knows about the person, on one screen.<\/p>\r\n          <ul>\r\n            <li>Booked meetings and meeting history, with feedback and session reviews<\/li>\r\n            <li>Credits, purchased sessions and favourites<\/li>\r\n            <li>Billing address, invoices, invoice detail, payment methods<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Profile \u2014 the expert practice<\/h3>\r\n          <p>The same tab, seen by a practitioner. This is what makes a whole practice runnable from a phone rather than from a desk.<\/p>\r\n          <ul>\r\n            <li>Availability: weekly hours, and dated schedule exceptions<\/li>\r\n            <li>Clients\u2019 chats, and the client history behind each conversation<\/li>\r\n            <li>Submit a session report from the session it belongs to<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>AI assistant<\/h3>\r\n          <p>A conversational assistant in the app, streamed through the gateway so no model credential ever reaches the device.<\/p>\r\n          <ul>\r\n            <li>A chat screen with streamed responses<\/li>\r\n            <li>Conversation history, so a thread can be picked up later<\/li>\r\n            <li>Routed through the gateway\u2019s AI interface, which resolves to a real provider or a mock<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Settings, privacy and legal<\/h3>\r\n          <p>The controls a person expects to find, including the ones a regulator expects them to be able to find.<\/p>\r\n          <ul>\r\n            <li>App settings and language selection across 23 locales<\/li>\r\n            <li>Privacy settings, and which notifications arrive on which channel<\/li>\r\n            <li>Security settings, including device sessions<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>App core<\/h3>\r\n          <p>What every feature above is built on. Not a screen, but the reason the screens behave consistently.<\/p>\r\n          <ul>\r\n            <li>Networking against the gateway, with token refresh and error handling in one place<\/li>\r\n            <li>Secure storage for tokens and secure device state<\/li>\r\n            <li>Routing, so a notification can open the exact screen it refers to<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sdc-feature-group\" id=\"g-gateway\">\r\n      <div class=\"sdc-feature-group-head\">\r\n        <h3>The API gateway<\/h3>\r\n        <span class=\"sdc-feature-group-count\">8<\/span>\r\n      <\/div>\r\n      <p class=\"sdc-feature-group-blurb\">A FastAPI service that is the only backend the app knows about, and the only place a secret is held. It orchestrates: one tap can mean four systems, and the gateway sequences them and returns one answer. 28 endpoint groups in all.<\/p>\r\n      <div class=\"sdc-feature-list\">\r\n        <article class=\"sdc-feature\">\r\n          <h3>Identity and account<\/h3>\r\n          <p>Brokers login against the business core and issues short-lived tokens of its own. The app never holds a core credential.<\/p>\r\n          <ul>\r\n            <li>Sign in, sign up, refresh and sign out, with JWT issued by the gateway<\/li>\r\n            <li>The current user and their profile<\/li>\r\n            <li>Device registration, so push notifications reach the right handset<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Directory and catalogue<\/h3>\r\n          <p>Everything a client browses before they spend anything, served fast and cached where it is expensive.<\/p>\r\n          <ul>\r\n            <li>Professionals, their profiles, availability and services<\/li>\r\n            <li>Service categories and bookable products<\/li>\r\n            <li>Reviews and ratings, with moderation state respected<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Booking and money<\/h3>\r\n          <p>The transactional half. Purchase, credit, booking, invoice and payment, each mapped onto the business core rather than reimplemented.<\/p>\r\n          <ul>\r\n            <li>Create, reschedule and cancel a booking, with the policy applied by the core<\/li>\r\n            <li>Orders and the credits they produce<\/li>\r\n            <li>Invoices and invoice documents<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Content and community<\/h3>\r\n          <p>The read-heavy half: what a person browses when they are not booking.<\/p>\r\n          <ul>\r\n            <li>The ranked content feed and content detail<\/li>\r\n            <li>Public questions and answers<\/li>\r\n            <li>Discovery, assessments and their results<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Messaging and realtime<\/h3>\r\n          <p>The WebSocket hub. Chat, presence, AI streaming and signalling for voice and video, on one connection.<\/p>\r\n          <ul>\r\n            <li>WebSocket connection management and presence<\/li>\r\n            <li>Chat between client and professional, and group channels<\/li>\r\n            <li>Signalling for voice and video calls<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Documents and media<\/h3>\r\n          <p>Files, held so that the app never talks to storage directly and nothing is served from a guessable URL.<\/p>\r\n          <ul>\r\n            <li>Secure document access, honouring the core\u2019s access rules rather than re-deciding them<\/li>\r\n            <li>Media upload and retrieval, proxied through the gateway<\/li>\r\n            <li>Images resized and cached, so a directory listing is cheap on a phone<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Support, configuration and AI<\/h3>\r\n          <p>The remainder: raising a ticket, asking for a consultation, telling the app what this deployment has switched on, and talking to a model.<\/p>\r\n          <ul>\r\n            <li>Support tickets and their replies<\/li>\r\n            <li>Consultation requests<\/li>\r\n            <li>Runtime configuration, so the app shows only the features this business enabled<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n        <article class=\"sdc-feature\">\r\n          <h3>Provider interfaces (mock-first)<\/h3>\r\n          <p>Four feature flags, each resolving to a real provider or a mock. It is why the estate can be demonstrated, developed and tested with no external account at all.<\/p>\r\n          <ul>\r\n            <li>DATA_SOURCE \u2014 the Odoo business core, or a mock dataset<\/li>\r\n            <li>PAYMENTS \u2014 a real provider, or a mock that behaves like one<\/li>\r\n            <li>NOTIFICATIONS \u2014 Firebase Cloud Messaging, or a mock<\/li>\r\n          <\/ul>\r\n          \r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ebafe09 e-con-full e-flex e-con e-parent\" data-id=\"ebafe09\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3b97d80 elementor-widget elementor-widget-html\" data-id=\"3b97d80\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"sdc-band sdc-band--subtle\">\r\n  <div class=\"sdc-wrap\">\r\n    <div class=\"sdc-cta\">\r\n      <h2>Price it on the modules you actually switch on<\/h2>\r\n      <p>You will not want all 150. Tell us which parts matter and the calculator gives\r\n        a one-off build figure and an annual support figure, itemised.<\/p>\r\n      <div class=\"sdc-cta-actions\">\r\n        <a class=\"sdc-btn sdc-btn--invert\" href=\"\/pricing\/\">Open the price calculator<\/a>\r\n        <a class=\"sdc-btn sdc-btn--ghost sdc-on-dark\" href=\"https:\/\/7dayscare.com\/guideline\/clinic\/html\/modules.html\">The full catalogue, with every feature<\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Home&#8250;For companies&#8250;The platform Everything in a self-hosted instance 150 parts, and what each one is for. This is the whole inventory of an instance on your own infrastructure: the modules we build for clinical work, and the free Odoo Community applications underneath them. Nothing on this page carries a licence fee or a charge per [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-57","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/7dayscare.com\/index.php\/wp-json\/wp\/v2\/pages\/57","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/7dayscare.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/7dayscare.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/7dayscare.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/7dayscare.com\/index.php\/wp-json\/wp\/v2\/comments?post=57"}],"version-history":[{"count":5,"href":"https:\/\/7dayscare.com\/index.php\/wp-json\/wp\/v2\/pages\/57\/revisions"}],"predecessor-version":[{"id":75,"href":"https:\/\/7dayscare.com\/index.php\/wp-json\/wp\/v2\/pages\/57\/revisions\/75"}],"wp:attachment":[{"href":"https:\/\/7dayscare.com\/index.php\/wp-json\/wp\/v2\/media?parent=57"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}