digital-tools 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +5 -0
- package/CHANGELOG.md +9 -0
- package/README.md +1144 -0
- package/dist/define.d.ts +109 -0
- package/dist/define.d.ts.map +1 -0
- package/dist/define.js +268 -0
- package/dist/define.js.map +1 -0
- package/dist/entities/advertising.d.ts +79 -0
- package/dist/entities/advertising.d.ts.map +1 -0
- package/dist/entities/advertising.js +1000 -0
- package/dist/entities/advertising.js.map +1 -0
- package/dist/entities/ai.d.ts +69 -0
- package/dist/entities/ai.d.ts.map +1 -0
- package/dist/entities/ai.js +757 -0
- package/dist/entities/ai.js.map +1 -0
- package/dist/entities/analytics.d.ts +83 -0
- package/dist/entities/analytics.d.ts.map +1 -0
- package/dist/entities/analytics.js +1589 -0
- package/dist/entities/analytics.js.map +1 -0
- package/dist/entities/automation.d.ts +61 -0
- package/dist/entities/automation.d.ts.map +1 -0
- package/dist/entities/automation.js +602 -0
- package/dist/entities/automation.js.map +1 -0
- package/dist/entities/communication.d.ts +96 -0
- package/dist/entities/communication.d.ts.map +1 -0
- package/dist/entities/communication.js +1151 -0
- package/dist/entities/communication.js.map +1 -0
- package/dist/entities/crm.d.ts +91 -0
- package/dist/entities/crm.d.ts.map +1 -0
- package/dist/entities/crm.js +1387 -0
- package/dist/entities/crm.js.map +1 -0
- package/dist/entities/design.d.ts +61 -0
- package/dist/entities/design.d.ts.map +1 -0
- package/dist/entities/design.js +547 -0
- package/dist/entities/design.js.map +1 -0
- package/dist/entities/development.d.ts +145 -0
- package/dist/entities/development.d.ts.map +1 -0
- package/dist/entities/development.js +2213 -0
- package/dist/entities/development.js.map +1 -0
- package/dist/entities/document.d.ts +54 -0
- package/dist/entities/document.d.ts.map +1 -0
- package/dist/entities/document.js +875 -0
- package/dist/entities/document.js.map +1 -0
- package/dist/entities/ecommerce.d.ts +93 -0
- package/dist/entities/ecommerce.d.ts.map +1 -0
- package/dist/entities/ecommerce.js +1430 -0
- package/dist/entities/ecommerce.js.map +1 -0
- package/dist/entities/experiment.d.ts +89 -0
- package/dist/entities/experiment.d.ts.map +1 -0
- package/dist/entities/experiment.js +1040 -0
- package/dist/entities/experiment.js.map +1 -0
- package/dist/entities/finance.d.ts +272 -0
- package/dist/entities/finance.d.ts.map +1 -0
- package/dist/entities/finance.js +3479 -0
- package/dist/entities/finance.js.map +1 -0
- package/dist/entities/forms.d.ts +91 -0
- package/dist/entities/forms.d.ts.map +1 -0
- package/dist/entities/forms.js +1893 -0
- package/dist/entities/forms.js.map +1 -0
- package/dist/entities/hr.d.ts +62 -0
- package/dist/entities/hr.d.ts.map +1 -0
- package/dist/entities/hr.js +662 -0
- package/dist/entities/hr.js.map +1 -0
- package/dist/entities/identity.d.ts +90 -0
- package/dist/entities/identity.d.ts.map +1 -0
- package/dist/entities/identity.js +998 -0
- package/dist/entities/identity.js.map +1 -0
- package/dist/entities/index.d.ts +410 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +283 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/infrastructure.d.ts +98 -0
- package/dist/entities/infrastructure.d.ts.map +1 -0
- package/dist/entities/infrastructure.js +1154 -0
- package/dist/entities/infrastructure.js.map +1 -0
- package/dist/entities/knowledge.d.ts +98 -0
- package/dist/entities/knowledge.d.ts.map +1 -0
- package/dist/entities/knowledge.js +1439 -0
- package/dist/entities/knowledge.js.map +1 -0
- package/dist/entities/marketing.d.ts +82 -0
- package/dist/entities/marketing.d.ts.map +1 -0
- package/dist/entities/marketing.js +1611 -0
- package/dist/entities/marketing.js.map +1 -0
- package/dist/entities/media.d.ts +83 -0
- package/dist/entities/media.d.ts.map +1 -0
- package/dist/entities/media.js +1635 -0
- package/dist/entities/media.js.map +1 -0
- package/dist/entities/notification.d.ts +76 -0
- package/dist/entities/notification.d.ts.map +1 -0
- package/dist/entities/notification.js +1200 -0
- package/dist/entities/notification.js.map +1 -0
- package/dist/entities/presentation.d.ts +61 -0
- package/dist/entities/presentation.d.ts.map +1 -0
- package/dist/entities/presentation.js +1275 -0
- package/dist/entities/presentation.js.map +1 -0
- package/dist/entities/productivity.d.ts +92 -0
- package/dist/entities/productivity.d.ts.map +1 -0
- package/dist/entities/productivity.js +1318 -0
- package/dist/entities/productivity.js.map +1 -0
- package/dist/entities/project-management.d.ts +89 -0
- package/dist/entities/project-management.d.ts.map +1 -0
- package/dist/entities/project-management.js +1137 -0
- package/dist/entities/project-management.js.map +1 -0
- package/dist/entities/recruiting.d.ts +54 -0
- package/dist/entities/recruiting.d.ts.map +1 -0
- package/dist/entities/recruiting.js +737 -0
- package/dist/entities/recruiting.js.map +1 -0
- package/dist/entities/shipping.d.ts +52 -0
- package/dist/entities/shipping.d.ts.map +1 -0
- package/dist/entities/shipping.js +510 -0
- package/dist/entities/shipping.js.map +1 -0
- package/dist/entities/signature.d.ts +83 -0
- package/dist/entities/signature.d.ts.map +1 -0
- package/dist/entities/signature.js +1103 -0
- package/dist/entities/signature.js.map +1 -0
- package/dist/entities/site.d.ts +33 -0
- package/dist/entities/site.d.ts.map +1 -0
- package/dist/entities/site.js +223 -0
- package/dist/entities/site.js.map +1 -0
- package/dist/entities/spreadsheet.d.ts +68 -0
- package/dist/entities/spreadsheet.d.ts.map +1 -0
- package/dist/entities/spreadsheet.js +1342 -0
- package/dist/entities/spreadsheet.js.map +1 -0
- package/dist/entities/storage.d.ts +74 -0
- package/dist/entities/storage.d.ts.map +1 -0
- package/dist/entities/storage.js +1199 -0
- package/dist/entities/storage.js.map +1 -0
- package/dist/entities/support.d.ts +83 -0
- package/dist/entities/support.d.ts.map +1 -0
- package/dist/entities/support.js +1167 -0
- package/dist/entities/support.js.map +1 -0
- package/dist/entities/video-conferencing.d.ts +129 -0
- package/dist/entities/video-conferencing.d.ts.map +1 -0
- package/dist/entities/video-conferencing.js +1751 -0
- package/dist/entities/video-conferencing.js.map +1 -0
- package/dist/entities/video.d.ts +76 -0
- package/dist/entities/video.d.ts.map +1 -0
- package/dist/entities/video.js +951 -0
- package/dist/entities/video.js.map +1 -0
- package/dist/entities.d.ts +147 -0
- package/dist/entities.d.ts.map +1 -0
- package/dist/entities.js +1664 -0
- package/dist/entities.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +75 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/analytics/index.d.ts +19 -0
- package/dist/providers/analytics/index.d.ts.map +1 -0
- package/dist/providers/analytics/index.js +18 -0
- package/dist/providers/analytics/index.js.map +1 -0
- package/dist/providers/analytics/mixpanel.d.ts +25 -0
- package/dist/providers/analytics/mixpanel.d.ts.map +1 -0
- package/dist/providers/analytics/mixpanel.js +256 -0
- package/dist/providers/analytics/mixpanel.js.map +1 -0
- package/dist/providers/calendar/cal-com.d.ts +26 -0
- package/dist/providers/calendar/cal-com.d.ts.map +1 -0
- package/dist/providers/calendar/cal-com.js +304 -0
- package/dist/providers/calendar/cal-com.js.map +1 -0
- package/dist/providers/calendar/google-calendar.d.ts +25 -0
- package/dist/providers/calendar/google-calendar.d.ts.map +1 -0
- package/dist/providers/calendar/google-calendar.js +336 -0
- package/dist/providers/calendar/google-calendar.js.map +1 -0
- package/dist/providers/calendar/index.d.ts +20 -0
- package/dist/providers/calendar/index.d.ts.map +1 -0
- package/dist/providers/calendar/index.js +21 -0
- package/dist/providers/calendar/index.js.map +1 -0
- package/dist/providers/crm/hubspot.d.ts +25 -0
- package/dist/providers/crm/hubspot.d.ts.map +1 -0
- package/dist/providers/crm/hubspot.js +567 -0
- package/dist/providers/crm/hubspot.js.map +1 -0
- package/dist/providers/crm/index.d.ts +19 -0
- package/dist/providers/crm/index.d.ts.map +1 -0
- package/dist/providers/crm/index.js +18 -0
- package/dist/providers/crm/index.js.map +1 -0
- package/dist/providers/development/github.d.ts +25 -0
- package/dist/providers/development/github.d.ts.map +1 -0
- package/dist/providers/development/github.js +473 -0
- package/dist/providers/development/github.js.map +1 -0
- package/dist/providers/development/index.d.ts +19 -0
- package/dist/providers/development/index.d.ts.map +1 -0
- package/dist/providers/development/index.js +18 -0
- package/dist/providers/development/index.js.map +1 -0
- package/dist/providers/ecommerce/index.d.ts +19 -0
- package/dist/providers/ecommerce/index.d.ts.map +1 -0
- package/dist/providers/ecommerce/index.js +18 -0
- package/dist/providers/ecommerce/index.js.map +1 -0
- package/dist/providers/ecommerce/shopify.d.ts +25 -0
- package/dist/providers/ecommerce/shopify.d.ts.map +1 -0
- package/dist/providers/ecommerce/shopify.js +379 -0
- package/dist/providers/ecommerce/shopify.js.map +1 -0
- package/dist/providers/email/index.d.ts +20 -0
- package/dist/providers/email/index.d.ts.map +1 -0
- package/dist/providers/email/index.js +21 -0
- package/dist/providers/email/index.js.map +1 -0
- package/dist/providers/email/resend.d.ts +25 -0
- package/dist/providers/email/resend.d.ts.map +1 -0
- package/dist/providers/email/resend.js +259 -0
- package/dist/providers/email/resend.js.map +1 -0
- package/dist/providers/email/sendgrid.d.ts +25 -0
- package/dist/providers/email/sendgrid.d.ts.map +1 -0
- package/dist/providers/email/sendgrid.js +162 -0
- package/dist/providers/email/sendgrid.js.map +1 -0
- package/dist/providers/finance/index.d.ts +19 -0
- package/dist/providers/finance/index.d.ts.map +1 -0
- package/dist/providers/finance/index.js +18 -0
- package/dist/providers/finance/index.js.map +1 -0
- package/dist/providers/finance/stripe.d.ts +25 -0
- package/dist/providers/finance/stripe.d.ts.map +1 -0
- package/dist/providers/finance/stripe.js +550 -0
- package/dist/providers/finance/stripe.js.map +1 -0
- package/dist/providers/forms/index.d.ts +19 -0
- package/dist/providers/forms/index.d.ts.map +1 -0
- package/dist/providers/forms/index.js +18 -0
- package/dist/providers/forms/index.js.map +1 -0
- package/dist/providers/forms/typeform.d.ts +25 -0
- package/dist/providers/forms/typeform.d.ts.map +1 -0
- package/dist/providers/forms/typeform.js +501 -0
- package/dist/providers/forms/typeform.js.map +1 -0
- package/dist/providers/index.d.ts +56 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +124 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/knowledge/index.d.ts +19 -0
- package/dist/providers/knowledge/index.d.ts.map +1 -0
- package/dist/providers/knowledge/index.js +18 -0
- package/dist/providers/knowledge/index.js.map +1 -0
- package/dist/providers/knowledge/notion.d.ts +25 -0
- package/dist/providers/knowledge/notion.d.ts.map +1 -0
- package/dist/providers/knowledge/notion.js +390 -0
- package/dist/providers/knowledge/notion.js.map +1 -0
- package/dist/providers/marketing/index.d.ts +19 -0
- package/dist/providers/marketing/index.d.ts.map +1 -0
- package/dist/providers/marketing/index.js +18 -0
- package/dist/providers/marketing/index.js.map +1 -0
- package/dist/providers/marketing/mailchimp.d.ts +25 -0
- package/dist/providers/marketing/mailchimp.d.ts.map +1 -0
- package/dist/providers/marketing/mailchimp.js +444 -0
- package/dist/providers/marketing/mailchimp.js.map +1 -0
- package/dist/providers/media/cloudinary.d.ts +25 -0
- package/dist/providers/media/cloudinary.d.ts.map +1 -0
- package/dist/providers/media/cloudinary.js +319 -0
- package/dist/providers/media/cloudinary.js.map +1 -0
- package/dist/providers/media/index.d.ts +19 -0
- package/dist/providers/media/index.d.ts.map +1 -0
- package/dist/providers/media/index.js +18 -0
- package/dist/providers/media/index.js.map +1 -0
- package/dist/providers/messaging/index.d.ts +24 -0
- package/dist/providers/messaging/index.d.ts.map +1 -0
- package/dist/providers/messaging/index.js +21 -0
- package/dist/providers/messaging/index.js.map +1 -0
- package/dist/providers/messaging/slack.d.ts +25 -0
- package/dist/providers/messaging/slack.d.ts.map +1 -0
- package/dist/providers/messaging/slack.js +394 -0
- package/dist/providers/messaging/slack.js.map +1 -0
- package/dist/providers/messaging/twilio-sms.d.ts +25 -0
- package/dist/providers/messaging/twilio-sms.d.ts.map +1 -0
- package/dist/providers/messaging/twilio-sms.js +250 -0
- package/dist/providers/messaging/twilio-sms.js.map +1 -0
- package/dist/providers/project-management/index.d.ts +19 -0
- package/dist/providers/project-management/index.d.ts.map +1 -0
- package/dist/providers/project-management/index.js +18 -0
- package/dist/providers/project-management/index.js.map +1 -0
- package/dist/providers/project-management/linear.d.ts +25 -0
- package/dist/providers/project-management/linear.d.ts.map +1 -0
- package/dist/providers/project-management/linear.js +576 -0
- package/dist/providers/project-management/linear.js.map +1 -0
- package/dist/providers/registry.d.ts +41 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +87 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/spreadsheet/google-sheets.d.ts +25 -0
- package/dist/providers/spreadsheet/google-sheets.d.ts.map +1 -0
- package/dist/providers/spreadsheet/google-sheets.js +376 -0
- package/dist/providers/spreadsheet/google-sheets.js.map +1 -0
- package/dist/providers/spreadsheet/index.d.ts +20 -0
- package/dist/providers/spreadsheet/index.d.ts.map +1 -0
- package/dist/providers/spreadsheet/index.js +21 -0
- package/dist/providers/spreadsheet/index.js.map +1 -0
- package/dist/providers/spreadsheet/xlsx.d.ts +26 -0
- package/dist/providers/spreadsheet/xlsx.d.ts.map +1 -0
- package/dist/providers/spreadsheet/xlsx.js +424 -0
- package/dist/providers/spreadsheet/xlsx.js.map +1 -0
- package/dist/providers/storage/index.d.ts +30 -0
- package/dist/providers/storage/index.d.ts.map +1 -0
- package/dist/providers/storage/index.js +25 -0
- package/dist/providers/storage/index.js.map +1 -0
- package/dist/providers/storage/s3.d.ts +25 -0
- package/dist/providers/storage/s3.d.ts.map +1 -0
- package/dist/providers/storage/s3.js +420 -0
- package/dist/providers/storage/s3.js.map +1 -0
- package/dist/providers/support/index.d.ts +19 -0
- package/dist/providers/support/index.d.ts.map +1 -0
- package/dist/providers/support/index.js +18 -0
- package/dist/providers/support/index.js.map +1 -0
- package/dist/providers/support/zendesk.d.ts +25 -0
- package/dist/providers/support/zendesk.d.ts.map +1 -0
- package/dist/providers/support/zendesk.js +374 -0
- package/dist/providers/support/zendesk.js.map +1 -0
- package/dist/providers/tasks/index.d.ts +19 -0
- package/dist/providers/tasks/index.d.ts.map +1 -0
- package/dist/providers/tasks/index.js +18 -0
- package/dist/providers/tasks/index.js.map +1 -0
- package/dist/providers/tasks/todoist.d.ts +25 -0
- package/dist/providers/tasks/todoist.d.ts.map +1 -0
- package/dist/providers/tasks/todoist.js +287 -0
- package/dist/providers/tasks/todoist.js.map +1 -0
- package/dist/providers/types.d.ts +1753 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +10 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/providers/video-conferencing/google-meet.d.ts +26 -0
- package/dist/providers/video-conferencing/google-meet.d.ts.map +1 -0
- package/dist/providers/video-conferencing/google-meet.js +287 -0
- package/dist/providers/video-conferencing/google-meet.js.map +1 -0
- package/dist/providers/video-conferencing/index.d.ts +22 -0
- package/dist/providers/video-conferencing/index.d.ts.map +1 -0
- package/dist/providers/video-conferencing/index.js +32 -0
- package/dist/providers/video-conferencing/index.js.map +1 -0
- package/dist/providers/video-conferencing/jitsi.d.ts +26 -0
- package/dist/providers/video-conferencing/jitsi.d.ts.map +1 -0
- package/dist/providers/video-conferencing/jitsi.js +255 -0
- package/dist/providers/video-conferencing/jitsi.js.map +1 -0
- package/dist/providers/video-conferencing/teams.d.ts +26 -0
- package/dist/providers/video-conferencing/teams.d.ts.map +1 -0
- package/dist/providers/video-conferencing/teams.js +271 -0
- package/dist/providers/video-conferencing/teams.js.map +1 -0
- package/dist/providers/video-conferencing/zoom.d.ts +25 -0
- package/dist/providers/video-conferencing/zoom.d.ts.map +1 -0
- package/dist/providers/video-conferencing/zoom.js +333 -0
- package/dist/providers/video-conferencing/zoom.js.map +1 -0
- package/dist/providers/voice/vapi.d.ts +27 -0
- package/dist/providers/voice/vapi.d.ts.map +1 -0
- package/dist/providers/voice/vapi.js +440 -0
- package/dist/providers/voice/vapi.js.map +1 -0
- package/dist/registry.d.ts +38 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +129 -0
- package/dist/registry.js.map +1 -0
- package/dist/tools/communication.d.ts +94 -0
- package/dist/tools/communication.d.ts.map +1 -0
- package/dist/tools/communication.js +185 -0
- package/dist/tools/communication.js.map +1 -0
- package/dist/tools/data.d.ts +61 -0
- package/dist/tools/data.d.ts.map +1 -0
- package/dist/tools/data.js +206 -0
- package/dist/tools/data.js.map +1 -0
- package/dist/tools/index.d.ts +12 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +12 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/web.d.ts +45 -0
- package/dist/tools/web.d.ts.map +1 -0
- package/dist/tools/web.js +138 -0
- package/dist/tools/web.js.map +1 -0
- package/dist/types.d.ts +330 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/package.json +45 -0
- package/src/define.ts +321 -0
- package/src/entities/advertising.ts +1086 -0
- package/src/entities/ai.ts +835 -0
- package/src/entities/analytics.ts +1690 -0
- package/src/entities/automation.ts +669 -0
- package/src/entities/communication.ts +1255 -0
- package/src/entities/crm.ts +1481 -0
- package/src/entities/design.ts +606 -0
- package/src/entities/development.ts +2392 -0
- package/src/entities/document.ts +930 -0
- package/src/entities/ecommerce.ts +1539 -0
- package/src/entities/experiment.ts +1139 -0
- package/src/entities/finance.ts +3907 -0
- package/src/entities/forms.ts +2021 -0
- package/src/entities/hr.ts +725 -0
- package/src/entities/identity.ts +1093 -0
- package/src/entities/index.ts +731 -0
- package/src/entities/infrastructure.ts +1254 -0
- package/src/entities/knowledge.ts +1547 -0
- package/src/entities/marketing.ts +1718 -0
- package/src/entities/media.ts +1747 -0
- package/src/entities/notification.ts +1260 -0
- package/src/entities/presentation.ts +1360 -0
- package/src/entities/productivity.ts +1411 -0
- package/src/entities/project-management.ts +1222 -0
- package/src/entities/recruiting.ts +797 -0
- package/src/entities/shipping.ts +566 -0
- package/src/entities/signature.ts +1204 -0
- package/src/entities/site.ts +244 -0
- package/src/entities/spreadsheet.ts +1434 -0
- package/src/entities/storage.ts +1290 -0
- package/src/entities/support.ts +1267 -0
- package/src/entities/video-conferencing.ts +1874 -0
- package/src/entities/video.ts +1035 -0
- package/src/entities.ts +1795 -0
- package/src/index.ts +176 -0
- package/src/providers/analytics/index.ts +21 -0
- package/src/providers/analytics/mixpanel.ts +311 -0
- package/src/providers/calendar/cal-com.ts +435 -0
- package/src/providers/calendar/google-calendar.ts +412 -0
- package/src/providers/calendar/index.ts +24 -0
- package/src/providers/crm/hubspot.ts +667 -0
- package/src/providers/crm/index.ts +21 -0
- package/src/providers/development/github.ts +608 -0
- package/src/providers/development/index.ts +21 -0
- package/src/providers/ecommerce/index.ts +21 -0
- package/src/providers/ecommerce/shopify.ts +451 -0
- package/src/providers/email/index.ts +24 -0
- package/src/providers/email/resend.ts +301 -0
- package/src/providers/email/sendgrid.ts +196 -0
- package/src/providers/finance/index.ts +21 -0
- package/src/providers/finance/stripe.ts +665 -0
- package/src/providers/forms/index.ts +21 -0
- package/src/providers/forms/typeform.ts +598 -0
- package/src/providers/index.ts +281 -0
- package/src/providers/knowledge/index.ts +21 -0
- package/src/providers/knowledge/notion.ts +497 -0
- package/src/providers/marketing/index.ts +21 -0
- package/src/providers/marketing/mailchimp.ts +656 -0
- package/src/providers/media/cloudinary.ts +373 -0
- package/src/providers/media/index.ts +21 -0
- package/src/providers/messaging/index.ts +24 -0
- package/src/providers/messaging/slack.ts +487 -0
- package/src/providers/messaging/twilio-sms.ts +301 -0
- package/src/providers/project-management/index.ts +21 -0
- package/src/providers/project-management/linear.ts +693 -0
- package/src/providers/registry.ts +119 -0
- package/src/providers/spreadsheet/google-sheets.ts +464 -0
- package/src/providers/spreadsheet/index.ts +24 -0
- package/src/providers/spreadsheet/xlsx.ts +542 -0
- package/src/providers/storage/index.ts +35 -0
- package/src/providers/storage/s3.ts +513 -0
- package/src/providers/support/index.ts +21 -0
- package/src/providers/support/zendesk.ts +417 -0
- package/src/providers/tasks/index.ts +21 -0
- package/src/providers/tasks/todoist.ts +407 -0
- package/src/providers/types.ts +2113 -0
- package/src/providers/video-conferencing/google-meet.ts +412 -0
- package/src/providers/video-conferencing/index.ts +35 -0
- package/src/providers/video-conferencing/jitsi.ts +324 -0
- package/src/providers/video-conferencing/teams.ts +408 -0
- package/src/providers/video-conferencing/zoom.ts +451 -0
- package/src/registry.ts +172 -0
- package/src/tools/communication.ts +256 -0
- package/src/tools/data.ts +236 -0
- package/src/tools/index.ts +12 -0
- package/src/tools/web.ts +161 -0
- package/src/types.ts +539 -0
- package/test/define.test.ts +367 -0
- package/test/registry.test.ts +444 -0
- package/test/tools.test.ts +453 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,1167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Support/Helpdesk Entity Types (Nouns)
|
|
3
|
+
*
|
|
4
|
+
* Semantic type definitions for support and helpdesk tools that can be used by
|
|
5
|
+
* both remote human workers AND AI agents. Each entity defines:
|
|
6
|
+
* - Properties: The data fields
|
|
7
|
+
* - Actions: Operations that can be performed (Verbs)
|
|
8
|
+
* - Events: State changes that occur
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// Support Ticket
|
|
14
|
+
// =============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Support ticket entity
|
|
17
|
+
*
|
|
18
|
+
* Represents a customer support request or issue that needs resolution
|
|
19
|
+
*/
|
|
20
|
+
export const SupportTicket = {
|
|
21
|
+
singular: 'support ticket',
|
|
22
|
+
plural: 'support tickets',
|
|
23
|
+
description: 'A customer support request or issue requiring assistance',
|
|
24
|
+
properties: {
|
|
25
|
+
// Identity
|
|
26
|
+
ticketNumber: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
description: 'Unique ticket identifier or number',
|
|
29
|
+
},
|
|
30
|
+
// Content
|
|
31
|
+
subject: {
|
|
32
|
+
type: 'string',
|
|
33
|
+
description: 'Brief subject or title of the issue',
|
|
34
|
+
},
|
|
35
|
+
description: {
|
|
36
|
+
type: 'string',
|
|
37
|
+
description: 'Detailed description of the issue or request',
|
|
38
|
+
},
|
|
39
|
+
// Classification
|
|
40
|
+
type: {
|
|
41
|
+
type: 'string',
|
|
42
|
+
optional: true,
|
|
43
|
+
description: 'Ticket type: question, problem, incident, task, feature-request',
|
|
44
|
+
examples: ['question', 'problem', 'incident', 'task', 'feature-request'],
|
|
45
|
+
},
|
|
46
|
+
category: {
|
|
47
|
+
type: 'string',
|
|
48
|
+
optional: true,
|
|
49
|
+
description: 'Category or department: technical, billing, general, etc.',
|
|
50
|
+
},
|
|
51
|
+
tags: {
|
|
52
|
+
type: 'string',
|
|
53
|
+
array: true,
|
|
54
|
+
optional: true,
|
|
55
|
+
description: 'Tags for categorization and filtering',
|
|
56
|
+
},
|
|
57
|
+
// Priority & Status
|
|
58
|
+
priority: {
|
|
59
|
+
type: 'string',
|
|
60
|
+
description: 'Ticket priority: low, normal, high, urgent, critical',
|
|
61
|
+
examples: ['low', 'normal', 'high', 'urgent', 'critical'],
|
|
62
|
+
},
|
|
63
|
+
status: {
|
|
64
|
+
type: 'string',
|
|
65
|
+
description: 'Ticket status: new, open, pending, on-hold, solved, closed',
|
|
66
|
+
examples: ['new', 'open', 'pending', 'on-hold', 'solved', 'closed'],
|
|
67
|
+
},
|
|
68
|
+
// Assignment
|
|
69
|
+
assigneeId: {
|
|
70
|
+
type: 'string',
|
|
71
|
+
optional: true,
|
|
72
|
+
description: 'ID of the agent assigned to this ticket',
|
|
73
|
+
},
|
|
74
|
+
groupId: {
|
|
75
|
+
type: 'string',
|
|
76
|
+
optional: true,
|
|
77
|
+
description: 'ID of the team/group assigned to this ticket',
|
|
78
|
+
},
|
|
79
|
+
// Customer
|
|
80
|
+
requesterId: {
|
|
81
|
+
type: 'string',
|
|
82
|
+
description: 'ID of the customer who created the ticket',
|
|
83
|
+
},
|
|
84
|
+
requesterEmail: {
|
|
85
|
+
type: 'string',
|
|
86
|
+
description: 'Email address of the requester',
|
|
87
|
+
},
|
|
88
|
+
requesterName: {
|
|
89
|
+
type: 'string',
|
|
90
|
+
optional: true,
|
|
91
|
+
description: 'Name of the requester',
|
|
92
|
+
},
|
|
93
|
+
// Channel
|
|
94
|
+
channel: {
|
|
95
|
+
type: 'string',
|
|
96
|
+
optional: true,
|
|
97
|
+
description: 'How the ticket was created: email, web, chat, phone, api',
|
|
98
|
+
examples: ['email', 'web', 'chat', 'phone', 'api'],
|
|
99
|
+
},
|
|
100
|
+
// Timing
|
|
101
|
+
dueAt: {
|
|
102
|
+
type: 'datetime',
|
|
103
|
+
optional: true,
|
|
104
|
+
description: 'Due date/time for resolution',
|
|
105
|
+
},
|
|
106
|
+
firstResponseAt: {
|
|
107
|
+
type: 'datetime',
|
|
108
|
+
optional: true,
|
|
109
|
+
description: 'When the first response was sent',
|
|
110
|
+
},
|
|
111
|
+
resolvedAt: {
|
|
112
|
+
type: 'datetime',
|
|
113
|
+
optional: true,
|
|
114
|
+
description: 'When the ticket was resolved',
|
|
115
|
+
},
|
|
116
|
+
closedAt: {
|
|
117
|
+
type: 'datetime',
|
|
118
|
+
optional: true,
|
|
119
|
+
description: 'When the ticket was closed',
|
|
120
|
+
},
|
|
121
|
+
// Metrics
|
|
122
|
+
responseTime: {
|
|
123
|
+
type: 'number',
|
|
124
|
+
optional: true,
|
|
125
|
+
description: 'Time to first response in minutes',
|
|
126
|
+
},
|
|
127
|
+
resolutionTime: {
|
|
128
|
+
type: 'number',
|
|
129
|
+
optional: true,
|
|
130
|
+
description: 'Time to resolution in minutes',
|
|
131
|
+
},
|
|
132
|
+
// Additional
|
|
133
|
+
customFields: {
|
|
134
|
+
type: 'json',
|
|
135
|
+
optional: true,
|
|
136
|
+
description: 'Custom field values specific to organization',
|
|
137
|
+
},
|
|
138
|
+
isPublic: {
|
|
139
|
+
type: 'boolean',
|
|
140
|
+
optional: true,
|
|
141
|
+
description: 'Whether the ticket is publicly visible',
|
|
142
|
+
},
|
|
143
|
+
satisfaction: {
|
|
144
|
+
type: 'string',
|
|
145
|
+
optional: true,
|
|
146
|
+
description: 'Customer satisfaction rating: good, bad',
|
|
147
|
+
examples: ['good', 'bad'],
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
relationships: {
|
|
151
|
+
requester: {
|
|
152
|
+
type: 'Contact',
|
|
153
|
+
description: 'The customer who submitted the ticket',
|
|
154
|
+
},
|
|
155
|
+
assignee: {
|
|
156
|
+
type: 'Contact',
|
|
157
|
+
required: false,
|
|
158
|
+
description: 'The support agent assigned to the ticket',
|
|
159
|
+
},
|
|
160
|
+
comments: {
|
|
161
|
+
type: 'TicketComment[]',
|
|
162
|
+
backref: 'ticket',
|
|
163
|
+
description: 'Comments and replies on this ticket',
|
|
164
|
+
},
|
|
165
|
+
attachments: {
|
|
166
|
+
type: 'Attachment[]',
|
|
167
|
+
description: 'Files attached to the ticket',
|
|
168
|
+
},
|
|
169
|
+
relatedTickets: {
|
|
170
|
+
type: 'SupportTicket[]',
|
|
171
|
+
description: 'Related or linked tickets',
|
|
172
|
+
},
|
|
173
|
+
satisfactionRating: {
|
|
174
|
+
type: 'SatisfactionRating',
|
|
175
|
+
required: false,
|
|
176
|
+
backref: 'ticket',
|
|
177
|
+
description: 'Customer satisfaction rating for this ticket',
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
actions: [
|
|
181
|
+
'create',
|
|
182
|
+
'update',
|
|
183
|
+
'assign',
|
|
184
|
+
'reassign',
|
|
185
|
+
'escalate',
|
|
186
|
+
'merge',
|
|
187
|
+
'split',
|
|
188
|
+
'reply',
|
|
189
|
+
'addComment',
|
|
190
|
+
'addAttachment',
|
|
191
|
+
'setPriority',
|
|
192
|
+
'setStatus',
|
|
193
|
+
'addTags',
|
|
194
|
+
'removeTags',
|
|
195
|
+
'markSpam',
|
|
196
|
+
'delete',
|
|
197
|
+
'close',
|
|
198
|
+
'reopen',
|
|
199
|
+
'requestFeedback',
|
|
200
|
+
],
|
|
201
|
+
events: [
|
|
202
|
+
'created',
|
|
203
|
+
'updated',
|
|
204
|
+
'assigned',
|
|
205
|
+
'reassigned',
|
|
206
|
+
'escalated',
|
|
207
|
+
'merged',
|
|
208
|
+
'split',
|
|
209
|
+
'replied',
|
|
210
|
+
'commented',
|
|
211
|
+
'priorityChanged',
|
|
212
|
+
'statusChanged',
|
|
213
|
+
'tagged',
|
|
214
|
+
'markedSpam',
|
|
215
|
+
'deleted',
|
|
216
|
+
'closed',
|
|
217
|
+
'reopened',
|
|
218
|
+
'rated',
|
|
219
|
+
'solved',
|
|
220
|
+
],
|
|
221
|
+
};
|
|
222
|
+
/**
|
|
223
|
+
* Ticket comment entity
|
|
224
|
+
*
|
|
225
|
+
* Represents a comment or reply on a support ticket
|
|
226
|
+
*/
|
|
227
|
+
export const TicketComment = {
|
|
228
|
+
singular: 'ticket comment',
|
|
229
|
+
plural: 'ticket comments',
|
|
230
|
+
description: 'A comment or reply on a support ticket',
|
|
231
|
+
properties: {
|
|
232
|
+
// Content
|
|
233
|
+
body: {
|
|
234
|
+
type: 'string',
|
|
235
|
+
description: 'Comment text content',
|
|
236
|
+
},
|
|
237
|
+
html: {
|
|
238
|
+
type: 'string',
|
|
239
|
+
optional: true,
|
|
240
|
+
description: 'HTML formatted content',
|
|
241
|
+
},
|
|
242
|
+
plainText: {
|
|
243
|
+
type: 'string',
|
|
244
|
+
optional: true,
|
|
245
|
+
description: 'Plain text version of the comment',
|
|
246
|
+
},
|
|
247
|
+
// Visibility
|
|
248
|
+
isPublic: {
|
|
249
|
+
type: 'boolean',
|
|
250
|
+
description: 'Whether the comment is visible to the customer (vs internal note)',
|
|
251
|
+
},
|
|
252
|
+
// Author
|
|
253
|
+
authorId: {
|
|
254
|
+
type: 'string',
|
|
255
|
+
description: 'ID of the person who wrote the comment',
|
|
256
|
+
},
|
|
257
|
+
authorType: {
|
|
258
|
+
type: 'string',
|
|
259
|
+
description: 'Type of author: agent, customer, system',
|
|
260
|
+
examples: ['agent', 'customer', 'system'],
|
|
261
|
+
},
|
|
262
|
+
// Channel
|
|
263
|
+
channel: {
|
|
264
|
+
type: 'string',
|
|
265
|
+
optional: true,
|
|
266
|
+
description: 'How the comment was created: web, email, chat, api',
|
|
267
|
+
examples: ['web', 'email', 'chat', 'api'],
|
|
268
|
+
},
|
|
269
|
+
// Email specific
|
|
270
|
+
from: {
|
|
271
|
+
type: 'string',
|
|
272
|
+
optional: true,
|
|
273
|
+
description: 'Sender email address if from email',
|
|
274
|
+
},
|
|
275
|
+
to: {
|
|
276
|
+
type: 'string',
|
|
277
|
+
array: true,
|
|
278
|
+
optional: true,
|
|
279
|
+
description: 'Recipient email addresses if via email',
|
|
280
|
+
},
|
|
281
|
+
cc: {
|
|
282
|
+
type: 'string',
|
|
283
|
+
array: true,
|
|
284
|
+
optional: true,
|
|
285
|
+
description: 'CC email addresses',
|
|
286
|
+
},
|
|
287
|
+
// Metadata
|
|
288
|
+
edited: {
|
|
289
|
+
type: 'boolean',
|
|
290
|
+
optional: true,
|
|
291
|
+
description: 'Whether the comment was edited',
|
|
292
|
+
},
|
|
293
|
+
editedAt: {
|
|
294
|
+
type: 'datetime',
|
|
295
|
+
optional: true,
|
|
296
|
+
description: 'When the comment was last edited',
|
|
297
|
+
},
|
|
298
|
+
},
|
|
299
|
+
relationships: {
|
|
300
|
+
ticket: {
|
|
301
|
+
type: 'SupportTicket',
|
|
302
|
+
backref: 'comments',
|
|
303
|
+
description: 'The ticket this comment belongs to',
|
|
304
|
+
},
|
|
305
|
+
author: {
|
|
306
|
+
type: 'Contact',
|
|
307
|
+
description: 'Who wrote the comment',
|
|
308
|
+
},
|
|
309
|
+
attachments: {
|
|
310
|
+
type: 'Attachment[]',
|
|
311
|
+
description: 'Files attached to this comment',
|
|
312
|
+
},
|
|
313
|
+
},
|
|
314
|
+
actions: [
|
|
315
|
+
'create',
|
|
316
|
+
'edit',
|
|
317
|
+
'delete',
|
|
318
|
+
'makePublic',
|
|
319
|
+
'makePrivate',
|
|
320
|
+
'addAttachment',
|
|
321
|
+
'removeAttachment',
|
|
322
|
+
],
|
|
323
|
+
events: [
|
|
324
|
+
'created',
|
|
325
|
+
'edited',
|
|
326
|
+
'deleted',
|
|
327
|
+
'madePublic',
|
|
328
|
+
'madePrivate',
|
|
329
|
+
'attachmentAdded',
|
|
330
|
+
'attachmentRemoved',
|
|
331
|
+
],
|
|
332
|
+
};
|
|
333
|
+
// =============================================================================
|
|
334
|
+
// Live Chat Conversation
|
|
335
|
+
// =============================================================================
|
|
336
|
+
/**
|
|
337
|
+
* Live chat conversation entity
|
|
338
|
+
*
|
|
339
|
+
* Represents a real-time chat conversation between customer and support (Intercom, Zendesk Chat style)
|
|
340
|
+
*/
|
|
341
|
+
export const Conversation = {
|
|
342
|
+
singular: 'conversation',
|
|
343
|
+
plural: 'conversations',
|
|
344
|
+
description: 'A live chat conversation between customer and support',
|
|
345
|
+
properties: {
|
|
346
|
+
// Status
|
|
347
|
+
status: {
|
|
348
|
+
type: 'string',
|
|
349
|
+
description: 'Conversation status: open, active, pending, closed, snoozed',
|
|
350
|
+
examples: ['open', 'active', 'pending', 'closed', 'snoozed'],
|
|
351
|
+
},
|
|
352
|
+
state: {
|
|
353
|
+
type: 'string',
|
|
354
|
+
optional: true,
|
|
355
|
+
description: 'Conversation state: waiting, assigned, resolved',
|
|
356
|
+
examples: ['waiting', 'assigned', 'resolved'],
|
|
357
|
+
},
|
|
358
|
+
// Participants
|
|
359
|
+
customerId: {
|
|
360
|
+
type: 'string',
|
|
361
|
+
description: 'ID of the customer in the conversation',
|
|
362
|
+
},
|
|
363
|
+
assigneeId: {
|
|
364
|
+
type: 'string',
|
|
365
|
+
optional: true,
|
|
366
|
+
description: 'ID of the assigned agent',
|
|
367
|
+
},
|
|
368
|
+
// Channel & Source
|
|
369
|
+
channel: {
|
|
370
|
+
type: 'string',
|
|
371
|
+
description: 'Channel type: web, mobile, email, facebook, twitter, etc.',
|
|
372
|
+
examples: ['web', 'mobile', 'email', 'facebook', 'twitter', 'whatsapp'],
|
|
373
|
+
},
|
|
374
|
+
source: {
|
|
375
|
+
type: 'json',
|
|
376
|
+
optional: true,
|
|
377
|
+
description: 'Source information (URL, device, etc.)',
|
|
378
|
+
},
|
|
379
|
+
// Classification
|
|
380
|
+
tags: {
|
|
381
|
+
type: 'string',
|
|
382
|
+
array: true,
|
|
383
|
+
optional: true,
|
|
384
|
+
description: 'Tags for categorization',
|
|
385
|
+
},
|
|
386
|
+
priority: {
|
|
387
|
+
type: 'number',
|
|
388
|
+
optional: true,
|
|
389
|
+
description: 'Priority score or level',
|
|
390
|
+
},
|
|
391
|
+
// Metrics
|
|
392
|
+
messageCount: {
|
|
393
|
+
type: 'number',
|
|
394
|
+
optional: true,
|
|
395
|
+
description: 'Total number of messages',
|
|
396
|
+
},
|
|
397
|
+
responseTime: {
|
|
398
|
+
type: 'number',
|
|
399
|
+
optional: true,
|
|
400
|
+
description: 'Average response time in seconds',
|
|
401
|
+
},
|
|
402
|
+
waitingTime: {
|
|
403
|
+
type: 'number',
|
|
404
|
+
optional: true,
|
|
405
|
+
description: 'Total time customer waited in seconds',
|
|
406
|
+
},
|
|
407
|
+
// Timing
|
|
408
|
+
startedAt: {
|
|
409
|
+
type: 'datetime',
|
|
410
|
+
description: 'When the conversation started',
|
|
411
|
+
},
|
|
412
|
+
lastMessageAt: {
|
|
413
|
+
type: 'datetime',
|
|
414
|
+
optional: true,
|
|
415
|
+
description: 'When the last message was sent',
|
|
416
|
+
},
|
|
417
|
+
closedAt: {
|
|
418
|
+
type: 'datetime',
|
|
419
|
+
optional: true,
|
|
420
|
+
description: 'When the conversation was closed',
|
|
421
|
+
},
|
|
422
|
+
snoozedUntil: {
|
|
423
|
+
type: 'datetime',
|
|
424
|
+
optional: true,
|
|
425
|
+
description: 'When a snoozed conversation should reopen',
|
|
426
|
+
},
|
|
427
|
+
// Customer context
|
|
428
|
+
customerContext: {
|
|
429
|
+
type: 'json',
|
|
430
|
+
optional: true,
|
|
431
|
+
description: 'Customer context data (location, device, page visited, etc.)',
|
|
432
|
+
},
|
|
433
|
+
// Rating
|
|
434
|
+
rated: {
|
|
435
|
+
type: 'boolean',
|
|
436
|
+
optional: true,
|
|
437
|
+
description: 'Whether the customer rated the conversation',
|
|
438
|
+
},
|
|
439
|
+
},
|
|
440
|
+
relationships: {
|
|
441
|
+
customer: {
|
|
442
|
+
type: 'Contact',
|
|
443
|
+
description: 'The customer in the conversation',
|
|
444
|
+
},
|
|
445
|
+
assignee: {
|
|
446
|
+
type: 'Contact',
|
|
447
|
+
required: false,
|
|
448
|
+
description: 'The assigned support agent',
|
|
449
|
+
},
|
|
450
|
+
messages: {
|
|
451
|
+
type: 'ConversationMessage[]',
|
|
452
|
+
backref: 'conversation',
|
|
453
|
+
description: 'Messages in this conversation',
|
|
454
|
+
},
|
|
455
|
+
ticket: {
|
|
456
|
+
type: 'SupportTicket',
|
|
457
|
+
required: false,
|
|
458
|
+
description: 'Support ticket created from this conversation',
|
|
459
|
+
},
|
|
460
|
+
satisfactionRating: {
|
|
461
|
+
type: 'SatisfactionRating',
|
|
462
|
+
required: false,
|
|
463
|
+
backref: 'conversation',
|
|
464
|
+
description: 'Customer satisfaction rating for this conversation',
|
|
465
|
+
},
|
|
466
|
+
},
|
|
467
|
+
actions: [
|
|
468
|
+
'start',
|
|
469
|
+
'reply',
|
|
470
|
+
'assign',
|
|
471
|
+
'reassign',
|
|
472
|
+
'transfer',
|
|
473
|
+
'close',
|
|
474
|
+
'reopen',
|
|
475
|
+
'snooze',
|
|
476
|
+
'unsnooze',
|
|
477
|
+
'addTags',
|
|
478
|
+
'removeTags',
|
|
479
|
+
'addNote',
|
|
480
|
+
'markSpam',
|
|
481
|
+
'createTicket',
|
|
482
|
+
'requestRating',
|
|
483
|
+
],
|
|
484
|
+
events: [
|
|
485
|
+
'started',
|
|
486
|
+
'messageSent',
|
|
487
|
+
'messageReceived',
|
|
488
|
+
'assigned',
|
|
489
|
+
'reassigned',
|
|
490
|
+
'transferred',
|
|
491
|
+
'closed',
|
|
492
|
+
'reopened',
|
|
493
|
+
'snoozed',
|
|
494
|
+
'unsnoozed',
|
|
495
|
+
'tagged',
|
|
496
|
+
'noteAdded',
|
|
497
|
+
'markedSpam',
|
|
498
|
+
'ticketCreated',
|
|
499
|
+
'rated',
|
|
500
|
+
],
|
|
501
|
+
};
|
|
502
|
+
/**
|
|
503
|
+
* Conversation message entity
|
|
504
|
+
*
|
|
505
|
+
* Represents a single message in a live chat conversation
|
|
506
|
+
*/
|
|
507
|
+
export const ConversationMessage = {
|
|
508
|
+
singular: 'conversation message',
|
|
509
|
+
plural: 'conversation messages',
|
|
510
|
+
description: 'A single message in a live chat conversation',
|
|
511
|
+
properties: {
|
|
512
|
+
// Content
|
|
513
|
+
body: {
|
|
514
|
+
type: 'string',
|
|
515
|
+
description: 'Message text content',
|
|
516
|
+
},
|
|
517
|
+
html: {
|
|
518
|
+
type: 'string',
|
|
519
|
+
optional: true,
|
|
520
|
+
description: 'HTML formatted content',
|
|
521
|
+
},
|
|
522
|
+
// Type
|
|
523
|
+
messageType: {
|
|
524
|
+
type: 'string',
|
|
525
|
+
description: 'Message type: text, note, assignment, system',
|
|
526
|
+
examples: ['text', 'note', 'assignment', 'system'],
|
|
527
|
+
},
|
|
528
|
+
// Author
|
|
529
|
+
senderId: {
|
|
530
|
+
type: 'string',
|
|
531
|
+
description: 'ID of the person who sent the message',
|
|
532
|
+
},
|
|
533
|
+
senderType: {
|
|
534
|
+
type: 'string',
|
|
535
|
+
description: 'Type of sender: customer, agent, bot, system',
|
|
536
|
+
examples: ['customer', 'agent', 'bot', 'system'],
|
|
537
|
+
},
|
|
538
|
+
// Delivery
|
|
539
|
+
deliveredAt: {
|
|
540
|
+
type: 'datetime',
|
|
541
|
+
optional: true,
|
|
542
|
+
description: 'When the message was delivered',
|
|
543
|
+
},
|
|
544
|
+
readAt: {
|
|
545
|
+
type: 'datetime',
|
|
546
|
+
optional: true,
|
|
547
|
+
description: 'When the message was read',
|
|
548
|
+
},
|
|
549
|
+
// Metadata
|
|
550
|
+
metadata: {
|
|
551
|
+
type: 'json',
|
|
552
|
+
optional: true,
|
|
553
|
+
description: 'Additional message metadata',
|
|
554
|
+
},
|
|
555
|
+
},
|
|
556
|
+
relationships: {
|
|
557
|
+
conversation: {
|
|
558
|
+
type: 'Conversation',
|
|
559
|
+
backref: 'messages',
|
|
560
|
+
description: 'The conversation this message belongs to',
|
|
561
|
+
},
|
|
562
|
+
sender: {
|
|
563
|
+
type: 'Contact',
|
|
564
|
+
description: 'Who sent the message',
|
|
565
|
+
},
|
|
566
|
+
attachments: {
|
|
567
|
+
type: 'Attachment[]',
|
|
568
|
+
description: 'Files attached to this message',
|
|
569
|
+
},
|
|
570
|
+
},
|
|
571
|
+
actions: [
|
|
572
|
+
'send',
|
|
573
|
+
'edit',
|
|
574
|
+
'delete',
|
|
575
|
+
'markRead',
|
|
576
|
+
'addAttachment',
|
|
577
|
+
'react',
|
|
578
|
+
],
|
|
579
|
+
events: [
|
|
580
|
+
'sent',
|
|
581
|
+
'delivered',
|
|
582
|
+
'read',
|
|
583
|
+
'edited',
|
|
584
|
+
'deleted',
|
|
585
|
+
'attachmentAdded',
|
|
586
|
+
'reacted',
|
|
587
|
+
],
|
|
588
|
+
};
|
|
589
|
+
// =============================================================================
|
|
590
|
+
// Help Center / Knowledge Base
|
|
591
|
+
// =============================================================================
|
|
592
|
+
/**
|
|
593
|
+
* Help article entity
|
|
594
|
+
*
|
|
595
|
+
* Represents a help center or knowledge base article
|
|
596
|
+
*/
|
|
597
|
+
export const HelpArticle = {
|
|
598
|
+
singular: 'help article',
|
|
599
|
+
plural: 'help articles',
|
|
600
|
+
description: 'A help center or knowledge base article',
|
|
601
|
+
properties: {
|
|
602
|
+
// Content
|
|
603
|
+
title: {
|
|
604
|
+
type: 'string',
|
|
605
|
+
description: 'Article title',
|
|
606
|
+
},
|
|
607
|
+
body: {
|
|
608
|
+
type: 'markdown',
|
|
609
|
+
description: 'Article content in markdown',
|
|
610
|
+
},
|
|
611
|
+
html: {
|
|
612
|
+
type: 'string',
|
|
613
|
+
optional: true,
|
|
614
|
+
description: 'Article content in HTML',
|
|
615
|
+
},
|
|
616
|
+
description: {
|
|
617
|
+
type: 'string',
|
|
618
|
+
optional: true,
|
|
619
|
+
description: 'Brief description or excerpt',
|
|
620
|
+
},
|
|
621
|
+
// Organization
|
|
622
|
+
slug: {
|
|
623
|
+
type: 'string',
|
|
624
|
+
optional: true,
|
|
625
|
+
description: 'URL-friendly slug',
|
|
626
|
+
},
|
|
627
|
+
categoryId: {
|
|
628
|
+
type: 'string',
|
|
629
|
+
optional: true,
|
|
630
|
+
description: 'ID of the category this article belongs to',
|
|
631
|
+
},
|
|
632
|
+
position: {
|
|
633
|
+
type: 'number',
|
|
634
|
+
optional: true,
|
|
635
|
+
description: 'Display order within category',
|
|
636
|
+
},
|
|
637
|
+
// Visibility
|
|
638
|
+
status: {
|
|
639
|
+
type: 'string',
|
|
640
|
+
description: 'Article status: draft, published, archived',
|
|
641
|
+
examples: ['draft', 'published', 'archived'],
|
|
642
|
+
},
|
|
643
|
+
visibility: {
|
|
644
|
+
type: 'string',
|
|
645
|
+
optional: true,
|
|
646
|
+
description: 'Who can see: public, internal, restricted',
|
|
647
|
+
examples: ['public', 'internal', 'restricted'],
|
|
648
|
+
},
|
|
649
|
+
// Author & Attribution
|
|
650
|
+
authorId: {
|
|
651
|
+
type: 'string',
|
|
652
|
+
optional: true,
|
|
653
|
+
description: 'ID of the article author',
|
|
654
|
+
},
|
|
655
|
+
lastUpdatedBy: {
|
|
656
|
+
type: 'string',
|
|
657
|
+
optional: true,
|
|
658
|
+
description: 'ID of the last person to update the article',
|
|
659
|
+
},
|
|
660
|
+
// Engagement
|
|
661
|
+
viewCount: {
|
|
662
|
+
type: 'number',
|
|
663
|
+
optional: true,
|
|
664
|
+
description: 'Number of times article has been viewed',
|
|
665
|
+
},
|
|
666
|
+
upvoteCount: {
|
|
667
|
+
type: 'number',
|
|
668
|
+
optional: true,
|
|
669
|
+
description: 'Number of positive votes',
|
|
670
|
+
},
|
|
671
|
+
downvoteCount: {
|
|
672
|
+
type: 'number',
|
|
673
|
+
optional: true,
|
|
674
|
+
description: 'Number of negative votes',
|
|
675
|
+
},
|
|
676
|
+
helpfulCount: {
|
|
677
|
+
type: 'number',
|
|
678
|
+
optional: true,
|
|
679
|
+
description: 'Number of "helpful" votes',
|
|
680
|
+
},
|
|
681
|
+
// SEO
|
|
682
|
+
metaTitle: {
|
|
683
|
+
type: 'string',
|
|
684
|
+
optional: true,
|
|
685
|
+
description: 'SEO meta title',
|
|
686
|
+
},
|
|
687
|
+
metaDescription: {
|
|
688
|
+
type: 'string',
|
|
689
|
+
optional: true,
|
|
690
|
+
description: 'SEO meta description',
|
|
691
|
+
},
|
|
692
|
+
keywords: {
|
|
693
|
+
type: 'string',
|
|
694
|
+
array: true,
|
|
695
|
+
optional: true,
|
|
696
|
+
description: 'Keywords for search',
|
|
697
|
+
},
|
|
698
|
+
// Timing
|
|
699
|
+
publishedAt: {
|
|
700
|
+
type: 'datetime',
|
|
701
|
+
optional: true,
|
|
702
|
+
description: 'When the article was published',
|
|
703
|
+
},
|
|
704
|
+
lastUpdatedAt: {
|
|
705
|
+
type: 'datetime',
|
|
706
|
+
optional: true,
|
|
707
|
+
description: 'When the article was last updated',
|
|
708
|
+
},
|
|
709
|
+
// Localization
|
|
710
|
+
locale: {
|
|
711
|
+
type: 'string',
|
|
712
|
+
optional: true,
|
|
713
|
+
description: 'Language/locale code',
|
|
714
|
+
},
|
|
715
|
+
},
|
|
716
|
+
relationships: {
|
|
717
|
+
category: {
|
|
718
|
+
type: 'HelpCategory',
|
|
719
|
+
required: false,
|
|
720
|
+
backref: 'articles',
|
|
721
|
+
description: 'Category this article belongs to',
|
|
722
|
+
},
|
|
723
|
+
author: {
|
|
724
|
+
type: 'Contact',
|
|
725
|
+
required: false,
|
|
726
|
+
description: 'Article author',
|
|
727
|
+
},
|
|
728
|
+
relatedArticles: {
|
|
729
|
+
type: 'HelpArticle[]',
|
|
730
|
+
description: 'Related or suggested articles',
|
|
731
|
+
},
|
|
732
|
+
attachments: {
|
|
733
|
+
type: 'Attachment[]',
|
|
734
|
+
description: 'Images and files in the article',
|
|
735
|
+
},
|
|
736
|
+
},
|
|
737
|
+
actions: [
|
|
738
|
+
'create',
|
|
739
|
+
'edit',
|
|
740
|
+
'publish',
|
|
741
|
+
'unpublish',
|
|
742
|
+
'archive',
|
|
743
|
+
'delete',
|
|
744
|
+
'move',
|
|
745
|
+
'duplicate',
|
|
746
|
+
'translate',
|
|
747
|
+
'upvote',
|
|
748
|
+
'downvote',
|
|
749
|
+
'markHelpful',
|
|
750
|
+
'markNotHelpful',
|
|
751
|
+
'view',
|
|
752
|
+
'search',
|
|
753
|
+
],
|
|
754
|
+
events: [
|
|
755
|
+
'created',
|
|
756
|
+
'edited',
|
|
757
|
+
'published',
|
|
758
|
+
'unpublished',
|
|
759
|
+
'archived',
|
|
760
|
+
'deleted',
|
|
761
|
+
'moved',
|
|
762
|
+
'duplicated',
|
|
763
|
+
'translated',
|
|
764
|
+
'viewed',
|
|
765
|
+
'upvoted',
|
|
766
|
+
'downvoted',
|
|
767
|
+
'markedHelpful',
|
|
768
|
+
'markedNotHelpful',
|
|
769
|
+
],
|
|
770
|
+
};
|
|
771
|
+
/**
|
|
772
|
+
* Help category entity
|
|
773
|
+
*
|
|
774
|
+
* Represents a category for organizing help articles
|
|
775
|
+
*/
|
|
776
|
+
export const HelpCategory = {
|
|
777
|
+
singular: 'help category',
|
|
778
|
+
plural: 'help categories',
|
|
779
|
+
description: 'A category for organizing help articles',
|
|
780
|
+
properties: {
|
|
781
|
+
// Identity
|
|
782
|
+
name: {
|
|
783
|
+
type: 'string',
|
|
784
|
+
description: 'Category name',
|
|
785
|
+
},
|
|
786
|
+
description: {
|
|
787
|
+
type: 'string',
|
|
788
|
+
optional: true,
|
|
789
|
+
description: 'Category description',
|
|
790
|
+
},
|
|
791
|
+
slug: {
|
|
792
|
+
type: 'string',
|
|
793
|
+
optional: true,
|
|
794
|
+
description: 'URL-friendly slug',
|
|
795
|
+
},
|
|
796
|
+
// Organization
|
|
797
|
+
parentId: {
|
|
798
|
+
type: 'string',
|
|
799
|
+
optional: true,
|
|
800
|
+
description: 'ID of parent category for nested structure',
|
|
801
|
+
},
|
|
802
|
+
position: {
|
|
803
|
+
type: 'number',
|
|
804
|
+
optional: true,
|
|
805
|
+
description: 'Display order',
|
|
806
|
+
},
|
|
807
|
+
// Display
|
|
808
|
+
icon: {
|
|
809
|
+
type: 'string',
|
|
810
|
+
optional: true,
|
|
811
|
+
description: 'Icon name or emoji',
|
|
812
|
+
},
|
|
813
|
+
color: {
|
|
814
|
+
type: 'string',
|
|
815
|
+
optional: true,
|
|
816
|
+
description: 'Display color (hex code)',
|
|
817
|
+
},
|
|
818
|
+
// Visibility
|
|
819
|
+
visibility: {
|
|
820
|
+
type: 'string',
|
|
821
|
+
optional: true,
|
|
822
|
+
description: 'Who can see: public, internal, restricted',
|
|
823
|
+
examples: ['public', 'internal', 'restricted'],
|
|
824
|
+
},
|
|
825
|
+
// Metrics
|
|
826
|
+
articleCount: {
|
|
827
|
+
type: 'number',
|
|
828
|
+
optional: true,
|
|
829
|
+
description: 'Number of articles in this category',
|
|
830
|
+
},
|
|
831
|
+
// Localization
|
|
832
|
+
locale: {
|
|
833
|
+
type: 'string',
|
|
834
|
+
optional: true,
|
|
835
|
+
description: 'Language/locale code',
|
|
836
|
+
},
|
|
837
|
+
},
|
|
838
|
+
relationships: {
|
|
839
|
+
parent: {
|
|
840
|
+
type: 'HelpCategory',
|
|
841
|
+
required: false,
|
|
842
|
+
description: 'Parent category for nested structure',
|
|
843
|
+
},
|
|
844
|
+
subcategories: {
|
|
845
|
+
type: 'HelpCategory[]',
|
|
846
|
+
description: 'Child categories',
|
|
847
|
+
},
|
|
848
|
+
articles: {
|
|
849
|
+
type: 'HelpArticle[]',
|
|
850
|
+
backref: 'category',
|
|
851
|
+
description: 'Articles in this category',
|
|
852
|
+
},
|
|
853
|
+
},
|
|
854
|
+
actions: [
|
|
855
|
+
'create',
|
|
856
|
+
'edit',
|
|
857
|
+
'delete',
|
|
858
|
+
'move',
|
|
859
|
+
'reorder',
|
|
860
|
+
'addArticle',
|
|
861
|
+
'removeArticle',
|
|
862
|
+
],
|
|
863
|
+
events: [
|
|
864
|
+
'created',
|
|
865
|
+
'edited',
|
|
866
|
+
'deleted',
|
|
867
|
+
'moved',
|
|
868
|
+
'reordered',
|
|
869
|
+
'articleAdded',
|
|
870
|
+
'articleRemoved',
|
|
871
|
+
],
|
|
872
|
+
};
|
|
873
|
+
/**
|
|
874
|
+
* FAQ entity
|
|
875
|
+
*
|
|
876
|
+
* Represents a frequently asked question with answer
|
|
877
|
+
*/
|
|
878
|
+
export const FAQ = {
|
|
879
|
+
singular: 'FAQ',
|
|
880
|
+
plural: 'FAQs',
|
|
881
|
+
description: 'A frequently asked question with answer',
|
|
882
|
+
properties: {
|
|
883
|
+
// Content
|
|
884
|
+
question: {
|
|
885
|
+
type: 'string',
|
|
886
|
+
description: 'The question text',
|
|
887
|
+
},
|
|
888
|
+
answer: {
|
|
889
|
+
type: 'string',
|
|
890
|
+
description: 'The answer text',
|
|
891
|
+
},
|
|
892
|
+
answerHtml: {
|
|
893
|
+
type: 'string',
|
|
894
|
+
optional: true,
|
|
895
|
+
description: 'HTML formatted answer',
|
|
896
|
+
},
|
|
897
|
+
// Organization
|
|
898
|
+
categoryId: {
|
|
899
|
+
type: 'string',
|
|
900
|
+
optional: true,
|
|
901
|
+
description: 'Category or topic ID',
|
|
902
|
+
},
|
|
903
|
+
position: {
|
|
904
|
+
type: 'number',
|
|
905
|
+
optional: true,
|
|
906
|
+
description: 'Display order',
|
|
907
|
+
},
|
|
908
|
+
tags: {
|
|
909
|
+
type: 'string',
|
|
910
|
+
array: true,
|
|
911
|
+
optional: true,
|
|
912
|
+
description: 'Tags for categorization',
|
|
913
|
+
},
|
|
914
|
+
// Visibility
|
|
915
|
+
status: {
|
|
916
|
+
type: 'string',
|
|
917
|
+
description: 'Status: draft, published, archived',
|
|
918
|
+
examples: ['draft', 'published', 'archived'],
|
|
919
|
+
},
|
|
920
|
+
visibility: {
|
|
921
|
+
type: 'string',
|
|
922
|
+
optional: true,
|
|
923
|
+
description: 'Who can see: public, internal',
|
|
924
|
+
examples: ['public', 'internal'],
|
|
925
|
+
},
|
|
926
|
+
// Engagement
|
|
927
|
+
viewCount: {
|
|
928
|
+
type: 'number',
|
|
929
|
+
optional: true,
|
|
930
|
+
description: 'Number of views',
|
|
931
|
+
},
|
|
932
|
+
helpfulCount: {
|
|
933
|
+
type: 'number',
|
|
934
|
+
optional: true,
|
|
935
|
+
description: 'Number of "helpful" votes',
|
|
936
|
+
},
|
|
937
|
+
notHelpfulCount: {
|
|
938
|
+
type: 'number',
|
|
939
|
+
optional: true,
|
|
940
|
+
description: 'Number of "not helpful" votes',
|
|
941
|
+
},
|
|
942
|
+
// Timing
|
|
943
|
+
publishedAt: {
|
|
944
|
+
type: 'datetime',
|
|
945
|
+
optional: true,
|
|
946
|
+
description: 'When published',
|
|
947
|
+
},
|
|
948
|
+
// Localization
|
|
949
|
+
locale: {
|
|
950
|
+
type: 'string',
|
|
951
|
+
optional: true,
|
|
952
|
+
description: 'Language/locale code',
|
|
953
|
+
},
|
|
954
|
+
},
|
|
955
|
+
relationships: {
|
|
956
|
+
category: {
|
|
957
|
+
type: 'HelpCategory',
|
|
958
|
+
required: false,
|
|
959
|
+
description: 'Category this FAQ belongs to',
|
|
960
|
+
},
|
|
961
|
+
relatedArticles: {
|
|
962
|
+
type: 'HelpArticle[]',
|
|
963
|
+
description: 'Related help articles',
|
|
964
|
+
},
|
|
965
|
+
},
|
|
966
|
+
actions: [
|
|
967
|
+
'create',
|
|
968
|
+
'edit',
|
|
969
|
+
'publish',
|
|
970
|
+
'unpublish',
|
|
971
|
+
'archive',
|
|
972
|
+
'delete',
|
|
973
|
+
'reorder',
|
|
974
|
+
'markHelpful',
|
|
975
|
+
'markNotHelpful',
|
|
976
|
+
'view',
|
|
977
|
+
],
|
|
978
|
+
events: [
|
|
979
|
+
'created',
|
|
980
|
+
'edited',
|
|
981
|
+
'published',
|
|
982
|
+
'unpublished',
|
|
983
|
+
'archived',
|
|
984
|
+
'deleted',
|
|
985
|
+
'reordered',
|
|
986
|
+
'viewed',
|
|
987
|
+
'markedHelpful',
|
|
988
|
+
'markedNotHelpful',
|
|
989
|
+
],
|
|
990
|
+
};
|
|
991
|
+
// =============================================================================
|
|
992
|
+
// Customer Feedback
|
|
993
|
+
// =============================================================================
|
|
994
|
+
/**
|
|
995
|
+
* Satisfaction rating entity
|
|
996
|
+
*
|
|
997
|
+
* Represents a CSAT/NPS rating from a customer
|
|
998
|
+
*/
|
|
999
|
+
export const SatisfactionRating = {
|
|
1000
|
+
singular: 'satisfaction rating',
|
|
1001
|
+
plural: 'satisfaction ratings',
|
|
1002
|
+
description: 'A customer satisfaction (CSAT) or NPS rating',
|
|
1003
|
+
properties: {
|
|
1004
|
+
// Rating
|
|
1005
|
+
score: {
|
|
1006
|
+
type: 'number',
|
|
1007
|
+
description: 'Rating score (e.g., 1-5 for CSAT, 0-10 for NPS)',
|
|
1008
|
+
},
|
|
1009
|
+
ratingType: {
|
|
1010
|
+
type: 'string',
|
|
1011
|
+
description: 'Type of rating: csat, nps, ces, custom',
|
|
1012
|
+
examples: ['csat', 'nps', 'ces', 'custom'],
|
|
1013
|
+
},
|
|
1014
|
+
sentiment: {
|
|
1015
|
+
type: 'string',
|
|
1016
|
+
optional: true,
|
|
1017
|
+
description: 'Calculated sentiment: positive, neutral, negative, promoter, passive, detractor',
|
|
1018
|
+
examples: ['positive', 'neutral', 'negative', 'promoter', 'passive', 'detractor'],
|
|
1019
|
+
},
|
|
1020
|
+
// Feedback
|
|
1021
|
+
comment: {
|
|
1022
|
+
type: 'string',
|
|
1023
|
+
optional: true,
|
|
1024
|
+
description: 'Optional text feedback from customer',
|
|
1025
|
+
},
|
|
1026
|
+
reason: {
|
|
1027
|
+
type: 'string',
|
|
1028
|
+
optional: true,
|
|
1029
|
+
description: 'Reason for the rating (category)',
|
|
1030
|
+
},
|
|
1031
|
+
// Context
|
|
1032
|
+
customerId: {
|
|
1033
|
+
type: 'string',
|
|
1034
|
+
description: 'ID of the customer who provided the rating',
|
|
1035
|
+
},
|
|
1036
|
+
agentId: {
|
|
1037
|
+
type: 'string',
|
|
1038
|
+
optional: true,
|
|
1039
|
+
description: 'ID of the agent who was rated',
|
|
1040
|
+
},
|
|
1041
|
+
// Association
|
|
1042
|
+
ticketId: {
|
|
1043
|
+
type: 'string',
|
|
1044
|
+
optional: true,
|
|
1045
|
+
description: 'ID of the ticket being rated',
|
|
1046
|
+
},
|
|
1047
|
+
conversationId: {
|
|
1048
|
+
type: 'string',
|
|
1049
|
+
optional: true,
|
|
1050
|
+
description: 'ID of the conversation being rated',
|
|
1051
|
+
},
|
|
1052
|
+
// Source
|
|
1053
|
+
channel: {
|
|
1054
|
+
type: 'string',
|
|
1055
|
+
optional: true,
|
|
1056
|
+
description: 'How the rating was collected: email, web, in-app, sms',
|
|
1057
|
+
examples: ['email', 'web', 'in-app', 'sms'],
|
|
1058
|
+
},
|
|
1059
|
+
// Timing
|
|
1060
|
+
requestedAt: {
|
|
1061
|
+
type: 'datetime',
|
|
1062
|
+
optional: true,
|
|
1063
|
+
description: 'When the rating was requested',
|
|
1064
|
+
},
|
|
1065
|
+
respondedAt: {
|
|
1066
|
+
type: 'datetime',
|
|
1067
|
+
description: 'When the customer responded',
|
|
1068
|
+
},
|
|
1069
|
+
// Status
|
|
1070
|
+
reviewed: {
|
|
1071
|
+
type: 'boolean',
|
|
1072
|
+
optional: true,
|
|
1073
|
+
description: 'Whether the rating has been reviewed by staff',
|
|
1074
|
+
},
|
|
1075
|
+
reviewedAt: {
|
|
1076
|
+
type: 'datetime',
|
|
1077
|
+
optional: true,
|
|
1078
|
+
description: 'When the rating was reviewed',
|
|
1079
|
+
},
|
|
1080
|
+
reviewedBy: {
|
|
1081
|
+
type: 'string',
|
|
1082
|
+
optional: true,
|
|
1083
|
+
description: 'ID of the person who reviewed the rating',
|
|
1084
|
+
},
|
|
1085
|
+
// Follow-up
|
|
1086
|
+
followedUp: {
|
|
1087
|
+
type: 'boolean',
|
|
1088
|
+
optional: true,
|
|
1089
|
+
description: 'Whether follow-up action was taken',
|
|
1090
|
+
},
|
|
1091
|
+
followUpNote: {
|
|
1092
|
+
type: 'string',
|
|
1093
|
+
optional: true,
|
|
1094
|
+
description: 'Notes about follow-up action',
|
|
1095
|
+
},
|
|
1096
|
+
},
|
|
1097
|
+
relationships: {
|
|
1098
|
+
customer: {
|
|
1099
|
+
type: 'Contact',
|
|
1100
|
+
description: 'The customer who provided the rating',
|
|
1101
|
+
},
|
|
1102
|
+
agent: {
|
|
1103
|
+
type: 'Contact',
|
|
1104
|
+
required: false,
|
|
1105
|
+
description: 'The agent who was rated',
|
|
1106
|
+
},
|
|
1107
|
+
ticket: {
|
|
1108
|
+
type: 'SupportTicket',
|
|
1109
|
+
required: false,
|
|
1110
|
+
backref: 'satisfactionRating',
|
|
1111
|
+
description: 'The ticket being rated',
|
|
1112
|
+
},
|
|
1113
|
+
conversation: {
|
|
1114
|
+
type: 'Conversation',
|
|
1115
|
+
required: false,
|
|
1116
|
+
backref: 'satisfactionRating',
|
|
1117
|
+
description: 'The conversation being rated',
|
|
1118
|
+
},
|
|
1119
|
+
},
|
|
1120
|
+
actions: [
|
|
1121
|
+
'submit',
|
|
1122
|
+
'update',
|
|
1123
|
+
'review',
|
|
1124
|
+
'followUp',
|
|
1125
|
+
'dismiss',
|
|
1126
|
+
'export',
|
|
1127
|
+
'analyze',
|
|
1128
|
+
],
|
|
1129
|
+
events: [
|
|
1130
|
+
'submitted',
|
|
1131
|
+
'updated',
|
|
1132
|
+
'reviewed',
|
|
1133
|
+
'followedUp',
|
|
1134
|
+
'dismissed',
|
|
1135
|
+
'exported',
|
|
1136
|
+
],
|
|
1137
|
+
};
|
|
1138
|
+
// =============================================================================
|
|
1139
|
+
// Export all entities as a schema
|
|
1140
|
+
// =============================================================================
|
|
1141
|
+
/**
|
|
1142
|
+
* All support/helpdesk entity types
|
|
1143
|
+
*/
|
|
1144
|
+
export const SupportEntities = {
|
|
1145
|
+
// Support Tickets
|
|
1146
|
+
SupportTicket,
|
|
1147
|
+
TicketComment,
|
|
1148
|
+
// Live Chat
|
|
1149
|
+
Conversation,
|
|
1150
|
+
ConversationMessage,
|
|
1151
|
+
// Help Center
|
|
1152
|
+
HelpArticle,
|
|
1153
|
+
HelpCategory,
|
|
1154
|
+
FAQ,
|
|
1155
|
+
// Feedback
|
|
1156
|
+
SatisfactionRating,
|
|
1157
|
+
};
|
|
1158
|
+
/**
|
|
1159
|
+
* Entity categories for organization
|
|
1160
|
+
*/
|
|
1161
|
+
export const SupportCategories = {
|
|
1162
|
+
tickets: ['SupportTicket', 'TicketComment'],
|
|
1163
|
+
liveChat: ['Conversation', 'ConversationMessage'],
|
|
1164
|
+
helpCenter: ['HelpArticle', 'HelpCategory', 'FAQ'],
|
|
1165
|
+
feedback: ['SatisfactionRating'],
|
|
1166
|
+
};
|
|
1167
|
+
//# sourceMappingURL=support.js.map
|