Email ticketing fixes, comms polish, and .env cleanup
Inbound: - Gmail poll query is:unread in:inbox (was category:primary, which matched nothing on a no-tabs Workspace inbox) Outbound email: - Closed/escalation auto-emails editable via TICKET_CLOSE_MESSAGE and new TICKET_ESCALATION_EMAIL_MESSAGE; drop the staff signature from closing emails - Replies quote the customer's latest message (gmail_quote markup so clients collapse it), embed custom emoji inline via CID attachment, and strip Discord role mentions - Tagline spacing fix in the company signature Discord side: - Suppress all mentions in log + transcript posts (no more pinging on close) - Drop the staff-role ping from new-ticket and follow-up notifications - Ticket channels inherit category permissions instead of setting per-channel overwrites (removes the Manage Roles requirement) Gmail folders: - Folder/label routing (gmailLabels.js) with /folder; close files to Complete Config: - Remove ~56 stale .env keys for long-removed features; refresh stale copy Docs: - Design specs for folder routing, email-flow toggle, and per-staff metrics
This commit is contained in:
@@ -368,6 +368,41 @@ async function registerCommands() {
|
||||
)
|
||||
),
|
||||
|
||||
new SlashCommandBuilder()
|
||||
.setName('email')
|
||||
.setDescription('Turn the inbound email flow (Gmail polling) on or off, or check its status')
|
||||
.setContexts([InteractionContextType.Guild])
|
||||
.setIntegrationTypes([ApplicationIntegrationType.GuildInstall])
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.ManageGuild)
|
||||
.addSubcommand(sub =>
|
||||
sub.setName('on').setDescription('Start polling the inbox and creating tickets from email')
|
||||
)
|
||||
.addSubcommand(sub =>
|
||||
sub.setName('off').setDescription('Stop polling the inbox (outbound emails still send)')
|
||||
)
|
||||
.addSubcommand(sub =>
|
||||
sub.setName('status').setDescription('Show whether the inbound email flow is on or off')
|
||||
),
|
||||
|
||||
new SlashCommandBuilder()
|
||||
.setName('folder')
|
||||
.setDescription("Move this ticket's email thread into a Gmail folder")
|
||||
.setContexts([InteractionContextType.Guild])
|
||||
.setIntegrationTypes([ApplicationIntegrationType.GuildInstall])
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.ManageMessages)
|
||||
.addStringOption(opt =>
|
||||
opt
|
||||
.setName('destination')
|
||||
.setDescription('Target folder')
|
||||
.setRequired(true)
|
||||
.addChoices(
|
||||
{ name: 'For Jake', value: 'FOR_JAKE' },
|
||||
{ name: 'Spam', value: 'SPAM' },
|
||||
{ name: 'Dashboard Errors', value: 'DASHBOARD_ERRORS' },
|
||||
{ name: 'Partnership Offers', value: 'PARTNERSHIP_OFFERS' }
|
||||
)
|
||||
),
|
||||
|
||||
new SlashCommandBuilder()
|
||||
.setName('cancel-close')
|
||||
.setDescription('Cancel a pending force-close countdown')
|
||||
|
||||
Reference in New Issue
Block a user