| name | sap-signavio |
| description | SAP Signavio process management and mining skill. Use when modeling BPMN 2.0 processes, running process mining (Process Intelligence), configuring process KPIs, or integrating Signavio with S/4HANA and SBPA. If the user mentions Signavio, process mining, BPMN modeling, conformance checking, or process transformation, use this skill.
|
| license | MIT |
| metadata | {"author":"SAP Skills Community","version":"1.0.0","last_verified":"2026-03-24"} |
SAP Signavio Process Management & Mining
Related Skills
sap-build-process-automation — Automate processes modeled in Signavio
sap-s4hana-extensibility — Process variants for S/4HANA scenarios
sap-cloud-alm — ALM process monitoring complements Signavio insights
Quick Start
Choose your Signavio component:
| Component | Purpose | Key Activity |
|---|
| Process Manager | BPMN modeling, process repository | Design & publish processes |
| Process Intelligence | Process mining, conformance | Analyze event logs |
| Process Governance | Approval workflows for models | Govern process changes |
| Collaboration Hub | Stakeholder communication | Share & collect feedback |
| Journey Modeler | Customer/employee journeys | Map experience flows |
First API call — List Process Models:
curl -X GET "https://editor.signavio.com/p/revision" \
-H "x-signavio-id: {{SESSION_TOKEN}}" \
-H "Accept: application/json" \
-b "JSESSIONID={{SESSION_COOKIE}}"
Core Concepts
BPMN 2.0 Modeling Standards
| Element | Symbol | Usage |
|---|
| Start Event | ○ | One per process (normal flow) |
| End Event | ◉ | At least one; use multiple for different outcomes |
| User Task | ▭ (person) | Manual human activity |
| Service Task | ▭ (gear) | Automated system call |
| Exclusive Gateway | ◇ (X) | Either/or branching |
| Parallel Gateway | ◇ (+) | Fork/join concurrent paths |
| Intermediate Event | ◎ | Timer, message, signal mid-flow |
| Subprocess | ▭ [+] | Encapsulate reusable process |
Process Intelligence (Mining) Pipeline
- Data extraction — Pull event logs from source systems (S/4HANA, ECC, SuccessFactors)
- Data transformation — Map to Signavio event log format (Case ID, Activity, Timestamp)
- Process discovery — Auto-generate process model from event data
- Conformance checking — Compare discovered vs. designed process
- Root cause analysis — Identify bottlenecks, rework loops, deviations
- KPI monitoring — Track cycle time, throughput, automation rate
Event Log Format
CaseID,Activity,Timestamp,Resource,Variant
PO-001,Create Purchase Requisition,2026-01-15T08:00:00Z,User_A,Standard
PO-001,Approve Purchase Requisition,2026-01-15T09:30:00Z,Manager_B,Standard
PO-001,Create Purchase Order,2026-01-15T10:00:00Z,System,Standard
PO-001,Goods Receipt,2026-01-20T14:00:00Z,User_C,Standard
PO-001,Invoice Receipt,2026-01-22T11:00:00Z,User_D,Standard
PO-001,Payment,2026-01-25T16:00:00Z,System,Standard
Common Patterns
Pattern 1: Signavio API Authentication
import requests
SIGNAVIO_URL = "https://editor.signavio.com"
def authenticate(email, password, tenant_id):
"""Authenticate and get session token."""
resp = requests.post(
f"{SIGNAVIO_URL}/p/login",
data={
"name": email,
"password": password,
"tenant": tenant_id,
"tokenonly": "true"
}
)
resp.raise_for_status()
return {
"token": resp.text.strip(),
"cookie": resp.cookies.get("JSESSIONID")
}
def get_headers(session):
return {
"x-signavio-id": session["token"],
"Accept": "application/json",
"Cookie": f"JSESSIONID={session['cookie']}"
}
Pattern 2: Export BPMN Model
def export_bpmn_xml(session, model_id):
"""Export process model as BPMN 2.0 XML."""
headers = get_headers(session)
resp = requests.get(
f"{SIGNAVIO_URL}/p/revision/{model_id}/bpmn2_0_xml",
headers=headers
)
resp.raise_for_status()
return resp.text
def export_svg(session, model_id):
"""Export process diagram as SVG."""
headers = get_headers(session)
headers["Accept"] = "image/svg+xml"
resp = requests.get(
f"{SIGNAVIO_URL}/p/revision/{model_id}/svg",
headers=headers
)
resp.raise_for_status()
return resp.text
Pattern 3: Process Mining Data Preparation (S/4HANA P2P)
@AbapCatalog.sqlViewName: 'ZV_P2P_EVLOG'
@Analytics: { dataCategory: #FACT }
define view Z_P2P_EVENT_LOG as
select from eban {
cast(banfn as abap.char(20)) as CaseID,
'Create Purchase Requisition' as Activity,
badat as EventTimestamp,
ernam as Resource,
bsart as Variant
}
union all
select from ekko {
cast(ebeln as abap.char(20)) as CaseID,
'Create Purchase Order' as Activity,
aedat as EventTimestamp,
ernam as Resource,
bsart as Variant
}
union all
select from mkpf
inner join mseg on mkpf.mblnr = mseg.mblnr
and mkpf.mjahr = mseg.mjahr {
cast(mseg.ebeln as abap.char(20)) as CaseID,
'Goods Receipt' as Activity,
mkpf.budat as EventTimestamp,
mkpf.usnam as Resource,
mseg.bwart as Variant
}
where mseg.bwart = '101'
Pattern 4: BPMN Best Practices Template
<bpmn:process id="P2P_Standard" name="Procure-to-Pay Standard" isExecutable="true">
<bpmn:startEvent id="Start" name="Purchase Need Identified"/>
<bpmn:userTask id="T1" name="Create Purchase Requisition"/>
<bpmn:userTask id="T2" name="Approve Purchase Requisition"/>
<bpmn:exclusiveGateway id="G1" name="Approval Decision"/>
<bpmn:sequenceFlow id="F_Approved" name="Approved" sourceRef="G1" targetRef="T3"/>
<bpmn:sequenceFlow id="F_Rejected" name="Rejected" sourceRef="G1" targetRef="T_Reject"/>
<bpmn:serviceTask id="T3" name="Create Purchase Order"/>
<bpmn:userTask id="T4" name="Confirm Goods Receipt"/>
<bpmn:serviceTask id="T5" name="Process Invoice"/>
<bpmn:serviceTask id="T6" name="Execute Payment"/>
<bpmn:endEvent id="End_Success" name="Payment Completed"/>
<bpmn:endEvent id="End_Rejected" name="Requisition Rejected"/>
</bpmn:process>
Pattern 5: Process KPI Configuration
{
"kpis": [
{
"name": "Cycle Time",
"description": "Average time from requisition to payment",
"formula": "AVG(EndTimestamp - StartTimestamp)",
"target": "< 15 days",
"dimension": "days"
},
{
"name": "First-Time-Right Rate",
"description": "Percentage of cases without rework loops",
"formula": "COUNT(cases_no_rework) / COUNT(all_cases) * 100",
"target": "> 85%",
"dimension": "percentage"
},
{
"name": "Automation Rate",
"description": "Activities executed by system vs. total",
"formula": "COUNT(system_activities) / COUNT(all_activities) * 100",
"target": "> 60%",
"dimension": "percentage"
},
{
"name": "Maverick Buying Rate",
"description": "POs created without prior requisition",
"formula": "COUNT(po_without_pr) / COUNT(all_po) * 100",
"target": "< 5%",
"dimension": "percentage"
}
]
}
Error Catalog
| Error | Message | Root Cause | Fix |
|---|
401 | Session expired | Token timeout (default 30 min) | Re-authenticate; implement token refresh |
403 | Access denied | Missing workspace permissions | Check Signavio role assignments |
404 | Model not found | Wrong revision ID or deleted model | Use directory API to get current revision |
409 | Conflict | Concurrent model edit | Reload model, merge changes manually |
| Mining: No data | Empty process graph | Event log has no matching cases | Verify CaseID linking across activities |
| Mining: Spaghetti | Too many variants | Missing activity normalization | Standardize activity names; filter outliers |
| Export: Timeout | Large model export failed | Model too complex (>200 elements) | Split into subprocesses; export parts |
| Import: Invalid BPMN | Schema validation error | Non-standard BPMN extensions | Remove vendor-specific extensions before import |
Performance Tips
- Event log size — Keep under 10M events per analysis; sample or partition by date range
- Activity normalization — Standardize naming before import; "Create PO" and "PO Creation" = same activity
- Case linking — Use document flow tables (VBFA, EKBE) to link cross-module cases
- Incremental mining — Schedule delta extracts (changed since last run) for ongoing monitoring
- Model complexity — Keep BPMN models under 50 elements per diagram; use subprocesses for detail
- Variant analysis — Focus on top 20 variants (usually 80%+ of cases); group rare variants as "Other"
- Collaboration Hub — Publish only approved models; use governance workflow for version control
Gotchas
- Signavio vs. BPA: Signavio models are design-time reference; SAP Build Process Automation is runtime execution — they complement, not replace each other
- BPMN compliance: Signavio enforces strict BPMN 2.0; models from other tools may need cleanup before import
- Event timestamp granularity: Second-level timestamps required for accurate mining; day-level creates artificial parallelism
- Process Intelligence licensing: Mining capabilities require separate PI license; Process Manager alone doesn't include mining
- S/4HANA connector: Pre-built extractors exist for O2C, P2P, AP — custom processes need manual event log setup