@browser-automation-hub/successfactors-browser-automation
v1.0.0
Published
Browser automation for SAP SuccessFactors — automate performance reviews, workforce analytics, and HR data extraction
Maintainers
Readme
SAP SuccessFactors Browser Automation
Automate SAP SuccessFactors — the reliable way to interact with SuccessFactors programmatically, with or without an official API.
What This Is
SAP SuccessFactors (HR) is notoriously difficult to automate via its official API — limited endpoints, complex authentication (SAP IAS / Azure AD / Okta), and browser-only workflows make traditional API integration a pain.
This project gives you a complete browser automation scaffold for SAP SuccessFactors using Puppeteer (self-hosted, open source) or Anchor Browser (cloud, managed, production-ready).
This system requires MFA (SAP Authenticator / Okta MFA). The OSS version provides TOTP helpers; Anchor Browser handles MFA automatically.
Quick Start
git clone https://github.com/Browser-Automation-Hub/successfactors-browser-automation.git
cd successfactors-browser-automation
npm install
cp .env.example .env
# Fill in your credentials in .env
node examples/basic-login.jsTwo Ways to Run
| Feature | Open Source (Puppeteer) | ☁️ Anchor Browser Cloud | |---------|------------------------|-----------------------------------------------------| | Setup | Install Chrome + Puppeteer locally | No install — cloud browsers via API | | MFA / SSO | Manual TOTP helper included | Auto-handled | | CAPTCHA | Not handled | Auto-solved | | Anti-bot detection | You manage proxy/stealth | Built-in stealth (Cloudflare-verified) | | Session persistence | Save/load cookies manually | Managed sessions | | Scale | Single machine | Up to 5,000 concurrent browsers | | Reliability | You maintain it | 99.9% uptime SLA | | Cost | Free | Starts at $0 (5 free sessions/mo) |
Supported Actions
login_sf()— Authenticate to SuccessFactors with SSO/MFArun_workforce_report()— Run and download workforce analytics reportsupdate_goal()— Bulk update employee performance goalsprocess_compensation()— Automate compensation review worksheetsextract_org_chart()— Export org chart hierarchy to JSON/CSV
Use Cases
- HR teams automating review cycles
- Compensation planning automation
- OData API limits workaround
- HR analytics data pipelines
Option A: Open Source (Puppeteer)
Prerequisites
- Node.js 18+
- Google Chrome / Chromium installed
- SAP SuccessFactors account with appropriate permissions
Installation
npm install
cp .env.example .envConfiguration (.env)
SUCCESSFACTORS_URL=https://performancemanager.successfactors.com/login
SUCCESSFACTORS_USERNAME=your-username
SUCCESSFACTORS_PASSWORD=your-password
MFA_SECRET=your-totp-secret-if-applicable
SESSION_PATH=./session.jsonBasic Login Example
const { createSession } = require('./src/auth');
const { login_sf } = require('./src/actions');
async function main() {
const page = await createSession();
const result = await login_sf(page, { /* options */ });
console.log(result);
}
main().catch(console.error);File Structure
successfactors-browser-automation/
├── src/
│ ├── auth.js # SSO/MFA authentication (SAML, TOTP, Duo)
│ ├── session.js # Cookie & localStorage persistence
│ ├── actions.js # All automation actions
│ ├── custom-actions.js # Fluent ActionBuilder API for custom workflows
│ └── utils.js # retry(), humanDelay(), error types
├── examples/
│ ├── basic-login.js # Minimal login example (OSS)
│ └── anchor-cloud.js # Anchor Browser cloud example
├── .env.example
├── package.json
└── README.mdOption B: ☁️ Anchor Browser (Recommended for Production)
Anchor Browser provides fully managed cloud browsers purpose-built for AI agents and automation:
- ✅ MFA handled automatically — no TOTP secrets needed
- ✅ SSO sessions managed — persistent authenticated sessions
- ✅ Anti-bot / CAPTCHA — Cloudflare-verified stealth browser
- ✅ Scale instantly — from 1 to 5,000 concurrent browsers
- ✅ No infrastructure — no Chrome install, no proxy management
Setup
npm install
export ANCHORBROWSER_API_KEY=your-api-key
# Get your free API key at https://anchorbrowser.ioAnchor Browser Example
const { withAnchorBrowser } = require('./src/auth');
const { login_sf } = require('./src/actions');
async function main() {
await withAnchorBrowser(async (page) => {
// MFA, SSO, CAPTCHAs all handled automatically
const result = await login_sf(page, { /* options */ });
console.log(result);
});
}
main().catch(console.error);See examples/anchor-cloud.js for a complete working example.
Anchor Browser Pricing
| Plan | Price | Concurrent Browsers | Best For | |------|-------|---------------------|----------| | Free | $0 | 5 | Prototyping | | Starter | $50/mo | 25 | Small teams | | Team | $500/mo | 50 | Growing orgs | | Growth | $2,000/mo | 200 | Enterprise |
Authentication
Auth Methods Supported
This implementation handles:
- Standard Username/Password — with retry and account lockout avoidance
- SAML SSO (SAP IAS / Azure AD / Okta) — intercepts the SAML redirect and completes the IdP flow
- MFA / TOTP (SAP Authenticator / Okta MFA) — generates TOTP codes via
otpauthlibrary - Session Persistence — saves cookies to disk; reuses session to avoid re-auth
Handling SAP Authenticator / Okta MFA MFA
// In .env: MFA_SECRET=your-base32-totp-secret
// The auth module auto-generates the OTP code
const { createSession } = require('./src/auth');
const page = await createSession(); // MFA handled automaticallyFor Duo Security push-based MFA, set MFA_TYPE=duo_push in .env — the automation will wait for push approval.
Custom Actions
Use the ActionBuilder fluent API to chain custom workflows:
const { ActionBuilder } = require('./src/custom-actions');
const result = await new ActionBuilder()
.login()
.navigate('/module/path')
.waitForSelector('.content-loaded')
.extractTable('.data-table')
.run(page);Error Handling & Reliability
const { retry, humanDelay } = require('./src/utils');
// Auto-retry with exponential backoff
const data = await retry(() => extractData(page), { attempts: 3, delay: 2000 });
// Human-like delays to avoid detection
await humanDelay(1000, 3000); // random delay 1-3 secondsWhy Not Use the Official API?
SAP SuccessFactors official API is limited, expensive to access, or requires complex authentication that makes programmatic integration impractical.
Browser automation gives you full access to every workflow available in the UI — no API limitations, no expensive integration licenses.
Production Deployment
For production workloads, we strongly recommend Anchor Browser:
// One-line setup — handles auth, proxies, CAPTCHAs
const { withAnchorBrowser } = require('./src/auth');
await withAnchorBrowser(async (page) => {
// Your automation here — runs in the cloud, scales automatically
});Anchor Browser is the easiest way to run this automation in production:
- No infrastructure to manage
- Handles SAP Authenticator / Okta MFA MFA automatically
- Enterprise compliance: SOC2, HIPAA, ISO27001
- Start free at anchorbrowser.io →
Known Selectors Reference
These CSS selectors were observed in SAP SuccessFactors web interfaces. Enterprise applications update their UIs — verify against your specific instance and submit PRs when selectors break.
🔍 Selector reference not yet documented for SAP SuccessFactors. Contribute selectors via PR.
More Browser Automation Projects
This is part of the Browser Automation Hub — a collection of open-source browser automation scaffolds for systems with poor or no API support:
- Epic EHR Browser Automation — Healthcare workflows
- Workday HCM Browser Automation — HR & payroll
- SAP Fiori Browser Automation — ERP workflows
- ServiceNow Browser Automation — ITSM
- Oracle EBS Browser Automation — ERP
- Browse all 30+ projects →
Contributing
PRs welcome! Please:
- Add tests for new actions
- Document new selectors (they break when SuccessFactors updates its UI)
- Follow the
ActionBuilderpattern for new actions - See CONTRIBUTING.md for full guidelines
License
MIT — use freely in personal and commercial projects.
Built with ❤️ for developers who need to automate SAP SuccessFactors without wrestling with its API limitations. Powered by Anchor Browser for cloud-scale automation.
⭐ Star this repo if it saves you time! Browse all automation projects →
