skills/payment-reminders/SKILL.md
Automated payment reminder emails for invoice chasing
npx skillsauth add ticruz38/skills skills/payment-remindersInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Automated payment reminder system that sends escalating reminder emails for overdue and upcoming invoices.
Use these variables in your templates:
{{clientName}} - Client's name{{invoiceNumber}} - Invoice number{{amount}} - Balance due amount{{dueDate}} - Invoice due date{{daysUntilDue}} - Days until due (positive number){{daysOverdue}} - Days overdue (positive number){{businessName}} - Your business name{{businessEmail}} - Your business email{{businessPhone}} - Your business phonecd skills/payment-reminders
npm install
npm run build
Set your email profile (uses the email skill):
export EMAIL_PROFILE=default # or your Gmail profile name
npm run cli status
npm run cli pending
npm run cli preview INV-0001
npm run cli send-all --dry-run
npm run cli send-all
npm run cli send INV-0001
# View client settings
npm run cli client-settings 1
# Enable reminders for client
npm run cli client-enable 1
# Disable reminders for client
npm run cli client-disable 1
# List all templates
npm run cli templates
# List templates for specific stage
npm run cli templates post_due
# View template details
npm run cli template-get 1
# Create new template (via environment variables)
TEMPLATE_NAME="Custom Overdue" \
TEMPLATE_STAGE=post_due \
TEMPLATE_TONE=firm \
TEMPLATE_SUBJECT="Overdue: Invoice {{invoiceNumber}}" \
TEMPLATE_BODY="Dear {{clientName}},..." \
npm run cli template-create
npm run cli stats
npm run cli history
import { PaymentRemindersSkill } from '@openclaw/payment-reminders';
const skill = new PaymentRemindersSkill();
// Get pending reminders
const pending = await skill.getPendingReminders();
// Send all pending
const result = await skill.sendAllPending();
console.log(`Sent ${result.sent} reminders`);
// Preview reminder
const preview = await skill.previewReminder(invoiceId);
console.log(preview.subject);
console.log(preview.bodyText);
// Send specific reminder
await skill.sendReminder(pending[0]);
// Get statistics
const stats = await skill.getStats();
await skill.close();
id - Schedule IDname - Schedule namedays_before_due - JSON array of daysdays_after_due - JSON array of dayson_due_date - Send on due date flagis_default - Default schedule flagid - Template IDname - Template namesubject - Email subject with variablesbody_text - Plain text bodybody_html - HTML body (optional)stage - pre_due, on_due, post_due, finaltone - friendly, firm, urgentis_default - Default for stageclient_id - Client IDenabled - Reminders enabled flagschedule_id - Custom schedule IDcustom_templates - Use custom templatesnotes - Notes about clientid - History entry IDinvoice_id - Invoice IDclient_id - Client IDstage - Reminder stage senttemplate_id - Template usedsubject - Actual subject sentbody_preview - Body previewsent_at - Timestampsent_successfully - Success flagerror_message - Error if failedtesting
Suggest recipes based on dietary preferences, available ingredients, and cuisine preferences
development
Extract data from receipt photos using Google Vision API
business
QuickBooks Online integration for accounting sync - sync customers, invoices, and transactions with two-way sync and conflict resolution
testing
QuickBooks OAuth adapter for QuickBooks Online accounting integration. Built on top of auth-provider for secure token management with automatic refresh, multi-profile support, sandbox/production toggle, and health checks.