From customer-feedback
Draft and send personalized email replies to customer feedback. Maps feedback to topic-based response templates and creates Outlook drafts.
npx claudepluginhub buildertrend/product-toolkit --plugin customer-feedbackThis skill uses the workspace's default tool permissions.
You are helping a Buildertrend product designer reply to customer feedback.
Conducts multi-round deep research on GitHub repos via API and web searches, generating markdown reports with executive summaries, timelines, metrics, and Mermaid diagrams.
Dynamically discovers and combines enabled skills into cohesive, unexpected delightful experiences like interactive HTML or themed artifacts. Activates on 'surprise me', inspiration, or boredom cues.
Generates images from structured JSON prompts via Python script execution. Supports reference images and aspect ratios for characters, scenes, products, visuals.
You are helping a Buildertrend product designer reply to customer feedback.
Ask the user to provide their feedback data as a CSV or spreadsheet (file path or paste). The data should include at minimum: user name, email, and feedback text. It may also include columns like: User ID, Builder, Builder ID, Role, Rating, Extra Info, Demo Builder, Feedback ID, Date. Adapt to whatever columns are present.
After ingesting:
After the summary, ask the user:
"Do you have a template document with your topic-based response blocks? If so, provide the file path or paste them here. If not, I can draft suggested responses for each theme based on the feedback -- just let me know."
Explain that topic blocks are pre-written responses for common feedback themes (like "Mobile App", "Markups", "Export/Print") that get mixed and matched per user based on what they wrote about.
If the user wants you to draft responses, write a suggested template for each theme identified in the summary. Present them for the user to review and edit before proceeding.
When mapping feedback to topics, look for these common patterns:
Once templates are confirmed, check if ~/.claude/feedback-reply-config.json exists.
If it does NOT exist, ask the following questions ONE AT A TIME (wait for each answer before asking the next):
Default opening:
Hi [First Name],
Thank you for taking the time to share feedback on [Feature Name]. We appreciate hearing how you want to improve the feature.
Default closing:
In the meantime, if you have any questions or run into anything, don't hesitate to reach out to me!
Do NOT ask for a signature block -- Outlook's auto-signature handles this.
Save all answers to ~/.claude/feedback-reply-config.json and confirm setup is complete. Show a preview email with a sample name.
If the config file DOES exist, read it and tell the user: "I have your settings loaded, sending as '[Subject Line]' for [Feature Name] feedback. Want to update anything before we start drafting?"
~/Downloads/feedback-mapping-[date].md). Include a table with: #, Name, Email, Topic(s), and Flags. Also include a flagged items section at the bottom for bug reports, duplicate users, same-company pairs, and unmapped feedback.If the user says the From is wrong or showing a personal email:
Create email drafts in Outlook for Mac using the HTML file + AppleScript approach.
Always use this HTML structure (critical for Outlook paragraph spacing):
<html>
<body style="font-family: Calibri, sans-serif; font-size: 11pt;">
<p>Opening paragraph</p>
<p>Topic block 1</p>
<p>Topic block 2</p>
<p>Closing paragraph</p>
<p><span style="background-color: [highlight color];">[Highlighted line if configured]</span></p>
<p>Sign-off paragraph</p>
</body>
</html>
Use this exact approach (writing HTML to a temp file, then reading it via AppleScript):
cat > /tmp/email_username.html << 'HTMLEOF'
[HTML content here]
HTMLEOF
osascript << 'ASEOF'
set htmlContent to read POSIX file "/tmp/email_username.html" as «class utf8»
tell application "Microsoft Outlook"
set newMessage to make new outgoing message with properties {subject:"[SUBJECT]", content:htmlContent}
tell newMessage
make new to recipient with properties {email address:{address:"[EMAIL]"}}
end tell
open newMessage
end tell
ASEOF
Important: Do NOT use AppleScript string escaping for the body. Always write to a temp file and read it back. This is the only approach that preserves paragraph spacing in Outlook for Mac.
Open drafts in batches of 5 so the user can review and send without being overwhelmed. After each batch, tell the user which emails have been drafted, how many remain, and ask "Ready for the next 5?"