Workflow
Workflow
Flujo automatizado compuesto por pasos conectados.
Identificador único del workflow.
wf_1B2M2Y8AsgTpgAmY7PhCfgNombre del workflow.
Flujo de revisión legal DSRDescripción del workflow.
Orquesta revisión legal y transición de estadoEstado de publicación del workflow.
Possible values: [draft, published]
draftCantidad total de ejecuciones históricas del workflow.
42created_by objectnullable
Identificador único del usuario de empresa que creó el workflow.
cusr_1B2M2Y8AsgTpgAmY7PhCfgNombre del usuario de empresa.
Catalina SepúlvedaEmail del usuario de empresa.
catalina@company.comsettings object
failure_alerts object
Envía un correo cuando una ejecución del workflow termina en estado failed.
falseID del paso inicial. Debe apuntar a un bloque trigger.
66f01d4f1d0b5a4f7a9c1111steps object[]
Pasos que componen el workflow.
- WorkflowStepActionBlock
- WorkflowStepAssignDsrActionBlock
- WorkflowStepConditionBlock
- WorkflowStepFilterBlock
- WorkflowStepSplitBlock
- WorkflowStepJoinBlock
- WorkflowStepSwitchBlock
- WorkflowStepDelayedActionBlock
- WorkflowStepDsrStateTransitionActionBlock
- WorkflowStepEmailActionBlock
- WorkflowStepEventTriggerBlock
- WorkflowStepFormBlock
- WorkflowStepHttpRequestActionBlock
- WorkflowStepProcessDsrTriggerBlock
- WorkflowStepScheduledTriggerBlock
- WorkflowStepTriggerBlock
- WorkflowStepWebhookTriggerBlock
ID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111ActionBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00ZID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111AssignDsrActionBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00Zcusr_1B2M2Y8AsgTpgAmY7PhCfgID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111ConditionBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00Zconditions object[]required
Condiciones de solo lectura. En el request, envía conditions_attributes.
66f01d4f1d0b5a4f7a9c6666Expresión evaluable sobre metadata del contexto. Soporta operadores ==, !=, >, >=, <, <=, contains, not contains, starts with, ends with, empty, not empty; y rutas anidadas con notación de punto (ej. person.profile.locale).
legal_review_approved == truePaso destino cuando la condición es verdadera.
66f01d4f1d0b5a4f7a9c4444false66f01d4f1d0b5a4f7a9c5555ID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111FilterBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00Zcondition objectrequired
Condición de solo lectura. En el request, envía condition_attributes.
66f01d4f1d0b5a4f7a9c6666Expresión evaluable sobre metadata del contexto. Soporta operadores ==, !=, >, >=, <, <=, contains, not contains, starts with, ends with, empty, not empty; y rutas anidadas con notación de punto (ej. person.profile.locale).
legal_review_approved == truePaso destino cuando la condición es verdadera.
66f01d4f1d0b5a4f7a9c4444falseID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111SplitBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00Zbranch_slots object[]
Slots de ramificación. Si los omites al crear el bloque, la API genera dos slots con ID y step_id: null. Para publicar, conecta al menos dos ramas asignando sus step_id.
66f01d4f1d0b5a4f7a9c444466f01d4f1d0b5a4f7a9c2222ID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111JoinBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00Z66f01d4f1d0b5a4f7a9c3333ID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111SwitchBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00Zconditions object[]required
Condiciones de solo lectura. En el request, envía conditions_attributes.
66f01d4f1d0b5a4f7a9c6666Expresión evaluable sobre metadata del contexto. Soporta operadores ==, !=, >, >=, <, <=, contains, not contains, starts with, ends with, empty, not empty; y rutas anidadas con notación de punto (ej. person.profile.locale).
legal_review_approved == truePaso destino cuando la condición es verdadera.
66f01d4f1d0b5a4f7a9c4444false66f01d4f1d0b5a4f7a9c5555ID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111DelayedActionBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00ZPossible values: >= 1 and <= 524160
10approval.delay_valuePossible values: [minutes, hours, days, weeks]
daysID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111DsrStateTransitionActionBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00ZPossible values: [resolve]
resolvePossible values: [approved, partially_approved, rejected]
approvedFalta validar {{data_subject_request.contact_information.email}}Hola {{data_subject_request.contact_information.email}}, tu solicitud fue resuelta.ID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111EmailActionBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00Zlegal@company.comRevisión pendienteRevisa la solicitud pendienteID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111EventTriggerBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00ZSiempre retorna {}. EventTriggerBlock no acepta settings; configúralo con event_name_pattern.
{}Nombre exacto del evento. No admite wildcards ni expresiones regulares, debe contener al menos un carácter distinto de espacio y no puede incluir *.
Possible values: Value must match regular expression ^(?=.*\S)[^*]*$
data_subject_request.createdID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111FormBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00ZConfirm legal reviewInternal reviewer handoffCollect an internal decision before continuing.Send formPossible values: [specific_company_user, dsr_assignee]
specific_company_usercusr_1B2M2Y8AsgTpgAmY7PhCfgDestinatarios del formulario. El campo singular refleja el primero.
["cusr_1B2M2Y8AsgTpgAmY7PhCfg"]Con any, la primera respuesta completa el paso; con all, el paso espera la respuesta de todos los destinatarios.
Possible values: [any, all]
anyfields object[]required
Clave estable para almacenar la respuesta del campo.
decisionEtiqueta visible del campo en el formulario.
DecisionCon file, la respuesta viaja como objeto {data_uri, filename} (o el data URI directo)
y acepta los mismos formatos y límite de tamaño que la evidencia del caso.
Possible values: [text, textarea, boolean, select, file]
selecttrueOpciones permitidas cuando type es select.
["approve","reject"]ID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111HttpRequestActionBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00Zhttps://api.example.com/orders/{{order.id}}No distingue mayúsculas y minúsculas. Si lo omites, la API usa POST.
Possible values: [GET, POST, PUT, PATCH, DELETE]
POSTPOSTheaders object[]
Nombre del header.
AuthorizationValor del header.
Bearer {{token}}{"status":"approved"}Possible values: >= 1 and <= 120
15expected_response_schema object[]
Ruta del campo en el payload, con notación de punto para campos anidados. Ítems sin este campo se descartan silenciosamente.
reviewer.idTipo esperado del campo. Si se omite o es vacío, se usa 'any'.
Possible values: [string, integer, number, boolean, object, array, any]
anystringIndica si el campo es obligatorio para disparar el workflow. Si se omite, se usa true.
truetrueresponse_extractors object[]
Ruta del campo en el body de respuesta JSON.
result.ticket_idNombre de la variable extraída en metadata.
ticket_idPossible values: [string, integer, number, boolean, object, array, any]
stringIndica si el valor extraído es obligatorio.
trueID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111ProcessDsrTriggerBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00Zsettings object
ID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111ScheduledTriggerBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00ZSiempre retorna {}. ScheduledTriggerBlock no acepta settings; usa frequency, time_of_day, weekday, day_of_month y timezone.
{}Possible values: [daily, weekly, monthly]
Hora del día en formato HH:MM usando incrementos de 10 minutos.
09:00Possible values: [monday, tuesday, wednesday, thursday, friday, saturday, sunday]
Possible values: >= 1 and <= 31
America/SantiagoID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111TriggerBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00Zsettings object
ID del paso (Mongoid embedded document id).
66f01d4f1d0b5a4f7a9c1111WebhookTriggerBlockSiguiente paso para secuencia lineal.
66f01d4f1d0b5a4f7a9c22222024-03-21T10:00:00Z2024-03-21T10:05:00ZSiempre retorna {}. WebhookTriggerBlock no acepta settings; usa expected_payload_schema para definir el payload esperado.
{}Token público generado para recibir llamadas webhook.
whk_YWJjMTIzZXhhbXBsZV90b2tlbgexpected_payload_schema object[]
Campos del payload esperados para disparar el workflow.
Ruta del campo en el payload, con notación de punto para campos anidados. Ítems sin este campo se descartan silenciosamente.
reviewer.idTipo esperado del campo. Si se omite o es vacío, se usa 'any'.
Possible values: [string, integer, number, boolean, object, array, any]
anystringIndica si el campo es obligatorio para disparar el workflow. Si se omite, se usa true.
truetrue2024-03-21T10:00:00Z2024-03-21T10:05:00Z{
"id": "wf_1B2M2Y8AsgTpgAmY7PhCfg",
"name": "Flujo de revisión legal DSR",
"description": "Orquesta revisión legal y transición de estado",
"status": "draft",
"runs_count": 42,
"created_by": {
"id": "cusr_1B2M2Y8AsgTpgAmY7PhCfg",
"name": "Catalina Sepúlveda",
"email": "catalina@company.com"
},
"settings": {
"failure_alerts": {
"enabled": false
}
},
"starting_step_id": "66f01d4f1d0b5a4f7a9c1111",
"steps": [
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "ActionBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z"
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "AssignDsrActionBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"assignee_company_user_token": "cusr_1B2M2Y8AsgTpgAmY7PhCfg"
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "ConditionBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"conditions": [
{
"id": "66f01d4f1d0b5a4f7a9c6666",
"expression": "legal_review_approved == true",
"step_id": "66f01d4f1d0b5a4f7a9c4444",
"_destroy": false
}
],
"else_step_id": "66f01d4f1d0b5a4f7a9c5555"
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "FilterBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"condition": {
"id": "66f01d4f1d0b5a4f7a9c6666",
"expression": "legal_review_approved == true",
"step_id": "66f01d4f1d0b5a4f7a9c4444",
"_destroy": false
}
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "SplitBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"branch_slots": [
{
"id": "66f01d4f1d0b5a4f7a9c4444",
"step_id": "66f01d4f1d0b5a4f7a9c2222"
}
]
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "JoinBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"split_step_id": "66f01d4f1d0b5a4f7a9c3333"
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "SwitchBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"conditions": [
{
"id": "66f01d4f1d0b5a4f7a9c6666",
"expression": "legal_review_approved == true",
"step_id": "66f01d4f1d0b5a4f7a9c4444",
"_destroy": false
}
],
"else_step_id": "66f01d4f1d0b5a4f7a9c5555"
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "DelayedActionBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"delay_minutes": 10,
"delay_variable_path": "approval.delay_value",
"delay_variable_unit": "days"
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "DsrStateTransitionActionBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"action": "resolve",
"terminal_state": "approved",
"rejection_reason_template": "Falta validar {{data_subject_request.contact_information.email}}",
"email_content_template": "Hola {{data_subject_request.contact_information.email}}, tu solicitud fue resuelta."
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "EmailActionBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"to": "legal@company.com",
"subject": "Revisión pendiente",
"body": "Revisa la solicitud pendiente"
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "EventTriggerBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"settings": {},
"event_name_pattern": "data_subject_request.created"
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "FormBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"title": "Confirm legal review",
"description": "Internal reviewer handoff",
"form_description": "Collect an internal decision before continuing.",
"submit_button_label": "Send form",
"recipient_type": "specific_company_user",
"recipient_company_user_token": "cusr_1B2M2Y8AsgTpgAmY7PhCfg",
"recipient_company_user_tokens": [
"cusr_1B2M2Y8AsgTpgAmY7PhCfg"
],
"completion_rule": "any",
"fields": [
{
"key": "decision",
"label": "Decision",
"type": "select",
"required": true,
"options": [
"approve",
"reject"
]
}
]
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "HttpRequestActionBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"url": "https://api.example.com/orders/{{order.id}}",
"method": "POST",
"headers": [
{
"key": "Authorization",
"value": "Bearer {{token}}"
}
],
"body": "{\"status\":\"approved\"}",
"timeout_seconds": 15,
"expected_response_schema": [
{
"path": "reviewer.id",
"type": "string",
"required": true
}
],
"response_extractors": [
{
"path": "result.ticket_id",
"key": "ticket_id",
"type": "string",
"required": true
}
]
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "ProcessDsrTriggerBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"settings": {}
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "ScheduledTriggerBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"settings": {},
"frequency": "daily",
"time_of_day": "09:00",
"weekday": "monday",
"day_of_month": 0,
"timezone": "America/Santiago"
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "TriggerBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"settings": {}
},
{
"id": "66f01d4f1d0b5a4f7a9c1111",
"type": "WebhookTriggerBlock",
"next_step_id": "66f01d4f1d0b5a4f7a9c2222",
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z",
"settings": {},
"public_webhook_token": "whk_YWJjMTIzZXhhbXBsZV90b2tlbg",
"expected_payload_schema": [
{
"path": "legal_review_approved",
"type": "boolean",
"required": true
},
{
"path": "reviewer.id",
"type": "string",
"required": true
}
]
}
],
"created_at": "2024-03-21T10:00:00Z",
"updated_at": "2024-03-21T10:05:00Z"
}