// GENERATED from rippling-main/app/hub_platform/automation/action_registry/static_actions/registry.py. // Registry SHA-256: c8580394a9614e51d073c021f8ef1b4656795cb607379e787961493635de4ac9 // Regenerate with: node scripts/generate-workflow-actions.cjs [path/to/rippling-main] // These are snapshot authoring hints; runtime availability and payload validity remain role/company-scoped. export interface WorkflowActionPayloads { AccrueLeave: { balance_action_type: 'ADD_BALANCE' | 'DEDUCT_BALANCE'; balance_increment: number; balance_unit: 'HOURS' | 'DAYS' | 'WEEKS'; pto_type: 'LEAVE_POLICY' | 'COMPANY_LEAVE_TYPE' | (string & {}); recipients: Array; leave_policy?: unknown; company_leave_type?: unknown; }; AssignQueuedTicket: { strategy?: 'ROUND_ROBIN'; ticket: Record & { type?: { elementType: 'OBJECT_ID'; iterableType?: 'OBJECT'; objectRqlModelName?: string }; variable?: string; }; timeout?: number; }; AssignReview: { cycle_id: string; reviewees: Array; reviewers: Array; is_reviewer_relative_to_reviewee?: unknown; }; AssignVariable: { value: { rqlFormula: string; rqlLabelMap?: {} }; variable: string }; CreateAppNotification: { description: string; dueDate: null | { date: string } | { daysFromNow: number }; recipients: Array; subject: string; task_configuration?: 'ASSIGN_SEPARATE_TASKS' | 'ASSIGN_SHARED_TASK'; }; CreateGcalEvent: { all_day_event?: boolean; attendees: Array; description: string; end: { date: string; time: string }; guestsCanInviteOthers?: boolean; guestsCanModify?: boolean; guestsCanSeeOtherGuests?: boolean; organizer: Array; organizer_type: 'WORKFLOW_OWNER' | 'SUPERGROUP' | (string & {}); recurrence_count?: number; recurrence_frequency?: 'null' | 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'YEARLY' | (string & {}); recurrence_has_end?: boolean; spoke_owner?: string; start: { date: string; time: string }; timezone: string; title: string; transparency?: 'opaque' | 'transparent'; visibility?: 'default' | 'public' | 'private'; }; CreateTicket: { ticket_api_name: string }; CustomCode: { code: string; output_schema?: {}; parameters?: {} }; DeleteCustomObjectRecord: { customObjectAPIName: string; recordID: string }; DirectTransformationRefreshAction: { include_upstream?: boolean; transformation_api_names: Array }; EvaluateRQL: { queryType: 'SELECTION' | 'QUERY' | (string & {}); rqlModelName?: unknown; rqlCondition?: unknown; dataType?: unknown; }; ExecuteAITask: { attachments?: Array< | { fileName: string; mimeType: string; s3URL: string; sizeBytes?: number; source: 'uploaded_file' } | { source: 'workflow_variable'; value: string } >; output_schema?: {}; prompt: string; reply_in_slack_thread?: boolean; }; ForLoop: { loopType: 'ITERATIONS' | 'LIST' | (string & {}); list?: unknown }; HoldAccountTargetBalance: { deficit_source_account_id: string; deficit_source_account_type: 'RBK_FIN_ACCOUNT' | 'CONNECTED_BANK_ACCOUNT'; description?: string | null; target_balance_currency_code: string; target_balance_value: number; target_fin_account_id: string; }; IfElse: { condition: { baseObject?: string; conditionBuildingMode?: string; conditionsTree?: {}; rql?: string }; }; MakePayment: { apply_cap: boolean; description: string; payment_amount: number; recipients: Array; earning_type?: unknown; }; PushStartDate: { daysToPush: number; recipients: Array; trigger?: unknown; qualifying_conditions_rql?: unknown; }; RouteToQueue: { routing: Array<{ condition?: { baseObject?: string; conditionBuildingMode?: string; conditionsTree?: {}; rql?: string }; description?: string; name?: string; target?: string; }>; ticket: Record & { type?: { elementType: 'OBJECT_ID'; iterableType?: 'OBJECT'; objectRqlModelName?: string }; variable?: string; }; }; RunAgent: { agent_id?: string | null; agent_type?: 'REGISTERED_AGENT' | 'RIPPLING_AI'; mode?: 'NEW_SESSION' | 'EXISTING_SESSION'; prompt: string; role_id?: string | null; session_id?: string | null; }; RunAsyncFunction: { function_code?: string; function_id: string; function_step_mock_configuration?: { egress_mocks?: Array<{ method?: string; response?: { body?: string; headers?: Record; status?: number }; url: string; }>; enabled?: boolean; unmatched_request_policy?: string; } | null; output_schema: Record; parameters: Record; }; RunFunction: { function_code?: string; function_id: string; function_step_mock_configuration?: { egress_mocks?: Array<{ method?: string; response?: { body?: string; headers?: Record; status?: number }; url: string; }>; enabled?: boolean; unmatched_request_policy?: string; } | null; output_schema: Record; parameters: Record; }; SendDigestEmail: { body: string; intro_message: string; schedule_day: 'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT' | 'SUN'; schedule_time: string; schedule_type: 'DAILY' | 'WEEKLY' | (string & {}); send_to: { to?: { emailType?: | 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email'; externalEmails?: Array; supergroup?: Array; }; }; subject: string; timezone: string; }; SendDocument: { document: string; recipients: Array }; SendEmail: { action_type: 'INDIVIDUAL_EMAILS' | 'GROUP_EMAIL'; attachments?: Array<{ fileName: string; mimeType: string; s3URL: string }>; body: string; send_to: { bcc?: { emailType?: | 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email'; externalEmails?: Array; supergroup?: Array; }; cc?: { emailType?: | 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email'; externalEmails?: Array; supergroup?: Array; }; to?: { emailType?: | 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email'; externalEmails?: Array; supergroup?: Array; }; }; subject: string; }; SendHTTPRequest: { customHTTPHeaders?: Record; expectedResponseSchema?: {}; method?: 'POST' | 'GET' | 'PUT' | 'PATCH' | 'DELETE'; payload?: Record; queryParams?: Record; url: string; }; SendPushNotification: { header: string; message: string; recipients: Array }; SendReportEmail: { add_role_referenced_id_column?: boolean; csv_quoting?: 1 | 0 | 2 | 3; currency_fields?: 'WITH_CURRENCY_TYPE' | 'WITHOUT_CURRENCY_TYPE'; date_and_time_formatting?: 'ISO_FORMAT' | 'LOCALE_FORMAT'; file_type: 'EXCEL' | 'CSV' | (string & {}); report_id: string; run_report_perms: 'RECIPIENT' | 'WORKFLOW_OWNER'; send_to: { to?: { emailType?: | 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email'; externalEmails?: Array; supergroup?: Array; }; }; show_sub_totals?: boolean; time_zones?: 'UTC' | 'PRESERVE_TZ' | 'VIEWER_LOCALE'; }; SendReportSFTP: { add_role_referenced_id_column?: boolean; authentication_type: 'PASSWORD' | 'SSH_KEY' | (string & {}); csv_quoting?: 1 | 0 | 2 | 3; currency_fields?: 'WITH_CURRENCY_TYPE' | 'WITHOUT_CURRENCY_TYPE'; date_and_time_formatting?: 'ISO_FORMAT' | 'LOCALE_FORMAT'; file_name?: string; file_path: string; file_suffix?: 'DEFAULT_FORMAT' | 'EPOCH_FORMAT'; file_type: 'EXCEL' | 'CSV' | (string & {}); host_name: string; password: string; port?: number; private_key: string; private_key_passphrase?: string; report_id: string; show_sub_totals?: boolean; time_zones?: 'UTC' | 'PRESERVE_TZ' | 'VIEWER_LOCALE'; user_name: string; }; SendSlack: { action_type: 'SINGLE_DIRECT_MESSAGE' | 'GROUP_DIRECT_MESSAGE' | 'PUBLIC_CHANNEL_MESSAGE' | (string & {}); body: string; channel?: unknown; recipients?: unknown; }; SendSMS: { message: string; recipients: Array }; SendSurvey: { body: string; expiryDays?: number; recipients: Array; subject: string; surveyID: string; }; SendTeams: { action_type: 'PUBLIC_CHANNEL_MESSAGE' | 'SINGLE_DIRECT_MESSAGE' | (string & {}); message: string; team_id?: unknown; channel?: unknown; recipients?: unknown; }; SendToQueue: { queue: string; ticket: Record & { type?: { elementType: 'OBJECT_ID'; iterableType?: 'OBJECT'; objectRqlModelName?: string }; variable?: string; }; }; Sleep: { sleepTime: number; timeUnit: 'SECONDS' | 'MINUTES' | 'HOURS' | 'DAYS' }; SwitchCase: { conditions: Array<{ baseObject?: string; conditionBuildingMode?: string; conditionsTree?: {}; rql: string; }>; }; UpdateCustomObjectRecord: { customObjectAPIName: string; record?: unknown }; UpsertCustomObject: { customObjectAPIName: string; record?: unknown }; } export const WORKFLOW_ACTION_IDS = [ 'AccrueLeave', 'AssignQueuedTicket', 'AssignReview', 'AssignVariable', 'CreateAppNotification', 'CreateGcalEvent', 'CreateTicket', 'CustomCode', 'DeleteCustomObjectRecord', 'DirectTransformationRefreshAction', 'EvaluateRQL', 'ExecuteAITask', 'ForLoop', 'HoldAccountTargetBalance', 'IfElse', 'MakePayment', 'PushStartDate', 'RouteToQueue', 'RunAgent', 'RunAsyncFunction', 'RunFunction', 'SendDigestEmail', 'SendDocument', 'SendEmail', 'SendHTTPRequest', 'SendPushNotification', 'SendReportEmail', 'SendReportSFTP', 'SendSlack', 'SendSMS', 'SendSurvey', 'SendTeams', 'SendToQueue', 'Sleep', 'SwitchCase', 'UpdateCustomObjectRecord', 'UpsertCustomObject', ] as const;