Skip to content
OpenSmartRoute
Skillv1.0.0

bamboohr-prod-checklist

Execute BambooHR production deployment checklist and rollback procedures. Use when deploying BambooHR integrations to production, preparing for launch, or implementing go-live procedures with BambooHR

by jeremylongshore(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from jeremylongshore/tons-of-skills-marketplace (plugins/saas-packs/bamboohr-pack/skills/bamboohr-prod-checklist/SKILL.md). Install upstream with npx skills add jeremylongshore/tons-of-skills-marketplace --skill bamboohr-prod-checklist. Copyright stays with the author (MIT).

BambooHR Production Checklist

Overview

Complete pre-launch checklist for deploying BambooHR integrations to production, covering API configuration, data integrity, monitoring, and rollback procedures.

Prerequisites

  • Staging environment tested and verified
  • Production BambooHR API key ready
  • Deployment pipeline configured
  • Monitoring and alerting infrastructure available

Instructions

Pre-Deployment Checklist

Authentication & Secrets

  • Production API key created under a service account (not personal account)
  • API key stored in secrets manager (AWS Secrets Manager / GCP Secret Manager / Vault)
  • BAMBOOHR_COMPANY_DOMAIN set correctly for production
  • Webhook secret stored securely
  • Key rotation procedure documented and tested
  • Old staging/test keys will not be deployed to production

API Integration Quality

  • All API calls use Accept: application/json header
  • Error handling covers all BambooHR HTTP statuses (400, 401, 403, 404, 503)
  • X-BambooHR-Error-Message header parsed for error details
  • Retry-After header honored on 503 responses
  • Exponential backoff with jitter implemented for retries
  • Request queue limits concurrent API calls (max 3-5 parallel)
  • No hardcoded employee IDs, company domains, or API keys

Data Integrity

  • Custom reports validated against expected field schema
  • Employee directory sync handles new, updated, and terminated employees
  • Date fields parsed consistently (YYYY-MM-DD format)
  • Null/empty field handling tested (BambooHR returns null or "")
  • Unicode employee names handled correctly
  • Large directory tested (500+ employees)

Security & Compliance

  • PII fields redacted from application logs
  • Webhook signatures verified with HMAC-SHA256
  • Only necessary BambooHR fields requested (least data principle)
  • No SSN, salary, or restricted data stored without encryption at rest
  • API access audit trail enabled

Health Check Endpoint

// api/health.ts
import { BambooHRClient, BambooHRApiError } from '../bamboohr/client';

interface HealthStatus {
  status: 'healthy' | 'degraded' | 'down';
  bamboohr: {
    connected: boolean;
    latencyMs: number;
    error?: string;
    employeeCount?: number;
  };
  timestamp: string;
}

export async function healthCheck(client: BambooHRClient): Promise<HealthStatus> {
  const start = Date.now();
  try {
    const dir = await client.getDirectory();
    return {
      status: 'healthy',
      bamboohr: {
        connected: true,
        latencyMs: Date.now() - start,
        employeeCount: dir.employees.length,
      },
      timestamp: new Date().toISOString(),
    };
  } catch (err) {
    const latency = Date.now() - start;
    const errMsg = err instanceof BambooHRApiError ? err.message : 'Unknown error';

    return {
      status: err instanceof BambooHRApiError && err.retryable ? 'degraded' : 'down',
      bamboohr: { connected: false, latencyMs: latency, error: errMsg },
      timestamp: new Date().toISOString(),
    };
  }
}

Monitoring & Alerting

// Recommended alert thresholds for BambooHR integrations
const ALERTS = {
  p1_critical: [
    { name: 'Auth failure', condition: '401/403 errors > 0', action: 'Page on-call' },
    { name: 'API down', condition: 'Health check fails 3x consecutive', action: 'Page on-call' },
  ],
  p2_high: [
    { name: 'Rate limited', condition: '503 errors > 3/min', action: 'Slack alert' },
    { name: 'High latency', condition: 'p99 > 5000ms', action: 'Slack alert' },
    { name: 'Sync failure', condition: 'Sync job fails', action: 'Slack + ticket' },
  ],
  p3_medium: [
    { name: 'Elevated errors', condition: '4xx errors > 10/hour', action: 'Log + daily review' },
    { name: 'Data mismatch', condition: 'Schema validation failures', action: 'Log + ticket' },
  ],
};

Gradual Rollout Strategy

#!/bin/bash
# deploy-bamboohr-integration.sh

echo "=== Pre-flight checks ==="
# 1. Verify BambooHR API is up
curl -sf "https://status.bamboohr.com" > /dev/null || { echo "BambooHR may be down!"; exit 1; }

# 2. Verify production credentials work
STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
  -u "${BAMBOOHR_API_KEY}:x" \
  -H "Accept: application/json" \
  "https://api.bamboohr.com/api/gateway.php/${BAMBOOHR_COMPANY_DOMAIN}/v1/employees/directory")
[ "$STATUS" -eq 200 ] || { echo "Auth check failed: $STATUS"; exit 1; }
echo "API auth: OK"

# 3. Deploy
echo "=== Deploying ==="
# Platform-specific deployment command here
# kubectl apply -f k8s/production.yaml
# fly deploy
# gcloud run deploy ...

# 4. Post-deploy health check
echo "=== Post-deploy verification ==="
sleep 10
curl -sf "https://your-app.com/api/health" | jq .bamboohr

Rollback Procedure

# Immediate rollback
# kubectl rollout undo deployment/bamboohr-integration
# fly releases rollback
# gcloud run services update-traffic --to-revisions=REVISION=100

# Verify rollback health
curl -sf "https://your-app.com/api/health" | jq .

Output

  • Completed pre-deployment checklist
  • Health check endpoint deployed
  • Monitoring alerts configured
  • Gradual rollout with pre-flight checks
  • Documented rollback procedure

Examples

Before production enablement, exercise the integration with the sandbox or approved synthetic records, verify field scope, webhook HMAC, retry/idempotency behavior, and protected observability. Attach a redacted go/no-go receipt; leave writes disabled if any HR owner approval, access review, retention, reconciliation, or rollback check is incomplete.

Error Handling

Alert Condition Severity Response
Auth failure 401/403 from BambooHR P1 Check API key; rotate if compromised
Rate limit storm Continuous 503s P2 Pause sync jobs; reduce request rate
Sync data gap Missing employees in sync P2 Run full resync; check changed-since
Schema mismatch New/removed BambooHR fields P3 Update field mappings; add defaults

Resources

Next Steps

For version upgrades, see bamboohr-upgrade-migration.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/jeremylongshore-tons-of-skills-marketplace-bamboohr-prod-007dc2/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

jeremylongshore-tons-of-skills-marketplace-bamboohr-prod-007dc2.ocm.jsonjson
{
  "ocm": "1",
  "id": "jeremylongshore-tons-of-skills-marketplace-bamboohr-prod-007dc2",
  "kind": "skill",
  "name": "bamboohr-prod-checklist",
  "description": "Execute BambooHR production deployment checklist and rollback procedures. Use when deploying BambooHR integrations to production, preparing for launch, or implementing go-live procedures with BambooHR API. Trigger with phrases like \"bamboohr production\", \"deploy bamboohr\", \"bamboohr go-live\", \"bamboohr launch checklist\", \"bamboohr prod ready\".",
  "publisher": "jeremylongshore",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "coding"
    ],
    "tags": [
      "skill-md",
      "saas",
      "hr",
      "bamboohr",
      "production",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Execute BambooHR production deployment checklist and rollback procedures. Use when deploying BambooHR integrations to production, preparing for launch, or implementing go-live procedures with BambooHR API. Trigger with phrases like \"bamboohr production\", \"deploy bamboohr\", \"bamboohr go-live\", \"bamboohr launch checklist\", \"bamboohr prod ready\"."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/jeremylongshore/tons-of-skills-marketplace",
      "path": "plugins/saas-packs/bamboohr-pack/skills/bamboohr-prod-checklist/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/jeremylongshore/tons-of-skills-marketplace/blob/HEAD/plugins/saas-packs/bamboohr-pack/skills/bamboohr-prod-checklist/SKILL.md",
      "key": "jeremylongshore/tons-of-skills-marketplace/plugins/saas-packs/bamboohr-pack/skills/bamboohr-prod-checklist/SKILL.md"
    },
    "compatibility": "Designed for Claude Code",
    "allowed_tools": [
      "Read,",
      "Bash(kubectl:*),",
      "Bash(curl:*),",
      "Grep"
    ],
    "license": "MIT"
  },
  "instructions": "# BambooHR Production Checklist\n\n## Overview\n\nComplete pre-launch checklist for deploying BambooHR integrations to production, covering API configuration, data integrity, monitoring, and rollback procedures.\n\n## Prerequisites\n\n- Staging environment tested and verified\n- Production BambooHR API key ready\n- Deployment pipeline configured\n- Monitoring and alerting infrastructure available\n\n## Instructions\n\n### Pre-Deployment Checklist\n\n#### Authentication & Secrets\n\n- [ ] Production API key created under a service account (not personal account)\n- [ ] API key stored in secrets manager (AWS Secrets",
  "cost": {
    "context_tokens": 1611
  }
}

Fetch it by URL: GET /api/v1/registry/jeremylongshore-tons-of-skills-marketplace-bamboohr-prod-007dc2/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.