Pisano - SAP SuccessFactors Integration
This article explains how SAP SuccessFactors employee data can be used to initiate Pisano Employee Experience surveys through event-driven REST integration or scheduled CSV transfer.
The appropriate integration approach depends on the survey timing, data volume, available employee fields, security requirements, and the customer’s existing integration platform.
What You Will Find Here
This article covers:
- Integration Options
- Platform Capabilities Used in the Integration
- Event Driven REST Integration
- Scheduled CSV and SFTP Integration
- Field Mapping
- Security, Monitoring, and Production Checks
- Decisions Before Implementation
- Acceptance Criteria
Integration Options
Two integration patterns can be used to transfer SAP SuccessFactors employee data to Pisano and initiate Employee Experience surveys.
| Option | Data Path | Best Fit |
| Event Driven REST | SuccessFactors → REST and JSON → Pisano Sharing API | A selected employee event should trigger a survey at an agreed time. |
| Scheduled CSV and SFTP | SuccessFactors → CSV → SFTP → Pisano Workflow | Daily, weekly, or recurring Employee Experience audiences and batch programs. |
Platform Capabilities Used in the Integration
SAP SuccessFactors
The integration can use the following SAP SuccessFactors capabilities:
- Intelligent Services can publish employee lifecycle events and start an attached integration.
- Integration Center can send REST output in JSON and enrich event data by reading additional SuccessFactors or OData fields.
- Integration Center can run scheduled exports to SFTP in CSV format.
- Execution Manager and event or integration logs provide operational monitoring.
Pisano
The integration can use the following Pisano capabilities:
- Email Sharing API starts survey email delivery through the configured email provider.
- SMS Sharing API starts survey SMS delivery through the configured SMS provider.
- Link Sharing API creates one personalised survey link for a customer. The external system remains responsible for delivering that link.
- Time based Workflow can read a configured file source and process customer or audience data for survey actions.
- Integration credentials are supplied in the Authorization header according to the selected Pisano API contract.
Event Driven REST Integration
SAP SuccessFactors Configuration and Processing
The event driven option uses a SuccessFactors employee lifecycle event to initiate a REST request to Pisano.
The SAP configuration includes the following activities:
- Select the employee lifecycle event in Intelligent Services Center and enable the required publishing rules.
- Create an Integration Center integration for the event and select REST with JSON output.
- Select the required employee fields, filters, and enrichment fields.
- Configure the receiver URL and supported authentication.
- Define the event timing and save the event to integration association.
- Run a controlled test.
- Verify the event logs and Integration Center execution results.
If the SAP outbound authentication and header format matches the Pisano endpoint, the REST request can be tested directly.
When mapping, authentication conversion, delayed dispatch, durable retry, or central monitoring is required, the customer’s existing integration service or middleware can perform these functions before calling Pisano.
Event Date and Survey Timing
The event publication time, HR effective date, and intended survey date are not always the same.
For example, a future hire may be entered in SuccessFactors before the employee’s first working day.
For onboarding surveys, the survey timing should be defined using an offset from the effective hire date. The employee status and contact information should also be checked again before dispatch.
Suggested Event Data
The exact fields depend on the SuccessFactors tenant. A practical event payload can include the following fields:
{
"eventKey": "tenant:EMP-12345:hire:2026-10-01:1",
"employeeId": "EMP-12345",
"effectiveDate": "2026-10-01",
"eventType": "Employee Hire",
"email": "employee@example.com",
"phone_number": "+491234567890",
"name": "Jane Doe",
"department": "Engineering",
"location": "Berlin"
}
Use a stable eventKey so the same business event can be recognised if it is replayed.
Pisano Target APIs
The event driven integration can use the following Pisano APIs.
Email Sharing API
POST https://<pisanoURL>/v1/email_campaigns/<campaign_id>/email_sharings/
Use this endpoint when Pisano should initiate survey email delivery. Confirm the tested Authorization header and context field for the target tenant.
Example request:
curl --location 'https://<pisanoURL>/v1/email_campaigns/<campaign_id>/email_sharings/' \
--header 'Authorization: <token>' \
--header 'Content-Type: application/json' \
--data '{
"emails": ["<email>"],
"custom_attributes": {
"<email>": {
"name": "<name>",
"external_id": "<external_id>",
"phone_number": "<phone_number>"
}
},
"transactional_data": {
"<email>": {
"EmployeeEvent": "<employee_event>",
"Department": "<department>",
"Location": "<location>"
}
}
}'
The request uses the employee email as the recipient key. Custom attributes can include the employee name, external ID, and phone number. Transactional data can include the employee event, department, and location.
SMS Sharing API
POST https://<pisanoURL>/v1/sms_campaigns/<campaign_id>/sms_sharings/
Use this endpoint when Pisano should initiate survey SMS delivery. The employee phone number and SMS provider or channel configuration are required.
Example request:
curl --location --request POST 'https://<pisanoURL>/v1/sms_campaigns/<campaign_id>/sms_sharings/' \ --header 'Authorization: <token>' \ --header 'Content-Type: application/json' \ --data-raw '{
"phone_numbers": ["<phone_number>"],
"custom_attributes": {
"<phone_number>": {
"name": "<name>",
"external_id": "<external_id>",
"email": "<email>"
}
},
"built_in_responses": {
"<phone_number>": {
"EmployeeEvent": "<employee_event>",
"Department": "<department>",
"Location": "<location>"
}
}
}'
The request uses the employee phone number as the recipient key. Custom attributes can include the employee name, external ID, and email. Built in responses can include the employee event, department, and location.
Link Sharing API
POST https://<pisanoURL>/external/v1/link_sharings/<link_channel_id>/generate_link
Use this endpoint when an external system will deliver the survey invitation. Pisano returns one personalised survey link for the employee. The external system remains responsible for delivering the link.
Example request body:
{
"customer": {
"email": "employee@example.com",
"external_id": "EMP-12345",
"name": "Jane Doe"
},
"built_in_responses": {
"EmployeeEvent": "Employee Hire",
"Department": "Engineering",
"Location": "Berlin"
},
"options": {
"shorten_url": true
}
}
EmployeeEvent, Department, and Location are example Pisano schema codes. The configured schema codes and data types in the target environment must match the request.
Scheduled CSV and SFTP Integration
SAP Export
Create a scheduled Integration Center integration with:
- SuccessFactors as the source
- SFTP as the destination
- CSV as the output format
Select the employee population, columns, filters, and schedule. Then run a controlled export.
For new Integration Center SFTP configurations, use the SAP supported port and authentication method for the target tenant.
File Type and Delivery Rules
Each exported file should be classified as either a complete snapshot or a delta.
A complete snapshot must not cause previously accepted invitations to be sent again.
A delta requires a clear watermark or recovery rule for late or missed records.
File Contract and Pisano Workflow
The file contract should be agreed before implementation. It should define:
- UTF 8 encoding
- Delimiter
- Headers
- Null handling
- Date and time format
- Time zone
- File completion rule
Example file:
employee_id,email,name,department,programme_period
EMP-10001,jane@example.com,Jane Doe,Engineering,2026Q4
EMP-10002,john@example.com,John Smith,Finance,2026Q4
Pisano Workflow then:
- Downloads the agreed file and parses its rows.
- Maps employee identifiers and contact fields to the correct Pisano customer fields.
- Applies eligibility and suppression rules before survey delivery.
- Uses a completion convention, such as a final rename or completion marker, so Pisano does not read a partially uploaded file.
- Keeps a stable batch or invitation key so a replayed file does not resend previously accepted invitations.
- Confirms the exact file transfer protocol during setup. SFTP and FTPS are different protocols.
Field Mapping
Field mapping should connect the business meaning of each employee attribute with its SuccessFactors source and the corresponding Pisano destination or processing rule.
| Business Meaning | SuccessFactors Source | Pisano Destination or Rule |
| Person identity | personIdExternal or agreed enterprise ID | customer.external_id or recipient keyed attributes. Use one stable person key. |
| Employment identity | userId or employment key | Keep as a processing or context key when needed. Do not assume it equals person identity. |
| Email, phone, name | Selected contact record | Use endpoint specific customer fields. Validate the correct address or number and language. |
| Department and location | Effective dated job or organisation record | Use configured survey context or schema codes or an approved customer profile field. |
| Event or due date | Event type, effective date, and survey offset | Use for eligibility, timing, and duplicate control. |
| Programme period | Agreed campaign cycle | Include in the invitation key so legitimate future surveys remain possible. |
For Link Sharing, use the documented customer identity fields, such as email, phone number, name, and external ID.
Additional HR attributes should be sent only through supported survey context or schema or another validated profile operation.
Security, Monitoring, and Production Checks
The following checks should be considered before production use:
- Transfer only the employee attributes required for the survey use case.
- Use HTTPS or verified SFTP.
- Store Pisano credentials securely.
- Assign an owner for credential rotation and revocation.
- Treat personalised survey links as sensitive information.
- Do not treat URL shortening or URL encoding as a confidentiality control.
- Track API acceptance separately from provider delivery and survey completion.
- Keep stable invitation or batch identifiers to prevent duplicate sends after replay or retry.
- If a request may have reached Pisano but the response is lost, do not resend it blindly. Reconcile the outcome first.
- Test future hires, changed dates, cancellation, rehire, missing contact information, duplicate events or files, and representative data volume.
Decisions Before Implementation
The following decisions should be confirmed before implementation:
- Survey use case, audience, and required delivery timing
- Selected SAP event or scheduled population and the fields available in the tenant
- Employee identity key, repeat invitation rules, and anonymity or confidentiality model
- Pisano environment, survey flow or channel, endpoint contract, and effective rate limits
- Direct REST call versus the customer’s integration platform for authentication, mapping, retry, and delayed dispatch
- For file integration, the exact protocol, SFTP credentials or keys, file completion convention, and complete Pisano Workflow chain
Acceptance Criteria
The integration should meet the following acceptance criteria:
- Only the intended employees are selected.
- The survey is initiated at the agreed time.
- The target Pisano environment accepts the tested Email, SMS, or Link Sharing request.
- Mapped fields have the agreed meaning and data type.
- A replayed event or file does not resend a previously accepted invitation.
- Incomplete files are not processed.
- Failed rows can be recovered in a controlled way.
- API acceptance, provider delivery, and feedback completion can be distinguished operationally.