import { APIResource } from "../core/resource.js"; import { APIPromise } from "../core/api-promise.js"; import { RequestOptions } from "../internal/request-options.js"; /** * Execute workflow actions like sending emails, Slack messages, and notifications */ export declare class WorkflowActionExecutions extends APIResource { /** * Execute a workflow action */ create(body: WorkflowActionExecutionCreateParams, options?: RequestOptions): APIPromise; } export interface WorkflowActionExecutionCreateResponse { /** * Result of the workflow action execution */ result: unknown; } export type WorkflowActionExecutionCreateParams = WorkflowActionExecutionCreateParams.SendEmailActionRequest | WorkflowActionExecutionCreateParams.SendSlackActionRequest | WorkflowActionExecutionCreateParams.CreateAppNotificationActionRequest | WorkflowActionExecutionCreateParams.SendSMSActionRequest | WorkflowActionExecutionCreateParams.SendPushNotificationActionRequest | WorkflowActionExecutionCreateParams.SendHTTPRequestActionRequest | WorkflowActionExecutionCreateParams.DeleteCustomObjectRecordActionRequest | WorkflowActionExecutionCreateParams.SendSurveyActionRequest | WorkflowActionExecutionCreateParams.EvaluateRqlActionRequest | WorkflowActionExecutionCreateParams.UpsertCustomObjectActionRequest | WorkflowActionExecutionCreateParams.UpdateCustomObjectRecordActionRequest | WorkflowActionExecutionCreateParams.CreateGcalEventActionRequest | WorkflowActionExecutionCreateParams.SendTeamsActionRequest | WorkflowActionExecutionCreateParams.AssignReviewActionRequest | WorkflowActionExecutionCreateParams.SendReportSftpActionRequest | WorkflowActionExecutionCreateParams.EnrollIntoCourseActionRequest | WorkflowActionExecutionCreateParams.EnrollIntoLearningPathActionRequest | WorkflowActionExecutionCreateParams.SendReportEmailActionRequest | WorkflowActionExecutionCreateParams.SendDocumentActionRequest | WorkflowActionExecutionCreateParams.AccrueLeaveActionRequest | WorkflowActionExecutionCreateParams.MakePaymentActionRequest | WorkflowActionExecutionCreateParams.RunQueryActionRequest; export declare namespace WorkflowActionExecutionCreateParams { interface SendEmailActionRequest { action_type: 'send_email'; /** * An action that sends an email. */ payload: SendEmailActionRequest.Payload; workflow_definition_id: string; } namespace SendEmailActionRequest { /** * An action that sends an email. */ interface Payload { /** * Email mode */ action_type: 'INDIVIDUAL_EMAILS' | 'GROUP_EMAIL'; body: string; send_to: Payload.SendTo; subject: string; /** * Maximum total attachment size: 20MB */ attachments?: Array | null; } namespace Payload { interface SendTo { bcc?: SendTo.Recipient1 | SendTo.Recipient2 | null; cc?: SendTo.Recipient1 | SendTo.Recipient2 | null; to?: SendTo.Recipient1 | SendTo.Recipient2 | null; } namespace SendTo { interface Recipient1 { supergroup: string; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; externalEmails?: Array | null; } interface Recipient2 { externalEmails: Array; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; supergroup?: string | null; } interface Recipient1 { supergroup: string; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; externalEmails?: Array | null; } interface Recipient2 { externalEmails: Array; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; supergroup?: string | null; } interface Recipient1 { supergroup: string; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; externalEmails?: Array | null; } interface Recipient2 { externalEmails: Array; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; supergroup?: string | null; } } interface Attachment { fileName: string; } } } interface SendSlackActionRequest { action_type: 'send_slack'; /** * An action that sends a slack message */ payload: SendSlackActionRequest.SendSlackSingleDirectMessagePayload | SendSlackActionRequest.SendSlackGroupDirectMessagePayload | SendSlackActionRequest.SendSlackPublicChannelMessagePayload | SendSlackActionRequest.SendSlackPrivateChannelMessagePayload; workflow_definition_id: string; } namespace SendSlackActionRequest { /** * An action that sends a slack message */ interface SendSlackSingleDirectMessagePayload { action_type: 'SINGLE_DIRECT_MESSAGE'; /** * Advanced formatting (Slack mentions, links, and channels) is supported through * Slack * markup options */ body: string; recipients: string; } /** * An action that sends a slack message */ interface SendSlackGroupDirectMessagePayload { action_type: 'GROUP_DIRECT_MESSAGE'; /** * Advanced formatting (Slack mentions, links, and channels) is supported through * Slack * markup options */ body: string; recipients: string; } /** * An action that sends a slack message */ interface SendSlackPublicChannelMessagePayload { action_type: 'PUBLIC_CHANNEL_MESSAGE'; /** * Advanced formatting (Slack mentions, links, and channels) is supported through * Slack * markup options */ body: string; channel: string; } /** * An action that sends a slack message */ interface SendSlackPrivateChannelMessagePayload { action_type: 'PRIVATE_CHANNEL_MESSAGE'; /** * Advanced formatting (Slack mentions, links, and channels) is supported through * Slack * markup options */ body: string; channel: string; } } interface CreateAppNotificationActionRequest { action_type: 'create_app_notification'; /** * Assign tasks to configurable recipients */ payload: CreateAppNotificationActionRequest.Payload; workflow_definition_id: string; } namespace CreateAppNotificationActionRequest { /** * Assign tasks to configurable recipients */ interface Payload { description: string; recipients: string; subject: string; dueDate?: Payload.DueDate | Payload.DueDate1 | null; } namespace Payload { interface DueDate { date: string; } interface DueDate1 { daysFromNow: number | string; } } } interface SendSMSActionRequest { action_type: 'send_sms'; /** * An action that sends a text message. */ payload: SendSMSActionRequest.Payload; workflow_definition_id: string; } namespace SendSMSActionRequest { /** * An action that sends a text message. */ interface Payload { /** * Maximum characters: 500 */ message: string; recipients: string; } } interface SendPushNotificationActionRequest { action_type: 'send_push_notification'; /** * Sends a push notification to mobile devices. Recipients require the Rippling * mobile app to receive this notification. */ payload: SendPushNotificationActionRequest.Payload; workflow_definition_id: string; } namespace SendPushNotificationActionRequest { /** * Sends a push notification to mobile devices. Recipients require the Rippling * mobile app to receive this notification. */ interface Payload { /** * Maximum character count: 65 */ header: string; /** * In many devices, your description will be truncated after 178 characters. */ message: string; recipients: string; } } interface SendHTTPRequestActionRequest { action_type: 'send_http_request'; /** * An action that sends an HTTP request with a JSON payload. The following keys - * Authorization, Api-Key, and Token - in URL query parameters and custom headers * are masked due to their sensitive nature */ payload: SendHTTPRequestActionRequest.Payload; workflow_definition_id: string; } namespace SendHTTPRequestActionRequest { /** * An action that sends an HTTP request with a JSON payload. The following keys - * Authorization, Api-Key, and Token - in URL query parameters and custom headers * are masked due to their sensitive nature */ interface Payload { url: string; customHTTPHeaders?: { [key: string]: string; } | null; expectedResponseSchema?: unknown | null; /** * HTTP method */ method?: 'POST' | 'GET' | 'PUT' | 'PATCH' | 'DELETE' | null; payload?: unknown | null; queryParams?: { [key: string]: string; } | null; } } interface DeleteCustomObjectRecordActionRequest { action_type: 'delete_custom_object_record'; /** * An action that deletes a custom object record. */ payload: DeleteCustomObjectRecordActionRequest.Payload; workflow_definition_id: string; } namespace DeleteCustomObjectRecordActionRequest { /** * An action that deletes a custom object record. */ interface Payload { customObjectAPIName: string; recordID: string; } } interface SendSurveyActionRequest { action_type: 'send_survey'; /** * An action that sends a survey. */ payload: SendSurveyActionRequest.Payload; workflow_definition_id: string; } namespace SendSurveyActionRequest { /** * An action that sends a survey. */ interface Payload { body: string; recipients: string; subject: string; surveyID: string; expiryDays?: number | string | null; } } interface EvaluateRqlActionRequest { action_type: 'evaluate_rql'; /** * Query and retrieve records from Rippling. Pick a Query mode: Basic (SELECTION) * returns matching record IDs for a chosen Rippling model via a wizard-built * filter; Advanced (QUERY) evaluates a free-form RQL formula and returns a value * of any RQL type (scalar or list). Always express filtering inside this action * (via the SELECTION filter wizard or the QUERY formula) — do not fetch records * and filter in code downstream. */ payload: EvaluateRqlActionRequest.EvaluateRqlSelectionPayload | EvaluateRqlActionRequest.EvaluateRqlQueryPayload; workflow_definition_id: string; } namespace EvaluateRqlActionRequest { /** * Query and retrieve records from Rippling. Pick a Query mode: Basic (SELECTION) * returns matching record IDs for a chosen Rippling model via a wizard-built * filter; Advanced (QUERY) evaluates a free-form RQL formula and returns a value * of any RQL type (scalar or list). Always express filtering inside this action * (via the SELECTION filter wizard or the QUERY formula) — do not fetch records * and filter in code downstream. */ interface EvaluateRqlSelectionPayload { queryType: 'SELECTION'; rqlModelName?: string | null; } /** * Query and retrieve records from Rippling. Pick a Query mode: Basic (SELECTION) * returns matching record IDs for a chosen Rippling model via a wizard-built * filter; Advanced (QUERY) evaluates a free-form RQL formula and returns a value * of any RQL type (scalar or list). Always express filtering inside this action * (via the SELECTION filter wizard or the QUERY formula) — do not fetch records * and filter in code downstream. */ interface EvaluateRqlQueryPayload { queryType: 'QUERY'; /** * Data type */ dataType?: 'STRING' | 'NUMBER' | 'BOOLEAN' | 'OBJECT_ID' | 'DATE' | 'DATETIME' | null; isAList?: boolean | null; rqlFormula?: EvaluateRqlQueryPayload.RqlFormula | null; } namespace EvaluateRqlQueryPayload { interface RqlFormula { rqlFormula?: string | null; } } } interface UpsertCustomObjectActionRequest { action_type: 'upsert_custom_object'; /** * An action that creates a custom object record. */ payload: UpsertCustomObjectActionRequest.Payload; workflow_definition_id: string; } namespace UpsertCustomObjectActionRequest { /** * An action that creates a custom object record. */ interface Payload { customObjectAPIName: string; } } interface UpdateCustomObjectRecordActionRequest { action_type: 'update_custom_object_record'; /** * An action that updates a custom object record. */ payload: UpdateCustomObjectRecordActionRequest.Payload; workflow_definition_id: string; } namespace UpdateCustomObjectRecordActionRequest { /** * An action that updates a custom object record. */ interface Payload { customObjectAPIName: string; } } interface CreateGcalEventActionRequest { action_type: 'create_gcal_event'; /** * This action will create a Google Calendar event with the specified organizer and * attendees */ payload: CreateGcalEventActionRequest.CreateGcalEventWorkflowOwnerNullPayload | CreateGcalEventActionRequest.CreateGcalEventWorkflowOwnerDailyPayload | CreateGcalEventActionRequest.CreateGcalEventWorkflowOwnerWeeklyPayload | CreateGcalEventActionRequest.CreateGcalEventWorkflowOwnerMonthlyPayload | CreateGcalEventActionRequest.CreateGcalEventWorkflowOwnerYearlyPayload | CreateGcalEventActionRequest.CreateGcalEventSupergroupNullPayload | CreateGcalEventActionRequest.CreateGcalEventSupergroupDailyPayload | CreateGcalEventActionRequest.CreateGcalEventSupergroupWeeklyPayload | CreateGcalEventActionRequest.CreateGcalEventSupergroupMonthlyPayload | CreateGcalEventActionRequest.CreateGcalEventSupergroupYearlyPayload; workflow_definition_id: string; } namespace CreateGcalEventActionRequest { /** * This action will create a Google Calendar event with the specified organizer and * attendees */ interface CreateGcalEventWorkflowOwnerNullPayload { attendees: string; description: string; end: CreateGcalEventWorkflowOwnerNullPayload.End; organizer_type: 'WORKFLOW_OWNER'; recurrence_frequency: 'null'; spoke_owner: string; start: CreateGcalEventWorkflowOwnerNullPayload.Start; timezone: string; title: string; all_day_event?: boolean | null; guestsCanInviteOthers?: boolean | null; guestsCanModify?: boolean | null; guestsCanSeeOtherGuests?: boolean | null; /** * Show me as */ transparency?: 'opaque' | 'transparent' | null; /** * Calendar Visibility */ visibility?: 'default' | 'public' | 'private' | null; } namespace CreateGcalEventWorkflowOwnerNullPayload { interface End { date: string; time: string; } interface Start { date: string; time: string; } } /** * This action will create a Google Calendar event with the specified organizer and * attendees */ interface CreateGcalEventWorkflowOwnerDailyPayload { attendees: string; description: string; end: CreateGcalEventWorkflowOwnerDailyPayload.End; organizer_type: 'WORKFLOW_OWNER'; recurrence_frequency: 'DAILY'; spoke_owner: string; start: CreateGcalEventWorkflowOwnerDailyPayload.Start; timezone: string; title: string; all_day_event?: boolean | null; guestsCanInviteOthers?: boolean | null; guestsCanModify?: boolean | null; guestsCanSeeOtherGuests?: boolean | null; recurrence_has_end?: boolean | null; /** * Show me as */ transparency?: 'opaque' | 'transparent' | null; /** * Calendar Visibility */ visibility?: 'default' | 'public' | 'private' | null; } namespace CreateGcalEventWorkflowOwnerDailyPayload { interface End { date: string; time: string; } interface Start { date: string; time: string; } } /** * This action will create a Google Calendar event with the specified organizer and * attendees */ interface CreateGcalEventWorkflowOwnerWeeklyPayload { attendees: string; description: string; end: CreateGcalEventWorkflowOwnerWeeklyPayload.End; organizer_type: 'WORKFLOW_OWNER'; recurrence_frequency: 'WEEKLY'; spoke_owner: string; start: CreateGcalEventWorkflowOwnerWeeklyPayload.Start; timezone: string; title: string; all_day_event?: boolean | null; guestsCanInviteOthers?: boolean | null; guestsCanModify?: boolean | null; guestsCanSeeOtherGuests?: boolean | null; recurrence_has_end?: boolean | null; /** * Show me as */ transparency?: 'opaque' | 'transparent' | null; /** * Calendar Visibility */ visibility?: 'default' | 'public' | 'private' | null; } namespace CreateGcalEventWorkflowOwnerWeeklyPayload { interface End { date: string; time: string; } interface Start { date: string; time: string; } } /** * This action will create a Google Calendar event with the specified organizer and * attendees */ interface CreateGcalEventWorkflowOwnerMonthlyPayload { attendees: string; description: string; end: CreateGcalEventWorkflowOwnerMonthlyPayload.End; organizer_type: 'WORKFLOW_OWNER'; recurrence_frequency: 'MONTHLY'; spoke_owner: string; start: CreateGcalEventWorkflowOwnerMonthlyPayload.Start; timezone: string; title: string; all_day_event?: boolean | null; guestsCanInviteOthers?: boolean | null; guestsCanModify?: boolean | null; guestsCanSeeOtherGuests?: boolean | null; recurrence_has_end?: boolean | null; /** * Show me as */ transparency?: 'opaque' | 'transparent' | null; /** * Calendar Visibility */ visibility?: 'default' | 'public' | 'private' | null; } namespace CreateGcalEventWorkflowOwnerMonthlyPayload { interface End { date: string; time: string; } interface Start { date: string; time: string; } } /** * This action will create a Google Calendar event with the specified organizer and * attendees */ interface CreateGcalEventWorkflowOwnerYearlyPayload { attendees: string; description: string; end: CreateGcalEventWorkflowOwnerYearlyPayload.End; organizer_type: 'WORKFLOW_OWNER'; recurrence_frequency: 'YEARLY'; spoke_owner: string; start: CreateGcalEventWorkflowOwnerYearlyPayload.Start; timezone: string; title: string; all_day_event?: boolean | null; guestsCanInviteOthers?: boolean | null; guestsCanModify?: boolean | null; guestsCanSeeOtherGuests?: boolean | null; recurrence_has_end?: boolean | null; /** * Show me as */ transparency?: 'opaque' | 'transparent' | null; /** * Calendar Visibility */ visibility?: 'default' | 'public' | 'private' | null; } namespace CreateGcalEventWorkflowOwnerYearlyPayload { interface End { date: string; time: string; } interface Start { date: string; time: string; } } /** * This action will create a Google Calendar event with the specified organizer and * attendees */ interface CreateGcalEventSupergroupNullPayload { attendees: string; description: string; end: CreateGcalEventSupergroupNullPayload.End; organizer: string; organizer_type: 'SUPERGROUP'; recurrence_frequency: 'null'; spoke_owner: string; start: CreateGcalEventSupergroupNullPayload.Start; timezone: string; title: string; all_day_event?: boolean | null; guestsCanInviteOthers?: boolean | null; guestsCanModify?: boolean | null; guestsCanSeeOtherGuests?: boolean | null; /** * Show me as */ transparency?: 'opaque' | 'transparent' | null; /** * Calendar Visibility */ visibility?: 'default' | 'public' | 'private' | null; } namespace CreateGcalEventSupergroupNullPayload { interface End { date: string; time: string; } interface Start { date: string; time: string; } } /** * This action will create a Google Calendar event with the specified organizer and * attendees */ interface CreateGcalEventSupergroupDailyPayload { attendees: string; description: string; end: CreateGcalEventSupergroupDailyPayload.End; organizer: string; organizer_type: 'SUPERGROUP'; recurrence_frequency: 'DAILY'; spoke_owner: string; start: CreateGcalEventSupergroupDailyPayload.Start; timezone: string; title: string; all_day_event?: boolean | null; guestsCanInviteOthers?: boolean | null; guestsCanModify?: boolean | null; guestsCanSeeOtherGuests?: boolean | null; recurrence_has_end?: boolean | null; /** * Show me as */ transparency?: 'opaque' | 'transparent' | null; /** * Calendar Visibility */ visibility?: 'default' | 'public' | 'private' | null; } namespace CreateGcalEventSupergroupDailyPayload { interface End { date: string; time: string; } interface Start { date: string; time: string; } } /** * This action will create a Google Calendar event with the specified organizer and * attendees */ interface CreateGcalEventSupergroupWeeklyPayload { attendees: string; description: string; end: CreateGcalEventSupergroupWeeklyPayload.End; organizer: string; organizer_type: 'SUPERGROUP'; recurrence_frequency: 'WEEKLY'; spoke_owner: string; start: CreateGcalEventSupergroupWeeklyPayload.Start; timezone: string; title: string; all_day_event?: boolean | null; guestsCanInviteOthers?: boolean | null; guestsCanModify?: boolean | null; guestsCanSeeOtherGuests?: boolean | null; recurrence_has_end?: boolean | null; /** * Show me as */ transparency?: 'opaque' | 'transparent' | null; /** * Calendar Visibility */ visibility?: 'default' | 'public' | 'private' | null; } namespace CreateGcalEventSupergroupWeeklyPayload { interface End { date: string; time: string; } interface Start { date: string; time: string; } } /** * This action will create a Google Calendar event with the specified organizer and * attendees */ interface CreateGcalEventSupergroupMonthlyPayload { attendees: string; description: string; end: CreateGcalEventSupergroupMonthlyPayload.End; organizer: string; organizer_type: 'SUPERGROUP'; recurrence_frequency: 'MONTHLY'; spoke_owner: string; start: CreateGcalEventSupergroupMonthlyPayload.Start; timezone: string; title: string; all_day_event?: boolean | null; guestsCanInviteOthers?: boolean | null; guestsCanModify?: boolean | null; guestsCanSeeOtherGuests?: boolean | null; recurrence_has_end?: boolean | null; /** * Show me as */ transparency?: 'opaque' | 'transparent' | null; /** * Calendar Visibility */ visibility?: 'default' | 'public' | 'private' | null; } namespace CreateGcalEventSupergroupMonthlyPayload { interface End { date: string; time: string; } interface Start { date: string; time: string; } } /** * This action will create a Google Calendar event with the specified organizer and * attendees */ interface CreateGcalEventSupergroupYearlyPayload { attendees: string; description: string; end: CreateGcalEventSupergroupYearlyPayload.End; organizer: string; organizer_type: 'SUPERGROUP'; recurrence_frequency: 'YEARLY'; spoke_owner: string; start: CreateGcalEventSupergroupYearlyPayload.Start; timezone: string; title: string; all_day_event?: boolean | null; guestsCanInviteOthers?: boolean | null; guestsCanModify?: boolean | null; guestsCanSeeOtherGuests?: boolean | null; recurrence_has_end?: boolean | null; /** * Show me as */ transparency?: 'opaque' | 'transparent' | null; /** * Calendar Visibility */ visibility?: 'default' | 'public' | 'private' | null; } namespace CreateGcalEventSupergroupYearlyPayload { interface End { date: string; time: string; } interface Start { date: string; time: string; } } } interface SendTeamsActionRequest { action_type: 'send_teams'; /** * An action that sends a teams message */ payload: SendTeamsActionRequest.SendTeamsPublicChannelMessagePayload | SendTeamsActionRequest.SendTeamsSingleDirectMessagePayload; workflow_definition_id: string; } namespace SendTeamsActionRequest { /** * An action that sends a teams message */ interface SendTeamsPublicChannelMessagePayload { action_type: 'PUBLIC_CHANNEL_MESSAGE'; message: string; /** * Functions Service run_id. When provided, the request returns 202 and completion * is delivered back to the run via SendRunEvent. When omitted, the action falls * back to synchronous execution. */ run_id?: string | null; team_id?: string | null; } /** * An action that sends a teams message */ interface SendTeamsSingleDirectMessagePayload { action_type: 'SINGLE_DIRECT_MESSAGE'; message: string; recipients?: string | null; /** * Functions Service run_id. When provided, the request returns 202 and completion * is delivered back to the run via SendRunEvent. When omitted, the action falls * back to synchronous execution. */ run_id?: string | null; } } interface AssignReviewActionRequest { action_type: 'assign_review'; /** * Select a cycle and reviewers for the employee that triggered the workflow */ payload: AssignReviewActionRequest.AssignReviewReviewerRelativeToRevieweePayload | AssignReviewActionRequest.AssignReviewReviewerRelativeToTriggerPayload; workflow_definition_id: string; } namespace AssignReviewActionRequest { /** * Select a cycle and reviewers for the employee that triggered the workflow */ interface AssignReviewReviewerRelativeToRevieweePayload { cycle_id: string; is_reviewer_relative_to_reviewee: 'REVIEWER_RELATIVE_TO_REVIEWEE'; reviewees: string; /** * Maximum reviewees: 500 */ reviewers: string; /** * Functions Service run_id. When provided, the request returns 202 and completion * is delivered back to the run via SendRunEvent. When omitted, the action falls * back to synchronous execution. */ run_id?: string | null; } /** * Select a cycle and reviewers for the employee that triggered the workflow */ interface AssignReviewReviewerRelativeToTriggerPayload { cycle_id: string; is_reviewer_relative_to_reviewee: 'REVIEWER_RELATIVE_TO_TRIGGER'; reviewees: string; /** * Maximum reviewees: 500 */ reviewers: string; /** * Functions Service run_id. When provided, the request returns 202 and completion * is delivered back to the run via SendRunEvent. When omitted, the action falls * back to synchronous execution. */ run_id?: string | null; } } interface SendReportSftpActionRequest { action_type: 'send_report_sftp'; /** * Automatically generates a scheduled report and transfers it securely to a * specified SFTP server */ payload: SendReportSftpActionRequest.SendReportSftpPasswordExcelPayload | SendReportSftpActionRequest.SendReportSftpPasswordCsvPayload | SendReportSftpActionRequest.SendReportSftpSSHKeyExcelPayload | SendReportSftpActionRequest.SendReportSftpSSHKeyCsvPayload; workflow_definition_id: string; } namespace SendReportSftpActionRequest { /** * Automatically generates a scheduled report and transfers it securely to a * specified SFTP server */ interface SendReportSftpPasswordExcelPayload { authentication_type: 'PASSWORD'; /** * Specify the full path where the file should be stored on the remote server, * starting from the root directory. Example: /rippling-workflows */ file_path: string; file_type: 'EXCEL'; /** * sftp://username@[hostname] */ host_name: string; /** * Not all report types are supported in workflows, like change and trend reports */ report_id: string; /** * sftp://[username]@hostname */ user_name: string; add_role_referenced_id_column?: boolean | null; /** * CSV quoting */ csv_quoting?: 1 | 0 | 2 | 3 | null; /** * Currency field formatting */ currency_fields?: 'WITH_CURRENCY_TYPE' | 'WITHOUT_CURRENCY_TYPE' | null; /** * Date & time formatting */ date_and_time_formatting?: 'ISO_FORMAT' | 'LOCALE_FORMAT' | null; /** * Files will be automatically named if the file name is empty */ file_name?: string | null; /** * File name suffix */ file_suffix?: 'DEFAULT_FORMAT' | 'EPOCH_FORMAT' | 'NO_SUFFIX' | null; port?: number | null; /** * Functions Service run_id. When provided, the request returns 202 and completion * is delivered back to the run via SendRunEvent. When omitted, the action falls * back to synchronous execution. */ run_id?: string | null; show_sub_totals?: boolean | null; /** * Time zones */ time_zones?: 'UTC' | 'PRESERVE_TZ' | 'VIEWER_LOCALE' | null; } /** * Automatically generates a scheduled report and transfers it securely to a * specified SFTP server */ interface SendReportSftpPasswordCsvPayload { authentication_type: 'PASSWORD'; /** * Specify the full path where the file should be stored on the remote server, * starting from the root directory. Example: /rippling-workflows */ file_path: string; file_type: 'CSV'; /** * sftp://username@[hostname] */ host_name: string; /** * Not all report types are supported in workflows, like change and trend reports */ report_id: string; /** * sftp://[username]@hostname */ user_name: string; add_role_referenced_id_column?: boolean | null; /** * CSV quoting */ csv_quoting?: 1 | 0 | 2 | 3 | null; /** * Custom separator */ csv_separator?: ',' | ';' | '\t' | '|' | null; /** * Currency field formatting */ currency_fields?: 'WITH_CURRENCY_TYPE' | 'WITHOUT_CURRENCY_TYPE' | null; /** * Date & time formatting */ date_and_time_formatting?: 'ISO_FORMAT' | 'LOCALE_FORMAT' | null; /** * Files will be automatically named if the file name is empty */ file_name?: string | null; /** * File name suffix */ file_suffix?: 'DEFAULT_FORMAT' | 'EPOCH_FORMAT' | 'NO_SUFFIX' | null; port?: number | null; /** * Functions Service run_id. When provided, the request returns 202 and completion * is delivered back to the run via SendRunEvent. When omitted, the action falls * back to synchronous execution. */ run_id?: string | null; show_sub_totals?: boolean | null; /** * Time zones */ time_zones?: 'UTC' | 'PRESERVE_TZ' | 'VIEWER_LOCALE' | null; } /** * Automatically generates a scheduled report and transfers it securely to a * specified SFTP server */ interface SendReportSftpSSHKeyExcelPayload { authentication_type: 'SSH_KEY'; /** * Specify the full path where the file should be stored on the remote server, * starting from the root directory. Example: /rippling-workflows */ file_path: string; file_type: 'EXCEL'; /** * sftp://username@[hostname] */ host_name: string; /** * Not all report types are supported in workflows, like change and trend reports */ report_id: string; /** * sftp://[username]@hostname */ user_name: string; add_role_referenced_id_column?: boolean | null; /** * CSV quoting */ csv_quoting?: 1 | 0 | 2 | 3 | null; /** * Currency field formatting */ currency_fields?: 'WITH_CURRENCY_TYPE' | 'WITHOUT_CURRENCY_TYPE' | null; /** * Date & time formatting */ date_and_time_formatting?: 'ISO_FORMAT' | 'LOCALE_FORMAT' | null; /** * Files will be automatically named if the file name is empty */ file_name?: string | null; /** * File name suffix */ file_suffix?: 'DEFAULT_FORMAT' | 'EPOCH_FORMAT' | 'NO_SUFFIX' | null; port?: number | null; /** * Functions Service run_id. When provided, the request returns 202 and completion * is delivered back to the run via SendRunEvent. When omitted, the action falls * back to synchronous execution. */ run_id?: string | null; show_sub_totals?: boolean | null; /** * Time zones */ time_zones?: 'UTC' | 'PRESERVE_TZ' | 'VIEWER_LOCALE' | null; } /** * Automatically generates a scheduled report and transfers it securely to a * specified SFTP server */ interface SendReportSftpSSHKeyCsvPayload { authentication_type: 'SSH_KEY'; /** * Specify the full path where the file should be stored on the remote server, * starting from the root directory. Example: /rippling-workflows */ file_path: string; file_type: 'CSV'; /** * sftp://username@[hostname] */ host_name: string; /** * Not all report types are supported in workflows, like change and trend reports */ report_id: string; /** * sftp://[username]@hostname */ user_name: string; add_role_referenced_id_column?: boolean | null; /** * CSV quoting */ csv_quoting?: 1 | 0 | 2 | 3 | null; /** * Custom separator */ csv_separator?: ',' | ';' | '\t' | '|' | null; /** * Currency field formatting */ currency_fields?: 'WITH_CURRENCY_TYPE' | 'WITHOUT_CURRENCY_TYPE' | null; /** * Date & time formatting */ date_and_time_formatting?: 'ISO_FORMAT' | 'LOCALE_FORMAT' | null; /** * Files will be automatically named if the file name is empty */ file_name?: string | null; /** * File name suffix */ file_suffix?: 'DEFAULT_FORMAT' | 'EPOCH_FORMAT' | 'NO_SUFFIX' | null; port?: number | null; /** * Functions Service run_id. When provided, the request returns 202 and completion * is delivered back to the run via SendRunEvent. When omitted, the action falls * back to synchronous execution. */ run_id?: string | null; show_sub_totals?: boolean | null; /** * Time zones */ time_zones?: 'UTC' | 'PRESERVE_TZ' | 'VIEWER_LOCALE' | null; } } interface EnrollIntoCourseActionRequest { action_type: 'enroll_into_course'; /** * Automatically enroll people into a course */ payload: EnrollIntoCourseActionRequest.EnrollIntoCourse1WeekPayload | EnrollIntoCourseActionRequest.EnrollIntoCourse2WeeksPayload | EnrollIntoCourseActionRequest.EnrollIntoCourse1MonthPayload | EnrollIntoCourseActionRequest.EnrollIntoCourse3MonthsPayload | EnrollIntoCourseActionRequest.EnrollIntoCourse6MonthsPayload | EnrollIntoCourseActionRequest.EnrollIntoCourse12MonthsPayload | EnrollIntoCourseActionRequest.EnrollIntoCourseCustomPayload; workflow_definition_id: string; } namespace EnrollIntoCourseActionRequest { /** * Automatically enroll people into a course */ interface EnrollIntoCourse1WeekPayload { /** * Select a course to enroll people in */ course_id: string; due_date: '1_week'; /** * Select people to enroll in this course */ role_ids: string; /** * Skip enrollment if the employee already has a valid certificate for this course */ skip_if_certified?: boolean | null; } /** * Automatically enroll people into a course */ interface EnrollIntoCourse2WeeksPayload { /** * Select a course to enroll people in */ course_id: string; due_date: '2_weeks'; /** * Select people to enroll in this course */ role_ids: string; /** * Skip enrollment if the employee already has a valid certificate for this course */ skip_if_certified?: boolean | null; } /** * Automatically enroll people into a course */ interface EnrollIntoCourse1MonthPayload { /** * Select a course to enroll people in */ course_id: string; due_date: '1_month'; /** * Select people to enroll in this course */ role_ids: string; /** * Skip enrollment if the employee already has a valid certificate for this course */ skip_if_certified?: boolean | null; } /** * Automatically enroll people into a course */ interface EnrollIntoCourse3MonthsPayload { /** * Select a course to enroll people in */ course_id: string; due_date: '3_months'; /** * Select people to enroll in this course */ role_ids: string; /** * Skip enrollment if the employee already has a valid certificate for this course */ skip_if_certified?: boolean | null; } /** * Automatically enroll people into a course */ interface EnrollIntoCourse6MonthsPayload { /** * Select a course to enroll people in */ course_id: string; due_date: '6_months'; /** * Select people to enroll in this course */ role_ids: string; /** * Skip enrollment if the employee already has a valid certificate for this course */ skip_if_certified?: boolean | null; } /** * Automatically enroll people into a course */ interface EnrollIntoCourse12MonthsPayload { /** * Select a course to enroll people in */ course_id: string; due_date: '12_months'; /** * Select people to enroll in this course */ role_ids: string; /** * Skip enrollment if the employee already has a valid certificate for this course */ skip_if_certified?: boolean | null; } /** * Automatically enroll people into a course */ interface EnrollIntoCourseCustomPayload { /** * Select a course to enroll people in */ course_id: string; due_date: 'custom'; /** * Select people to enroll in this course */ role_ids: string; /** * Time unit */ custom_due_duration?: 'day' | 'week' | 'month' | 'year' | null; /** * Number of days/weeks/months/years */ custom_due_value?: number | null; /** * Skip enrollment if the employee already has a valid certificate for this course */ skip_if_certified?: boolean | null; } } interface EnrollIntoLearningPathActionRequest { action_type: 'enroll_into_learning_path'; /** * Automatically enroll people into a learning path */ payload: EnrollIntoLearningPathActionRequest.Payload; workflow_definition_id: string; } namespace EnrollIntoLearningPathActionRequest { /** * Automatically enroll people into a learning path */ interface Payload { /** * Select a learning path to enroll people in */ learning_path_id: string; /** * Select people to enroll in this learning path */ role_ids: string; /** * Time unit */ custom_due_unit?: 'day' | 'week' | 'month' | 'year' | null; /** * Number of days/weeks/months/years */ custom_due_value?: number | null; /** * Number of days after completing one course before the next is due */ days_between_courses?: number | null; /** * Due date type */ due_date_type?: 'global' | 'relative' | null; /** * Due in */ due_in?: '1_week' | '2_weeks' | '1_month' | '3_months' | '6_months' | '12_months' | 'custom' | null; /** * Give credit for courses the employee has already completed */ induct_completed_enrollments?: boolean | null; /** * Skip enrollment if the employee already completed this learning path */ skip_if_completed?: boolean | null; } } interface SendReportEmailActionRequest { action_type: 'report_email'; /** * Send Report via Email. */ payload: SendReportEmailActionRequest.SendReportEmailExcelPayload | SendReportEmailActionRequest.SendReportEmailCsvPayload; workflow_definition_id: string; } namespace SendReportEmailActionRequest { /** * Send Report via Email. */ interface SendReportEmailExcelPayload { file_type: 'EXCEL'; /** * Not all report types are supported in workflows, like change and trend reports */ report_id: string; /** * Whose report view should be used to generate this report? (Only the workflow * owner's access level will be available if external emails are included.) */ run_report_perms: 'RECIPIENT' | 'WORKFLOW_OWNER'; send_to: SendReportEmailExcelPayload.SendTo; add_role_referenced_id_column?: boolean | null; /** * CSV quoting */ csv_quoting?: 1 | 0 | 2 | 3 | null; /** * Currency field formatting */ currency_fields?: 'WITH_CURRENCY_TYPE' | 'WITHOUT_CURRENCY_TYPE' | null; /** * Date & time formatting */ date_and_time_formatting?: 'ISO_FORMAT' | 'LOCALE_FORMAT' | null; /** * Functions Service run_id. When provided, the request returns 202 and completion * is delivered back to the run via SendRunEvent. When omitted, the action falls * back to synchronous execution. */ run_id?: string | null; show_sub_totals?: boolean | null; /** * Time zones */ time_zones?: 'UTC' | 'PRESERVE_TZ' | 'VIEWER_LOCALE' | null; } namespace SendReportEmailExcelPayload { interface SendTo { bcc?: SendTo.Recipient1 | SendTo.Recipient2 | null; cc?: SendTo.Recipient1 | SendTo.Recipient2 | null; to?: SendTo.Recipient1 | SendTo.Recipient2 | null; } namespace SendTo { interface Recipient1 { supergroup: string; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; externalEmails?: Array | null; } interface Recipient2 { externalEmails: Array; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; supergroup?: string | null; } interface Recipient1 { supergroup: string; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; externalEmails?: Array | null; } interface Recipient2 { externalEmails: Array; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; supergroup?: string | null; } interface Recipient1 { supergroup: string; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; externalEmails?: Array | null; } interface Recipient2 { externalEmails: Array; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; supergroup?: string | null; } } } /** * Send Report via Email. */ interface SendReportEmailCsvPayload { file_type: 'CSV'; /** * Not all report types are supported in workflows, like change and trend reports */ report_id: string; /** * Whose report view should be used to generate this report? (Only the workflow * owner's access level will be available if external emails are included.) */ run_report_perms: 'RECIPIENT' | 'WORKFLOW_OWNER'; send_to: SendReportEmailCsvPayload.SendTo; add_role_referenced_id_column?: boolean | null; /** * CSV quoting */ csv_quoting?: 1 | 0 | 2 | 3 | null; /** * Custom separator */ csv_separator?: ',' | ';' | '\t' | '|' | null; /** * Currency field formatting */ currency_fields?: 'WITH_CURRENCY_TYPE' | 'WITHOUT_CURRENCY_TYPE' | null; /** * Date & time formatting */ date_and_time_formatting?: 'ISO_FORMAT' | 'LOCALE_FORMAT' | null; /** * Functions Service run_id. When provided, the request returns 202 and completion * is delivered back to the run via SendRunEvent. When omitted, the action falls * back to synchronous execution. */ run_id?: string | null; show_sub_totals?: boolean | null; /** * Time zones */ time_zones?: 'UTC' | 'PRESERVE_TZ' | 'VIEWER_LOCALE' | null; } namespace SendReportEmailCsvPayload { interface SendTo { bcc?: SendTo.Recipient1 | SendTo.Recipient2 | null; cc?: SendTo.Recipient1 | SendTo.Recipient2 | null; to?: SendTo.Recipient1 | SendTo.Recipient2 | null; } namespace SendTo { interface Recipient1 { supergroup: string; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; externalEmails?: Array | null; } interface Recipient2 { externalEmails: Array; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; supergroup?: string | null; } interface Recipient1 { supergroup: string; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; externalEmails?: Array | null; } interface Recipient2 { externalEmails: Array; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; supergroup?: string | null; } interface Recipient1 { supergroup: string; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; externalEmails?: Array | null; } interface Recipient2 { externalEmails: Array; /** * Email type */ emailType?: 'work_or_personal_email' | 'work_email_only' | 'personal_email_only' | 'work_and_personal_email' | null; supergroup?: string | null; } } } } interface SendDocumentActionRequest { action_type: 'send_document'; /** * Sends a document to employees */ payload: SendDocumentActionRequest.Payload; workflow_definition_id: string; } namespace SendDocumentActionRequest { /** * Sends a document to employees */ interface Payload { document: string; /** * Maximum recipients: 500 */ recipients: string; /** * Functions Service run_id. When provided, the request returns 202 and completion * is delivered back to the run via SendRunEvent. When omitted, the action falls * back to synchronous execution. */ run_id?: string | null; } } interface AccrueLeaveActionRequest { action_type: 'accrue_leave'; /** * Adjust time off balance of a leave policy or a leave type */ payload: AccrueLeaveActionRequest.AccrueLeaveLeavePolicyPayload | AccrueLeaveActionRequest.AccrueLeaveCompanyLeaveTypePayload; workflow_definition_id: string; } namespace AccrueLeaveActionRequest { /** * Adjust time off balance of a leave policy or a leave type */ interface AccrueLeaveLeavePolicyPayload { /** * Choose how to adjust the employee's leave balance */ balance_action_type: 'ADD_BALANCE' | 'DEDUCT_BALANCE'; balance_increment: number | string; /** * The unit of time to accrue leave in */ balance_unit: 'HOURS' | 'DAYS' | 'WEEKS'; leave_policy: string; pto_type: 'LEAVE_POLICY'; recipients: string; /** * Functions Service run_id. When provided, the request returns 202 and completion * is delivered back to the run via SendRunEvent. When omitted, the action falls * back to synchronous execution. */ run_id?: string | null; } /** * Adjust time off balance of a leave policy or a leave type */ interface AccrueLeaveCompanyLeaveTypePayload { /** * Choose how to adjust the employee's leave balance */ balance_action_type: 'ADD_BALANCE' | 'DEDUCT_BALANCE'; balance_increment: number | string; /** * The unit of time to accrue leave in */ balance_unit: 'HOURS' | 'DAYS' | 'WEEKS'; company_leave_type: string; pto_type: 'COMPANY_LEAVE_TYPE'; recipients: string; /** * Functions Service run_id. When provided, the request returns 202 and completion * is delivered back to the run via SendRunEvent. When omitted, the action falls * back to synchronous execution. */ run_id?: string | null; } } interface MakePaymentActionRequest { action_type: 'make_payment'; /** * Send a payment to employee(s). This payment will be applied to the next upcoming * payroll run. */ payload: MakePaymentActionRequest.Payload; workflow_definition_id: string; } namespace MakePaymentActionRequest { /** * Send a payment to employee(s). This payment will be applied to the next upcoming * payroll run. */ interface Payload { /** * Set a max amount that can be earned under this workflow */ apply_cap: boolean; description: string; payment_amount: number | string; recipients: string; /** * Functions Service run_id. When provided, the request returns 202 and completion * is delivered back to the run via SendRunEvent. When omitted, the action falls * back to synchronous execution. */ run_id?: string | null; } } interface RunQueryActionRequest { action_type: 'run_query'; payload: RunQueryActionRequest.Payload; workflow_definition_id: string; } namespace RunQueryActionRequest { interface Payload { query: string; product_name?: string | null; } } } export declare namespace WorkflowActionExecutions { export { type WorkflowActionExecutionCreateResponse as WorkflowActionExecutionCreateResponse, type WorkflowActionExecutionCreateParams as WorkflowActionExecutionCreateParams, }; } //# sourceMappingURL=workflow-action-executions.d.ts.map