# GoHighLevel MCP → UI Component Analysis > Comprehensive mapping of all 38 GHL tool files to required UI components. > Generated 2025-02-03 from source analysis of every tool definition. --- ## Part 1: Endpoint-to-UI Mapping ### 1. Affiliates (17 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_affiliate_campaigns` | List of campaigns with name, commissionType, commissionValue, status | DataTable + StatusBadge | YES | | `get_affiliate_campaign` | Single campaign detail: name, description, commissionType/Value, cookieDays, productIds | DetailHeader + KeyValueList | YES | | `create/update/delete_affiliate_campaign` | Confirmation response | ActionButton (toast) | YES | | `get_affiliates` | List: contactId, campaignId, customCode, status (pending/approved/rejected) | DataTable + StatusBadge | YES | | `get_affiliate` | Single affiliate detail | DetailHeader + KeyValueList | YES | | `approve/reject_affiliate` | Action confirmation | ActionButton | YES | | `get_affiliate_commissions` | List: amount, status (pending/approved/paid), dates | DataTable + StatusBadge + **CurrencyDisplay** | PARTIALLY | | `get_affiliate_stats` | Performance metrics: clicks, conversions, revenue, date range | StatsGrid + MetricCard + **BarChart** | PARTIALLY | | `get_payouts` | List: amount, status, affiliateId, note | DataTable + StatusBadge | YES | | `get_referrals` | List: type (lead/sale), affiliateId, campaignId | DataTable + FilterChips | YES | **Gaps:** No chart component for affiliate performance over time. No currency/money formatting component. --- ### 2. Associations (10 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `ghl_get_all_associations` | List of associations with key, firstObjectLabel/Key, secondObjectLabel/Key | DataTable | YES | | `ghl_get_association_by_id/key/object_key` | Single association detail | KeyValueList | YES | | `ghl_create/update/delete_association` | Confirmation | ActionButton | YES | | `ghl_create_relation` | Relation between two records | ActionButton | YES | | `ghl_get_relations_by_record` | List of relations with record IDs | DataTable + **RelationshipGraph** | PARTIALLY | | `ghl_delete_relation` | Confirmation | ActionButton | YES | **Gaps:** Entity relationship visualization (graph/diagram showing how objects connect). --- ### 3. Blog (7 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_blog_posts` | List: title, status (DRAFT/PUBLISHED/SCHEDULED/ARCHIVED), author, categories, publishedAt | DataTable + StatusBadge + FilterChips | YES | | `get_blog_sites` | List of blog sites with names | DataTable | YES | | `get_blog_authors` | List of authors | DataTable | YES | | `get_blog_categories` | List of categories | DataTable | YES | | `create/update_blog_post` | Blog post detail: title, content (HTML), imageUrl, urlSlug, tags | DetailHeader + KeyValueList + **ContentPreview** | PARTIALLY | | `check_url_slug` | Boolean availability check | StatusBadge + InfoBlock | YES | **Gaps:** HTML/rich content preview component for blog post content. --- ### 4. Businesses (5 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_businesses` | List: name, phone, email, website, address, logoUrl | DataTable | YES | | `get_business` | Full detail with all fields | DetailHeader + KeyValueList + **AvatarImage** (logo) | PARTIALLY | | `create/update/delete_business` | Confirmation | ActionButton | YES | **Gaps:** Avatar/logo display component. --- ### 5. Calendar (38 tools — largest single file) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_calendar_groups` | List of calendar groups | DataTable | YES | | `get_calendars` | List: name, calendarType, slotDuration, isActive, groupId | DataTable + StatusBadge + FilterChips | YES | | `get_calendar` | Single calendar detail | DetailHeader + KeyValueList | YES | | `get_calendar_events` | Events: startTime, endTime, title, status, contactId, assignedUserId | **CalendarView** + DataTable + Timeline | PARTIALLY | | `get_free_slots` | Available time slots by date | **TimeSlotGrid** | NO | | `create/get/update/delete_appointment` | Appointment: title, startTime, endTime, status (new/confirmed/cancelled/showed/noshow) | DetailHeader + KeyValueList + StatusBadge | YES | | `get_appointment_notes` | List of notes with body, userId | Timeline | YES | | `create/update_block_slot` | Block slot data | **CalendarView** | NO | | `get_blocked_slots` | Blocked time ranges | **CalendarView** | NO | | `get_calendar_resources_equipments` | Equipment: name, quantity, outOfService, capacity | DataTable + **ResourceCapacityBar** | PARTIALLY | | `get_calendar_resources_rooms` | Rooms: name, quantity, capacity | DataTable | YES | | `get_calendar_notifications` | Notification configs: receiverType, channel, notificationType | DataTable + StatusBadge | YES | **Gaps:** Calendar/schedule view component. Time slot picker grid. Resource utilization bar. --- ### 6. Campaigns (12 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_campaigns` | List: name, type (email/sms/voicemail), status (draft/scheduled/running/completed/paused) | DataTable + StatusBadge + FilterChips | YES | | `get_campaign` | Full campaign detail | DetailHeader + KeyValueList | YES | | `get_campaign_stats` | Opens, clicks, bounces, deliveries, unsubscribes | StatsGrid + MetricCard + **FunnelChart** | PARTIALLY | | `get_campaign_recipients` | List: status (sent/delivered/opened/clicked/bounced) | DataTable + StatusBadge | YES | | `start/pause/resume_campaign` | Action confirmations | ActionButton + ActionBar | YES | | `get_scheduled_messages` | List of scheduled messages | DataTable + Timeline | YES | **Gaps:** Funnel/waterfall chart for campaign delivery pipeline (sent→delivered→opened→clicked). --- ### 7. Companies (5 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_companies` | List: name, phone, email, website, industry, employeeCount, annualRevenue, tags | DataTable + FilterChips | YES | | `get_company` | Full detail with customFields, address | DetailHeader + KeyValueList | YES | | `create/update/delete_company` | Confirmation | ActionButton | YES | **Covered:** YES --- ### 8. Contacts (31 tools — second largest) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `search_contacts` | List: firstName, lastName, email, phone, tags, source | DataTable + SearchBar + FilterChips | YES | | `get_contact` | Full contact detail: all fields, customFields, tags | DetailHeader + KeyValueList + **TagList** | PARTIALLY | | `create/update/delete_contact` | Confirmation | ActionButton | YES | | `add/remove_contact_tags` | Updated tags array | **TagList** | NO | | `get_contact_tasks` | List: title, dueDate, completed, assignedTo | DataTable + StatusBadge + **ChecklistView** | PARTIALLY | | `create/update_contact_task` | Task detail | KeyValueList | YES | | `get_contact_notes` | List of notes: body, userId, timestamp | Timeline | YES | | `get_contact_appointments` | List of appointments | Timeline + DataTable | YES | | `upsert_contact` | Created/updated contact + isNew flag | StatusBadge + KeyValueList | YES | | `get_duplicate_contact` | Matched contact or null | **DuplicateCompare** | NO | | `get_contacts_by_business` | Contact list filtered by business | DataTable | YES | | `bulk_update_contact_tags` | Bulk result count | MetricCard | YES | | `add/remove_contact_followers` | Followers list | **AvatarGroup** | NO | | `add/remove_contact_to_campaign/workflow` | Confirmation | ActionButton | YES | **Gaps:** Tag list/chip display, checklist/task list view, duplicate record comparison side-by-side, avatar group for followers. --- ### 9. Conversations (20 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `search_conversations` | List: contactName, lastMessageBody, unreadCount, starred | DataTable + StatusBadge + SearchBar | YES | | `get_conversation` | Conversation + messages array: type, body, direction, timestamp | **ChatThread** + Timeline | NO | | `get_recent_messages` | Enhanced conversations with last message | DataTable + StatusBadge | YES | | `send_sms/send_email` | Message ID, conversation ID | ActionButton | YES | | `get_email_message` | Full email: subject, html, from, to, cc, bcc, attachments | **EmailPreview** | NO | | `get_message` | Message detail with type, body, status | KeyValueList + StatusBadge | YES | | `get_message_recording` | Audio data, contentType | **AudioPlayer** | NO | | `get_message_transcription` | Transcription text array | **TranscriptView** | NO | | `add_inbound_message/add_outbound_call` | Confirmation | ActionButton | YES | **Gaps:** Chat/message thread view, email preview with HTML rendering, audio player for recordings, transcript viewer. --- ### 10. Courses (30 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_courses` | List: title, description, thumbnailUrl, visibility, categoryId | DataTable + **CardGrid** | PARTIALLY | | `get_course` | Course detail with all fields | DetailHeader + KeyValueList | YES | | `get_course_posts` | Lessons: title, contentType (video/text/quiz/assignment), content, visibility | DataTable + StatusBadge | YES | | `get_course_products` | Products: title, description, imageUrl | **CardGrid** | NO | | `get_course_offers` | Pricing: name, price, currency, type (one-time/subscription), interval | LineItemsTable | YES | | `get_course_enrollments` | List of enrolled contacts | DataTable | YES | | `get_student_progress` | Progress data: completed lessons, total | ProgressBar + **CourseProgressView** | PARTIALLY | | `update_lesson_completion` | Completion status | StatusBadge | YES | | `get_course_instructors` | List of instructors | DataTable | YES | | `get_course_categories` | Category list | DataTable | YES | **Gaps:** Card grid for visual product/course browsing. Course-specific progress view showing lesson-by-lesson completion. --- ### 11. Custom Fields V2 (8 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `ghl_get_custom_fields_by_object_key` | Fields array + folders array: name, dataType, options, fieldKey | DataTable + **TreeView** (folders) | PARTIALLY | | `ghl_get_custom_field_by_id` | Single field detail | KeyValueList | YES | | `ghl_create/update/delete_custom_field` | Confirmation | ActionButton | YES | | `ghl_create/update/delete_custom_field_folder` | Folder management | ActionButton | YES | **Gaps:** Tree/folder view for hierarchical field organization. --- ### 12. Email ISV (1 tool) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `verify_email` | result, risk level, reasons array, recommendation | StatusBadge + KeyValueList + **RiskIndicator** | PARTIALLY | **Gaps:** Risk/score indicator (visual gauge or traffic light). --- ### 13. Email Tools (5 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_email_campaigns` | List: status (active/pause/complete/cancelled), total | DataTable + StatusBadge | YES | | `get_email_templates` | List of templates | DataTable | YES | | `create/update/delete_email_template` | Confirmation | ActionButton | YES | **Covered:** YES --- ### 14. Forms (3 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_forms` | List of forms with type | DataTable | YES | | `get_form_submissions` | Submissions: contact data, field values, timestamps | DataTable + **FormResponseView** | PARTIALLY | | `get_form_by_id` | Form detail | DetailHeader + KeyValueList | YES | **Gaps:** Form submission viewer showing field labels with submitted values. --- ### 15. Funnels (8 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_funnels` | List: name, type (funnel/website), category, steps/pages | DataTable + FilterChips | YES | | `get_funnel` | Funnel detail with pages | DetailHeader + KeyValueList + **StepFlow** | PARTIALLY | | `get_funnel_pages` | Pages: name, path, order | DataTable + **StepFlow** | PARTIALLY | | `count_funnel_pages` | Integer count | MetricCard | YES | | `get_funnel_redirects` | Redirects: pathName, target, action | DataTable | YES | | `create/update/delete_funnel_redirect` | Confirmation | ActionButton | YES | **Gaps:** Step/flow visualization showing funnel page sequence. --- ### 16. Invoices (20 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `list_invoices` | List: title, status, contactId, currency, amount, dates | DataTable + StatusBadge + FilterChips | YES | | `get_invoice` | Full invoice: items[], amounts, tax, contact, dates | DetailHeader + LineItemsTable + KeyValueList + **InvoiceDocument** | PARTIALLY | | `list_estimates` | List: title, status (draft/sent/accepted/declined/invoiced/viewed) | DataTable + StatusBadge | YES | | `list_invoice_templates` | Templates list | DataTable | YES | | `list_invoice_schedules` | Recurring schedule list | DataTable + StatusBadge | YES | | `send_invoice` | Send confirmation | ActionButton | YES | | `create_invoice_from_estimate` | New invoice | ActionButton | YES | | `generate_invoice_number` | Unique number string | InfoBlock | YES | **Gaps:** Invoice document preview (formatted like a real invoice/PDF). --- ### 17. Links (5 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_links` | Trigger links: name, redirectTo, fieldKey, fieldValue | DataTable | YES | | `get_link` | Link detail | KeyValueList | YES | | `create/update/delete_link` | Confirmation | ActionButton | YES | **Covered:** YES --- ### 18. Location (27 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `search_locations` | List: name, address, phone, email, website | DataTable + SearchBar | YES | | `get_location` | Full location detail: name, address, timezone, settings | DetailHeader + KeyValueList + SplitLayout | YES | | `get_location_tags` | Tag list: name, id | DataTable + **TagList** | PARTIALLY | | `search_location_tasks` | Tasks: title, completed, assignedTo, dueDate | DataTable + StatusBadge | YES | | `get_location_custom_fields` | Fields: name, dataType, model, placeholder | DataTable | YES | | `get_location_custom_values` | Values: name, value | KeyValueList | YES | | `get_location_templates` | Templates: type (sms/email/whatsapp), content | DataTable + FilterChips | YES | | `get_timezones` | Array of timezone strings | DataTable | YES | | `create/update/delete_location` | Confirmation | ActionButton | YES | **Covered:** YES (mostly) --- ### 19. Media (3 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_media_files` | Files/folders: name, type, size, url, parentId, createdAt | DataTable + **MediaGallery** + **TreeView** | NO | | `upload_media_file` | fileId, url | ActionButton | YES | | `delete_media_file` | Confirmation | ActionButton | YES | **Gaps:** Media gallery grid with thumbnails. File/folder tree browser. --- ### 20. OAuth (10 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_oauth_apps` | List of OAuth apps | DataTable | YES | | `get_installed_locations` | Locations with install status | DataTable + StatusBadge | YES | | `get_connected_integrations` | Connected integrations list | DataTable + StatusBadge | YES | | `get_api_keys` | API key list | DataTable | YES | | All CUD operations | Confirmations | ActionButton | YES | **Covered:** YES --- ### 21. Objects (9 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_all_objects` | Objects: labels, key, type (standard/custom) | DataTable + StatusBadge | YES | | `get_object_schema` | Schema with fields array, properties | KeyValueList + DataTable | YES | | `search_object_records` | Records with dynamic properties | DataTable + SearchBar | YES | | `get_object_record` | Record with properties key-value | KeyValueList | YES | | `create/update/delete` | Confirmations | ActionButton | YES | **Covered:** YES --- ### 22. Opportunities (10 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `search_opportunities` | List: name, status (open/won/lost/abandoned), monetaryValue, pipeline, stage, contact | DataTable + StatusBadge + FilterChips | YES | | `get_pipelines` | Pipelines with stages array | **PipelineView** or KanbanBoard | PARTIALLY | | `get_opportunity` | Full opportunity detail: name, value, stage, contact, customFields | DetailHeader + KeyValueList + StatusBadge | YES | | `create/update/delete_opportunity` | Confirmations | ActionButton | YES | | `upsert_opportunity` | Opportunity + isNew flag | StatusBadge | YES | | `add/remove_opportunity_followers` | Followers list | **AvatarGroup** | NO | **Gaps:** KanbanBoard already exists but pipeline view with stages + values needs stage-specific styling. Avatar group for followers. --- ### 23. Payments (22 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `list_orders` | Orders: status, amount, contactId, items, dates | DataTable + StatusBadge + FilterChips | YES | | `get_order_by_id` | Full order: items, totals, contact, fulfillment status | DetailHeader + LineItemsTable + StatusBadge | YES | | `list_transactions` | Transactions: amount, type, status, dates | DataTable + StatusBadge + **CurrencyDisplay** | PARTIALLY | | `get_transaction_by_id` | Transaction detail | KeyValueList + StatusBadge | YES | | `list_subscriptions` | Subscriptions: status, amount, interval, nextBilling | DataTable + StatusBadge | YES | | `get_subscription_by_id` | Subscription detail | KeyValueList + StatusBadge | YES | | `list_coupons` | Coupons: code, discountType, discountValue, status, dates | DataTable + StatusBadge | YES | | `list_order_fulfillments` | Fulfillments: trackingNumber, carrier, items, status | DataTable + **ShipmentTracker** | PARTIALLY | | `create_order_fulfillment` | Fulfillment confirmation | ActionButton | YES | **Gaps:** Shipment/fulfillment tracking timeline. Currency formatting component. --- ### 24. Phone (20 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_phone_numbers` | List: number, name, forwardingNumber, callRecording | DataTable + StatusBadge | YES | | `search_available_numbers` | Available numbers: number, type, capabilities | DataTable + FilterChips | YES | | `get_ivr_menus` | IVR menus: name, greeting, options (digit→action→destination) | DataTable + **FlowDiagram** | PARTIALLY | | `get_voicemail_settings` | Settings object | KeyValueList | YES | | `get_voicemails` | List: status (new/read/archived), duration, transcription | DataTable + StatusBadge + **AudioPlayer** | PARTIALLY | | `get_caller_ids` | List of verified caller IDs | DataTable + StatusBadge | YES | | All CUD operations | Confirmations | ActionButton | YES | **Gaps:** IVR flow diagram, audio player for voicemails. --- ### 25. Products (10 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `ghl_list_products` | Products: name, productType, availableInStore, description, image | DataTable + **CardGrid** + StatusBadge | PARTIALLY | | `ghl_get_product` | Full product: variants, medias, collections, prices | DetailHeader + KeyValueList + **ImageCarousel** | PARTIALLY | | `ghl_list_prices` | Prices: name, amount, currency, type (one_time/recurring), compareAtPrice | LineItemsTable + **CurrencyDisplay** | PARTIALLY | | `ghl_list_inventory` | Inventory: availableQuantity, sku, product, allowOutOfStockPurchases | DataTable + **StockIndicator** | PARTIALLY | | `ghl_list_product_collections` | Collections: name, slug, image | **CardGrid** | NO | **Gaps:** Card grid for product catalog, image carousel, stock level indicator, currency display. --- ### 26. Reporting (12 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_attribution_report` | Source tracking: sources, lead counts, conversion rates | **BarChart** + DataTable + StatsGrid | NO | | `get_call_reports` | Call metrics: duration, outcomes, inbound/outbound counts | **BarChart** + StatsGrid + MetricCard | NO | | `get_appointment_reports` | Appointment stats: booked, confirmed, showed, noshow | StatsGrid + **PieChart** + **BarChart** | NO | | `get_pipeline_reports` | Pipeline performance: stage values, conversion rates | **FunnelChart** + StatsGrid + MetricCard | NO | | `get_email_reports` | Email metrics: deliverability, opens, clicks, bounces | StatsGrid + **BarChart** + **FunnelChart** | NO | | `get_sms_reports` | SMS metrics: sent, delivered, failed | StatsGrid + **PieChart** | NO | | `get_funnel_reports` | Funnel metrics: page views, conversions, conversion rate | **FunnelChart** + StatsGrid | NO | | `get_ad_reports` | Ad performance: impressions, clicks, spend, CPC, conversions | StatsGrid + **LineChart** + DataTable | NO | | `get_agent_reports` | Agent performance: calls, emails, appointments, revenue | DataTable + StatsGrid + **BarChart** | NO | | `get_dashboard_stats` | Overview stats: contacts, revenue, appointments, tasks | StatsGrid + MetricCard + **SparklineChart** | PARTIALLY | | `get_conversion_reports` | Conversion tracking by source | **BarChart** + DataTable | NO | | `get_revenue_reports` | Revenue by period: groupBy (day/week/month) | **LineChart** + DataTable + MetricCard | NO | **Gaps:** THIS IS THE BIGGEST GAP. Reporting needs: BarChart, LineChart, PieChart, FunnelChart, SparklineChart. None exist. --- ### 27. Reputation (14 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_reviews` | Reviews: platform, rating (1-5), text, status (replied/unreplied), date | DataTable + **StarRating** + StatusBadge + FilterChips | PARTIALLY | | `get_review_stats` | Aggregate: avg rating, total count, breakdown by rating | StatsGrid + MetricCard + **StarRating** + **BarChart** | PARTIALLY | | `send_review_request` | Confirmation | ActionButton | YES | | `get_review_requests` | List: status (sent/clicked/reviewed), contact | DataTable + StatusBadge | YES | | `get_connected_review_platforms` | Platform connections | DataTable + StatusBadge | YES | | `get_review_links` | Platform-specific links | KeyValueList | YES | | `reply_to_review` | Reply confirmation | ActionButton | YES | **Gaps:** Star rating display component. Rating distribution bar chart. --- ### 28. SaaS (6 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_saas_locations` | Sub-accounts: name, isActive, subscription status | DataTable + StatusBadge + FilterChips | YES | | `get_saas_location` | Location detail at agency level | DetailHeader + KeyValueList | YES | | `pause/enable_saas_location` | Status change | ActionButton + StatusBadge | YES | | `rebilling_update` | Rebilling config | KeyValueList | YES | **Covered:** YES --- ### 29. Smart Lists (8 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_smart_lists` | List: name, filter criteria | DataTable | YES | | `get_smart_list` | Detail with filters array | KeyValueList + **FilterBuilder** | PARTIALLY | | `get_smart_list_contacts` | Contacts matching criteria | DataTable | YES | | `get_smart_list_count` | Integer count | MetricCard | YES | | `create/update/delete/duplicate` | Confirmations | ActionButton | YES | **Gaps:** Visual filter builder showing filter conditions (though FilterChips covers simple cases). --- ### 30. Snapshots (6 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_snapshots` | List: name, description, locationId | DataTable | YES | | `get_snapshot` | Snapshot detail | DetailHeader + KeyValueList | YES | | `create_snapshot` | New snapshot | ActionButton | YES | | `push_snapshot_to_subaccounts` | Push operation with override options | ActionButton + **ChecklistView** (overrides) | PARTIALLY | | `get_snapshot_push_status` | Push status/progress | ProgressBar + StatusBadge | YES | **Covered:** YES (mostly) --- ### 31. Social Media (16 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `search_social_posts` | Posts: summary, media[], status, scheduleDate, type (post/story/reel), accounts | DataTable + StatusBadge + FilterChips | YES | | `get_social_post` | Post detail with media array | DetailHeader + **MediaGallery** + KeyValueList | PARTIALLY | | `create_social_post` | New post with media | ActionButton | YES | | `get_social_accounts` | Connected accounts + groups | DataTable + **AvatarGroup** | PARTIALLY | | `get_social_categories/tags` | Category/tag lists | DataTable + **TagList** | PARTIALLY | | `get_csv_upload_status` | Upload status list | DataTable + StatusBadge + ProgressBar | YES | | `start_social_oauth` | OAuth URL/data | ActionButton | YES | **Gaps:** Media gallery for post media preview, tag list component. --- ### 32. Store (17 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `ghl_list_shipping_zones` | Zones: name, countries[], shippingRates[] | DataTable | YES | | `ghl_get_shipping_zone` | Zone detail with countries/states | DetailHeader + KeyValueList + DataTable | YES | | `ghl_list_shipping_rates` | Rates: name, amount, currency, conditionType | DataTable + **CurrencyDisplay** | PARTIALLY | | `ghl_get_available_shipping_rates` | Available rates for order context | DataTable + **CurrencyDisplay** | PARTIALLY | | `ghl_list_shipping_carriers` | Carriers: name, services[], callbackUrl | DataTable | YES | | `ghl_get_store_setting` | Settings: shippingOrigin, notifications | KeyValueList | YES | | All CUD operations | Confirmations | ActionButton | YES | **Covered:** YES (mostly) --- ### 33. Surveys (2 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `ghl_get_surveys` | List: survey names, types | DataTable | YES | | `ghl_get_survey_submissions` | Submissions with meta: total, pagination, field values | DataTable + **FormResponseView** | PARTIALLY | **Gaps:** Form/survey response viewer (same as forms). --- ### 34. Templates (16 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_sms_templates` | List: name, body (with merge fields) | DataTable | YES | | `get_email_templates` | (from email-tools) | DataTable | YES | | `get_voicemail_templates` | List: name, audioUrl | DataTable | YES | | `get_social_templates` | List: name, content, platforms | DataTable | YES | | `get_whatsapp_templates` | List: name, category, language, status (approved/pending/rejected), components | DataTable + StatusBadge | YES | | `get_snippets` | List: name, shortcut, content, type | DataTable + FilterChips | YES | | All CUD operations | Confirmations | ActionButton | YES | **Covered:** YES --- ### 35. Triggers (11 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_triggers` | List: name, type, status (active/inactive), filters, actions | DataTable + StatusBadge + FilterChips | YES | | `get_trigger` | Trigger detail with filters[] and actions[] | DetailHeader + KeyValueList + **FlowDiagram** | PARTIALLY | | `get_trigger_types` | Available trigger type definitions | DataTable | YES | | `get_trigger_logs` | Execution logs: status (success/failed), timestamps | DataTable + StatusBadge + Timeline | YES | | `test/duplicate_trigger` | Confirmations | ActionButton | YES | **Gaps:** Flow diagram for trigger logic (condition → action visualization). --- ### 36. Users (6 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_users` | List: firstName, lastName, email, phone, role, type | DataTable + FilterChips | YES | | `get_user` | User detail with permissions | DetailHeader + KeyValueList | YES | | `search_users` | Search results | DataTable + SearchBar | YES | | `create/update/delete_user` | Confirmations | ActionButton | YES | **Covered:** YES --- ### 37. Webhooks (9 tools) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `get_webhooks` | List: name, url, events[], active | DataTable + StatusBadge | YES | | `get_webhook` | Detail with events | DetailHeader + KeyValueList | YES | | `get_webhook_events` | Available event types list | DataTable | YES | | `get_webhook_logs` | Delivery logs: status (success/failed/pending), timestamps | DataTable + StatusBadge + Timeline | YES | | `retry/test_webhook` | Confirmations | ActionButton | YES | **Covered:** YES --- ### 38. Workflows (1 tool) | Tool | Data Returned | Ideal UI Components | Covered? | |------|--------------|---------------------|----------| | `ghl_get_workflows` | List: name, status, type | DataTable + StatusBadge | YES | **Covered:** YES --- ## Part 2: Gap Analysis — Missing Components ### HIGH Priority (needed by 5+ endpoint categories) | # | Component | What It Does | GHL Endpoints That Need It | Priority | |---|-----------|-------------|---------------------------|----------| | 1 | **BarChart** | Horizontal/vertical bar chart for comparing categories (e.g., source attribution, agent performance) | Reporting (attribution, calls, appointments, emails, agents, conversions), Reputation (rating distribution), Affiliates (stats) | **HIGH** | | 2 | **LineChart** | Time-series line chart for trends (revenue over time, ad performance) | Reporting (ad reports, revenue reports), Campaigns (stats over time), Affiliates (earnings trend) | **HIGH** | | 3 | **PieChart / DonutChart** | Proportional breakdown (appointment statuses, SMS delivery, review platforms) | Reporting (appointment reports, SMS reports), Reputation (platform breakdown), Campaigns (recipient statuses) | **HIGH** | | 4 | **CurrencyDisplay** | Formatted monetary value with currency symbol, locale formatting (e.g., "$1,234.56 USD") | Affiliates (commissions, payouts), Payments (orders, transactions, subscriptions), Invoices, Products (prices), Opportunities (monetaryValue), Store (shipping rates) | **HIGH** | | 5 | **TagList** | Visual tag/chip display for arrays of tags — inline colored pills | Contacts (tags), Location (tags), Social Media (tags), Blog (tags), Companies (tags) | **HIGH** | | 6 | **CardGrid** | Grid of visual cards with image, title, description — for browsable catalogs | Products (product list), Courses (course list, course products), Blog (sites), Social Media (accounts), Media (gallery) | **HIGH** | | 7 | **AvatarGroup** | Stacked circular avatars for users/followers/team members | Contacts (followers), Opportunities (followers), Social Media (accounts), Calendar (assigned users) | **HIGH** | ### MEDIUM Priority (needed by 2-4 endpoint categories) | # | Component | What It Does | GHL Endpoints That Need It | Priority | |---|-----------|-------------|---------------------------|----------| | 8 | **FunnelChart** | Horizontal funnel/waterfall showing conversion stages with drop-off | Reporting (pipeline reports, funnel reports), Campaigns (sent→delivered→opened→clicked) | **MEDIUM** | | 9 | **CalendarView** | Monthly/weekly/daily calendar with event blocks and time slots | Calendar (events, free slots, blocked slots), Appointments (scheduling views) | **MEDIUM** | | 10 | **ChatThread** | Conversation message thread with bubbles, timestamps, direction (in/out), multi-type (SMS, email, call) | Conversations (get_conversation messages), Contact detail (conversation tab) | **MEDIUM** | | 11 | **MediaGallery** | Grid of image/video thumbnails with lightbox, file info overlay | Media (file listing), Products (medias), Social Media (post media), Blog (images) | **MEDIUM** | | 12 | **StarRating** | Visual star display (1-5) with average + count, and optional distribution bar | Reputation (reviews, review stats), Products (product reviews) | **MEDIUM** | | 13 | **AudioPlayer** | Inline audio player with play/pause, seek, duration display | Conversations (call recordings), Phone (voicemails), Templates (voicemail templates) | **MEDIUM** | | 14 | **SparklineChart** | Tiny inline chart for embedding in MetricCard or table cells — shows trend direction | Reporting (dashboard stats), any metric that has historical data | **MEDIUM** | | 15 | **FlowDiagram** | Simple node→arrow→node flow visualization for sequential/conditional logic | Triggers (condition→action flow), Phone (IVR menu options), Funnels (page flow) | **MEDIUM** | | 16 | **TreeView** | Hierarchical expandable tree for folders/parent-child structures | Media (file/folder browser), Custom Fields V2 (folders), Course categories | **MEDIUM** | ### LOW Priority (needed by 1-2 endpoint categories) | # | Component | What It Does | GHL Endpoints That Need It | Priority | |---|-----------|-------------|---------------------------|----------| | 17 | **EmailPreview** | Rendered HTML email preview in a safe iframe/container with header info (from, to, subject) | Conversations (email messages), Email templates preview | **LOW** | | 18 | **ContentPreview** | Rich HTML/text content preview (sanitized) for blog posts, course content | Blog (post content), Courses (lesson content) | **LOW** | | 19 | **ChecklistView** | Task/checklist with checkbox, title, due date, assignee — for to-do style lists | Contacts (tasks), Location (tasks), Snapshots (override checklist) | **LOW** | | 20 | **StockIndicator** | Visual stock level indicator (green/yellow/red) with quantity display | Products (inventory levels) | **LOW** | | 21 | **DuplicateCompare** | Side-by-side comparison of two records highlighting differences | Contacts (duplicate detection) | **LOW** | | 22 | **TranscriptView** | Time-stamped conversation transcript with speaker labels | Conversations (call transcriptions) | **LOW** | --- ## Part 3: Updated Full Component Catalog ### Layout Components (5 existing) | Component | Description | |-----------|-------------| | `PageHeader` | Page title, breadcrumbs, primary actions | | `Card` | Content container with optional header/footer | | `StatsGrid` | Grid layout for multiple metric cards | | `SplitLayout` | Two-panel layout (master/detail, sidebar) | | `Section` | Titled section with collapsible content | ### Data Display Components (12 existing + 10 new = 22) | Component | Description | Status | |-----------|-------------|--------| | `DataTable` | Sortable, paginated table with column config | Existing | | `KanbanBoard` | Drag-and-drop columns (pipelines, stages) | Existing | | `MetricCard` | Single KPI with value, label, trend indicator | Existing | | `StatusBadge` | Colored pill showing entity status | Existing | | `Timeline` | Vertical timeline of events/activities | Existing | | `ProgressBar` | Horizontal progress indicator | Existing | | `InfoBlock` | Key message/notice display | Existing | | `TagList` | **NEW** — Colored tag pills for arrays of tags | **New** | | `CardGrid` | **NEW** — Image+title+desc grid for browsable catalogs | **New** | | `AvatarGroup` | **NEW** — Stacked circular avatar icons for users/followers | **New** | | `CurrencyDisplay` | **NEW** — Formatted monetary value with currency code | **New** | | `StarRating` | **NEW** — Star display (1-5) with average, count, distribution | **New** | | `AudioPlayer` | **NEW** — Inline audio player with controls | **New** | | `StockIndicator` | **NEW** — Stock level visual (quantity + color coding) | **New** | | `TreeView` | **NEW** — Hierarchical expandable folder/tree structure | **New** | | `MediaGallery` | **NEW** — Thumbnail grid with lightbox for files/images | **New** | | `ChecklistView` | **NEW** — Task/to-do checklist with status, due dates | **New** | ### Chart Components (0 existing + 5 new = 5) | Component | Description | Status | |-----------|-------------|--------| | `BarChart` | **NEW** — Vertical/horizontal bar chart for category comparison | **New** | | `LineChart` | **NEW** — Time-series line chart for trends | **New** | | `PieChart` | **NEW** — Proportional breakdown (pie or donut) | **New** | | `FunnelChart` | **NEW** — Horizontal funnel showing stage-by-stage drop-off | **New** | | `SparklineChart` | **NEW** — Tiny inline chart for embedding in cards/tables | **New** | ### Detail View Components (3 existing + 4 new = 7) | Component | Description | Status | |-----------|-------------|--------| | `DetailHeader` | Entity header with name, status, avatar, primary actions | Existing | | `KeyValueList` | Label-value pairs for entity details | Existing | | `LineItemsTable` | Table with quantity, price, subtotals for invoices/orders | Existing | | `ChatThread` | **NEW** — Conversation message bubbles with timestamps and direction | **New** | | `EmailPreview` | **NEW** — Rendered HTML email in safe container with header info | **New** | | `ContentPreview` | **NEW** — Rich HTML/text content preview (sanitized) | **New** | | `TranscriptView` | **NEW** — Time-stamped transcript with speaker labels | **New** | ### Interactive Components (5 existing + 1 new = 6) | Component | Description | Status | |-----------|-------------|--------| | `SearchBar` | Search input with debounce and submit | Existing | | `FilterChips` | Toggleable filter pills for status/type/etc. | Existing | | `TabGroup` | Tab navigation for sectioned views | Existing | | `ActionButton` | Primary/secondary/danger action buttons | Existing | | `ActionBar` | Grouped action buttons (toolbar) | Existing | | `DuplicateCompare` | **NEW** — Side-by-side record comparison with diff highlights | **New** | ### Visualization Components (0 existing + 3 new = 3) | Component | Description | Status | |-----------|-------------|--------| | `CalendarView` | **NEW** — Month/week/day calendar with event blocks | **New** | | `FlowDiagram` | **NEW** — Node→arrow→node sequential/conditional flow | **New** | --- ## Part 4: Summary Stats | Metric | Value | |--------|-------| | **Total tool files analyzed** | 38 | | **Total individual tools (endpoints)** | ~365 | | **Tools fully covered by current 20 components** | ~220 (60%) | | **Tools partially covered** | ~105 (29%) | | **Tools NOT covered (need new components)** | ~40 (11%) | | **Existing components** | 20 | | **New components needed** | 22 | | **Updated total component count** | 42 | | **Biggest gap area** | Reporting (12 tools, zero chart coverage) | | **Most-needed new component** | BarChart (used by 9+ tool categories) | | **Second most-needed** | CurrencyDisplay (used by 6+ tool categories) | ### Coverage Heat Map by Category | Category | Tools | Fully Covered | Partially | Not Covered | |----------|-------|--------------|-----------|-------------| | Affiliates | 17 | 13 | 4 | 0 | | Associations | 10 | 9 | 1 | 0 | | Blog | 7 | 5 | 2 | 0 | | Businesses | 5 | 4 | 1 | 0 | | **Calendar** | **38** | **28** | **7** | **3** | | Campaigns | 12 | 10 | 2 | 0 | | Companies | 5 | 5 | 0 | 0 | | **Contacts** | **31** | **22** | **6** | **3** | | **Conversations** | **20** | **11** | **5** | **4** | | Courses | 30 | 22 | 6 | 2 | | Custom Fields V2 | 8 | 7 | 1 | 0 | | Email ISV | 1 | 0 | 1 | 0 | | Email Tools | 5 | 5 | 0 | 0 | | Forms | 3 | 2 | 1 | 0 | | Funnels | 8 | 6 | 2 | 0 | | Invoices | 20 | 17 | 3 | 0 | | Links | 5 | 5 | 0 | 0 | | Location | 27 | 25 | 2 | 0 | | **Media** | **3** | **1** | **0** | **2** | | OAuth | 10 | 10 | 0 | 0 | | Objects | 9 | 9 | 0 | 0 | | Opportunities | 10 | 8 | 1 | 1 | | **Payments** | **22** | **17** | **4** | **1** | | Phone | 20 | 14 | 4 | 2 | | **Products** | **10** | **4** | **4** | **2** | | **Reporting** | **12** | **1** | **1** | **10** | | Reputation | 14 | 9 | 5 | 0 | | SaaS | 6 | 6 | 0 | 0 | | Smart Lists | 8 | 7 | 1 | 0 | | Snapshots | 6 | 5 | 1 | 0 | | Social Media | 16 | 11 | 5 | 0 | | Store | 17 | 14 | 3 | 0 | | Surveys | 2 | 1 | 1 | 0 | | Templates | 16 | 16 | 0 | 0 | | Triggers | 11 | 8 | 3 | 0 | | Users | 6 | 6 | 0 | 0 | | Webhooks | 9 | 9 | 0 | 0 | | Workflows | 1 | 1 | 0 | 0 | ### Priority Build Order (what to build first for max coverage) 1. **BarChart + LineChart + PieChart** → unlocks all 12 Reporting tools + improves Campaigns, Affiliates, Reputation 2. **CurrencyDisplay** → improves Payments, Invoices, Products, Affiliates, Opportunities, Store 3. **TagList** → improves Contacts, Companies, Social Media, Blog, Location 4. **CardGrid** → improves Products, Courses, Media, Blog 5. **ChatThread** → unlocks Conversations properly 6. **CalendarView** → unlocks Calendar events/scheduling properly 7. **AvatarGroup** → improves Contacts, Opportunities, Social Media 8. **FunnelChart** → completes Reporting + Campaigns 9. **MediaGallery + TreeView** → unlocks Media library properly 10. **StarRating** → improves Reputation management