Automation for Autotask contract renewal tickets. Runs as an AWS Lambda (scheduled via EventBridge) to:
- Query contracts expiring within N days (default 90)
- Avoid duplicates
- Create renewal tickets with a standard subject, description, and due date
- Node.js 20 + TypeScript
- Serverless Framework (AWS Lambda + EventBridge)
- DynamoDB for dedupe keys
- AWS SSM Parameter Store + Secrets Manager for prod config
- Jest, ESLint, Prettier, GitHub Actions CI
- Copy .env.example to .env and fill in values.
- Install deps:
npm ci - Run tests:
npm test - Offline invoke:
npx serverless invoke local --function renewalScheduler --stage dev
- Dev uses .env via dotenv.
- Prod uses SSM and Secrets Manager. Example payloads are in
.env.exampleand docs.
- Ensure SSM parameter
/AT-Contract-API/{stage}/configand Secrets Manager secretAT-Contract-API/{stage}/autotaskexist. - Deploy:
npx serverless deploy --stage dev
- Autotask REST field names and query filters can vary. Adjust
src/services/autotaskClient.tsas needed once tenant details are confirmed. - Duplicate avoidance uses DynamoDB TTL and optional Autotask pre-check.
MIT