Athenian Unÿa 2.0
Overview
Product overview
Most salon software stacks fracture at the handoff points. Booking happens in one system, technician scheduling in another, customer notes in a third, SMS in a separate inbox, and payment in a disconnected checkout. Staff lose context, owners lose visibility, and the business ends up managing appointments and transactions through manual cleanup.
Unya 2.0 solves that by turning WordPress and WooCommerce into a salon operations platform. It combines customer-facing booking, internal scheduling views, technician dashboards, service records, client profiles, Twilio-connected communications, and WooCommerce-backed service orders into one plugin architecture. Rather than treating booking, staffing, messaging, and checkout as separate workflows, Unya keeps them connected through shared metadata, REST endpoints, and WordPress-native admin tooling.
Use cases
- Service businesses
- Appointments
- Technician operations
- Client management
Developer
Developer starting point
This baseline documents the Unÿa 2.0 service-platform architecture. It does not claim that a live booking, payment, service order, message, appointment, or technician workflow has been exercised.
Product architecture story
WordPress as the operational surface
Unya is built as a WordPress-native platform. It uses custom post types, admin screens, meta-driven records, and shortcodes so salon operators can manage services, technicians, clients, messages, and bookings from a system that remains extensible.
WooCommerce as the transaction engine
WooCommerce is the order and payment layer behind Unya service orders. Unya uses WooCommerce orders as the commercial record while attaching salon-specific metadata needed for scheduling and fulfillment. This is one of the product's core differentiators: appointments do not live outside commerce.
Twilio as the communications bridge
Twilio extends Unya beyond scheduling and checkout by powering inbound SMS handling, outbound messaging, and call lookup workflows. That allows communication history to stay closer to the booking and client record instead of disappearing into a separate inbox.
Public booking plus internal console
Unya supports both sides of salon operations:
- Public shortcodes for customer-facing booking
- An internal booking shell for operational scheduling
- An admin dashboard for active orders, available technicians, upcoming bookings, and recent communications
- Technician-oriented views for timeclock and assignment context
That dual-surface model matters because salons need both conversion and day-of execution in the same platform.
API and mobile readiness
With REST endpoints and token auth, Unya is positioned to support future mobile apps, staff consoles, and custom frontends that need the same booking and service-order logic without duplicating it elsewhere.
Install
- Reviewed source folder: athenian-unya-2
- Plugin version reviewed: 2.3.0
- Local source inventory: 464 files (temporary, test, and Git metadata excluded).
- GitHub baseline: https://github.com/Athenian-Brands/athenian-unya-2 at baseline/devdocs-2.3.0-20261006f / c3fd2324cea4d4fbf12e4cb1670cbe1dbaa56903.
- WordPress and WooCommerce.
- Identity, booking, service orders, billing, Twilio, email, technician actions, and customer-facing effects require separate authenticated verification.
Configuration
- Working positioning — see the linked technical reference excerpt.
- Executive summary — see the linked technical reference excerpt.
- Core marketing message — see the linked technical reference excerpt.
- The problem Unya solves — see the linked technical reference excerpt.
- What Unya does — see the linked technical reference excerpt.
- Product architecture story — see the linked technical reference excerpt.
- Current maturity and roadmap realism — see the linked technical reference excerpt.
- Why this matters commercially — see the linked technical reference excerpt.
- Key differentiators — see the linked technical reference excerpt.
- Suggested messaging pillars — see the linked technical reference excerpt.
- Short-form copy options — see the linked technical reference excerpt.
- Sales narrative — see the linked technical reference excerpt.
- Best-fit use cases — see the linked technical reference excerpt.
- Positioning statement — see the linked technical reference excerpt.
Usage
- Shortcodes detected in local PHP source: 19
- Static action/filter hooks detected in local PHP source: 100
- REST route registrations detected in local PHP source: 60
Shortcodes
- unya_account_dashboard — public/frontend.php
- unya_admin_dashboard — public/frontend.php
- unya_admin_overview — public/frontend.php
- unya_ai_booking_agent — public/frontend.php
- unya_booking_agent — public/frontend.php
- unya_booking_request — public/frontend.php
- unya_booking_shell — public/frontend.php
- unya_booking_slider — public/frontend.php
- unya_booking_wizard — public/frontend.php
- unya_customer_dashboard — public/frontend.php
- unya_main_interface — public/frontend.php
- unya_technicians — public/frontend.php
- unya_technician_dashboard — public/frontend.php
- unya_technician_intake — public/frontend.php
- unya_technician_onboarding — public/frontend.php
- unya_technician_overview — public/frontend.php
- unya_technician_profiles — public/frontend.php
- unya_technician_profile — public/frontend.php
- unya_user_dashboard — public/frontend.php
REST Endpoints
- /(?P<resource>[a-z-]+)/(?P<id>\d+) — core/rest-api.php
- /(?P<resource>[a-z-]+) — core/rest-api.php
- /account/dashboard — public/frontend.php
- /account/technician-dashboard/report/download — public/frontend.php
- /account/technician-dashboard/report — public/frontend.php
- /account/technician-dashboard — public/frontend.php
- /account/technician/location — public/frontend.php
- /auth/inspect-token — modules/auth/auth-module.php
- /auth/rotate-salt — modules/auth/auth-module.php
- /auth/settings — modules/auth/auth-module.php
- /auth/social/exchange — modules/auth/auth-module.php
- /auth/social/providers — modules/auth/auth-module.php
- /billing/overview — modules/billing/billing-module.php
- /billing/payouts/(?P<id>\d+)/queue — modules/billing/billing-module.php
- /billing/payouts/(?P<id>\d+) — modules/billing/billing-module.php
- /billing/payouts/order/(?P<id>\d+)/queue — modules/billing/billing-module.php
- /billing/payouts/owlpay/(?P<id>\d+)/execute — modules/billing/billing-module.php
- /billing/payouts — modules/billing/billing-module.php
- /billing/receipts/(?P<id>\d+) — modules/billing/billing-module.php
- /billing/receipts — modules/billing/billing-module.php
- /booking/agent — modules/booking/booking-module.php
- /booking/appointments/(?P<id>\d+)/check-in — modules/booking/booking-module.php
- /booking/appointments/(?P<id>\d+) — modules/booking/booking-module.php
- /booking/appointments — modules/booking/booking-module.php
- /booking/availability — modules/booking/booking-module.php
- /booking/checkout — modules/booking/booking-module.php
- /booking/finishes — modules/booking/booking-module.php
- /booking/grid — modules/booking/booking-module.php
- /booking/intake-profile — modules/booking/booking-module.php
- /booking/intake — modules/booking/booking-module.php
- /booking/services — modules/booking/booking-module.php
- /booking/verify — modules/booking/booking-module.php
- /clients/(?P<id>\d+)/dashboard — modules/clients/clients-module.php
- /clients/(?P<id>\d+)/order-customer — modules/clients/clients-module.php
- /clients/(?P<id>\d+) — modules/clients/clients-module.php
- /clients — modules/clients/clients-module.php
- /login — modules/auth/auth-module.php
- /logout — modules/auth/auth-module.php
- /messages/internal/send — core/rest-api.php
- /messages/internal/threads/(?P<thread_id>\d+)/read — core/rest-api.php
- /messages/internal/threads/(?P<thread_id>\d+) — core/rest-api.php
- /messages/internal/threads — core/rest-api.php
- /messages/internal/users — core/rest-api.php
- /me — modules/auth/auth-module.php
- /push/dashboard — modules/notifications/notifications-module.php
- /refresh-token — modules/auth/auth-module.php
- /reports/summary — modules/reports/reports-module.php
- /service-orders/(?P<id>\d+)/note — modules/service_orders/service-orders-module.php
- /service-orders/(?P<id>\d+)/party-orders — modules/service_orders/service-orders-module.php
- /service-orders/(?P<id>\d+)/status — modules/service_orders/service-orders-module.php
- /service-orders/(?P<id>\d+)/technician-action — modules/service_orders/service-orders-module.php
- /service-orders/(?P<id>\d+) — modules/service_orders/service-orders-module.php
- /service-orders/customers — modules/service_orders/service-orders-module.php
- /service-orders/editor-catalog — modules/service_orders/service-orders-module.php
- /service-orders/editor-code-lookup — modules/service_orders/service-orders-module.php
- /service-orders/editor-color-match — modules/service_orders/service-orders-module.php
- /service-orders/payment-batch/(?P<id>\d+)/capture — modules/service_orders/service-orders-module.php
- /service-orders/payment-batch — modules/service_orders/service-orders-module.php
- /service-orders/payment-candidates — modules/service_orders/service-orders-module.php
- /service-orders/settings — modules/service_orders/service-orders-module.php
Hooks
- add_meta_boxes_product — modules/services/services-module.php
- add_meta_boxes_unya_client — modules/clients/clients-module.php
- add_meta_boxes_unya_client — modules/notifications/notifications-module.php
- add_meta_boxes_unya_technician — modules/notifications/notifications-module.php
- add_meta_boxes_unya_technician — modules/technicians/technician-module.php
- add_meta_boxes — core/post_types.php
- add_meta_boxes — modules/clients/clients-module.php
- add_meta_boxes — modules/services/services-module.php
- add_meta_boxes — modules/technicians/technician-module.php
- add_meta_boxes — modules/twilio/twilio-module.php
- admin_bar_menu — admin/admin.php
- admin_enqueue_scripts — admin/admin.php
- admin_enqueue_scripts — core/post_types.php
- admin_enqueue_scripts — modules/auth/auth-module.php
- admin_enqueue_scripts — modules/billing/billing-module.php
- admin_enqueue_scripts — modules/clients/clients-module.php
- admin_enqueue_scripts — modules/email_manager/email-manager-module.php
- admin_enqueue_scripts — modules/reports/reports-module.php
- admin_enqueue_scripts — modules/services/services-module.php
- admin_enqueue_scripts — modules/service_orders/service-orders-module.php
- admin_enqueue_scripts — modules/technicians/technician-module.php
- admin_enqueue_scripts — modules/twilio/twilio-module.php
- admin_footer-post-new.php — modules/services/services-module.php
- admin_footer-post.php — modules/services/services-module.php
- admin_head-edit.php — modules/services/services-module.php
- admin_head-post-new.php — modules/clients/clients-module.php
- admin_head-post-new.php — modules/services/services-module.php
- admin_head-post-new.php — modules/technicians/technician-module.php
- admin_head-post.php — modules/clients/clients-module.php
- admin_head-post.php — modules/services/services-module.php
- admin_head-post.php — modules/technicians/technician-module.php
- admin_init — core/settings.php
- admin_init — modules/services/services-module.php
- admin_menu — admin/admin.php
- admin_menu — modules/auth/auth-module.php
- admin_menu — modules/billing/billing-module.php
- admin_menu — modules/email_manager/email-manager-module.php
- admin_menu — modules/reports/reports-module.php
- admin_menu — modules/service_orders/service-orders-module.php
- admin_menu — modules/twilio/twilio-module.php
- admin_notices — modules/notifications/notifications-module.php
- admin_post_thumbnail_html — modules/services/services-module.php
- admin_post_unya_email_manager_save — modules/email_manager/email-manager-module.php
- asu_message_sent — modules/notifications/notifications-module.php
- athcm_swatch_post_types — modules/services/services-module.php
- athenian_securesign/envelope_completed — modules/booking/booking-module.php
- athenian_unya/booking_created — modules/email_manager/email-manager-module.php
- athenian_unya/booking_created — modules/notifications/notifications-module.php
- athenian_unya/expire_dispatch_offer — modules/service_orders/service-orders-module.php
- athenian_unya/service_order_created — modules/email_manager/email-manager-module.php
- athenian_unya/service_order_created — modules/notifications/notifications-module.php
- athenian_unya/service_order_dispatch_offer_created — modules/notifications/notifications-module.php
- athenian_unya/service_order_technician_assigned — modules/notifications/notifications-module.php
- ath_owlpay/payout/status_changed — modules/billing/billing-module.php
- ath_twilio/call_upserted — modules/notifications/notifications-module.php
- ath_twilio/message_upserted — modules/notifications/notifications-module.php
- awcai_chat_prompt_context — modules/booking/booking-module.php
- awcai_execute_tool_result — modules/booking/booking-module.php
- awcai_tools_schema — modules/booking/booking-module.php
- body_class — public/frontend.php
- deleted_post — modules/booking/booking-module.php
- determine_current_user — athenian-unya-2.php
- determine_current_user — modules/auth/auth-module.php
- determine_current_user — public/frontend.php
- display_post_states — core/post_types.php
- document_title_parts — public/frontend.php
- hidden_meta_boxes — modules/clients/clients-module.php
- hidden_meta_boxes — modules/technicians/technician-module.php
- init — core/post_types.php
- init — core/taxonomies.php
- init — modules/clients/clients-module.php
- init — modules/services/services-module.php
- init — modules/service_orders/service-orders-module.php
- init — modules/technicians/technician-module.php
- init — modules/twilio/twilio-module.php
- init — public/frontend.php
- manage_edit-product_columns — modules/services/services-module.php
- manage_edit-shop_order_columns — modules/service_orders/service-orders-module.php
- manage_edit-unya_addon_group_columns — modules/services/services-module.php
- manage_edit-unya_appointment_columns — core/post_types.php
- manage_edit-unya_client_columns — modules/clients/clients-module.php
- manage_edit-unya_finish_columns — modules/services/services-module.php
- manage_edit-unya_finish_sortable_columns — modules/services/services-module.php
- manage_edit-unya_service_columns — core/post_types.php
- manage_edit-unya_technician_columns — core/post_types.php
- manage_product_posts_custom_column — modules/services/services-module.php
- manage_shop_order_posts_custom_column — modules/service_orders/service-orders-module.php
- manage_unya_addon_group_posts_custom_column — modules/services/services-module.php
- manage_unya_appointment_posts_custom_column — core/post_types.php
- manage_unya_call_posts_columns — modules/twilio/twilio-module.php
- manage_unya_call_posts_custom_column — modules/twilio/twilio-module.php
- manage_unya_client_posts_custom_column — modules/clients/clients-module.php
- manage_unya_finish_posts_custom_column — modules/services/services-module.php
- manage_unya_service_posts_custom_column — core/post_types.php
- manage_unya_sms_posts_columns — modules/twilio/twilio-module.php
- manage_unya_sms_posts_custom_column — modules/twilio/twilio-module.php
- manage_unya_technician_posts_custom_column — core/post_types.php
- manage_woocommerce_page_wc-orders_columns — modules/service_orders/service-orders-module.php
- manage_woocommerce_page_wc-orders_custom_column — modules/service_orders/service-orders-module.php
- parse_request — core/plugin.php
Data Model
- See the source reference sections above for the documented persistence boundary.
API Reference
- Local source digest: 526d546b8a1d3118eee88b2d1ea07c71d70b34c1d87f5e6a9fe0c1b4371884ab
- Repository URL: https://github.com/Athenian-Brands/athenian-unya-2
- Repository reference: baseline/devdocs-2.3.0-20261006f
- Repository commit: c3fd2324cea4d4fbf12e4cb1670cbe1dbaa56903
Source files include: .gitignore, .playwright-cli/console-2026-03-12T03-23-33-896Z.log, .playwright-cli/console-2026-03-12T03-23-46-595Z.log, .playwright-cli/console-2026-03-12T12-10-54-023Z.log, .playwright-cli/console-2026-03-12T12-11-07-240Z.log, .playwright-cli/console-2026-05-08T15-20-47-041Z.log, .playwright-cli/page-2026-03-12T03-23-35-837Z.yml, .playwright-cli/page-2026-03-12T03-23-46-635Z.yml, .playwright-cli/page-2026-03-12T03-25-23-964Z.yml, .playwright-cli/page-2026-03-12T11-53-41-013Z.yml, .playwright-cli/page-2026-03-12T12-10-55-210Z.yml, .playwright-cli/page-2026-03-12T12-11-07-260Z.yml, .playwright-cli/page-2026-05-08T15-20-50-649Z.yml, .playwright-mcp/best-available-bianca-lane-qa.png, .playwright-mcp/commission-export-selection-qa.png, .playwright-mcp/console-2026-05-12T21-58-24-440Z.log, .playwright-mcp/console-2026-05-12T21-59-18-935Z.log, .playwright-mcp/console-2026-05-12T22-01-38-958Z.log, .playwright-mcp/console-2026-05-12T22-07-27-685Z.log, .playwright-mcp/console-2026-05-12T22-08-56-389Z.log, .playwright-mcp/console-2026-05-12T22-44-55-599Z.log, .playwright-mcp/console-2026-05-12T22-46-45-225Z.log, .playwright-mcp/console-2026-05-12T22-51-22-265Z.log, .playwright-mcp/console-2026-05-12T22-57-41-439Z.log, .playwright-mcp/console-2026-05-13T02-28-14-771Z.log, .playwright-mcp/console-2026-05-16T13-33-59-741Z.log, .playwright-mcp/console-2026-05-17T14-50-14-241Z.log, .playwright-mcp/console-2026-05-17T14-53-46-433Z.log, …
Troubleshooting
This baseline documents the Unÿa 2.0 service-platform architecture. It does not claim that a live booking, payment, service order, message, appointment, or technician workflow has been exercised.
- Confirm the deployed plugin version, active dependencies, and current repository tree before using implementation details as a release contract.
Treat payment, carrier, vendor, shipment, inventory, account, credential, tax, AI, and external-provider behavior as integration-dependent until exercised in the target environment.
FAQ
What is this page intended to establish?
A versioned, product-linked starting point for iterative developer documentation. It combines the local implementation reference with a detected-code inventory and a committed GitHub baseline.
Is the linked repository baseline verified?
Yes. The repository URL, ref, and commit recorded on this page were verified from the clean GitHub baseline prepared for this documentation pass. That does not by itself prove fleet deployment parity.
What remains for release-grade documentation?
Reconcile the recorded source baseline with the deployed plugin version, then exercise the relevant authenticated, store, provider, payment, tax, carrier, or generated-artifact paths in the target environment.