MuleSoft API Specifications for Agent Actions and Service Processes
These API specifications are designed to provide a clear and structured framework for
integrating and managing various agent actions within the MuleSoft environment. Each API is
tailored to support specific agent actions, ensuring that users can efficiently handle tasks
such as managing absences, updating worker details, processing payment enrollments, and managing
expense reports.
#%RAML 1.0
title: Absence Management API
description: The Absence Management API is intended to provide operations for managing employee time off, including fetching time off balances and submitting time off requests.
version: 1.0
mediaType: application/json
protocols:
- HTTPS
documentation:
- title: Absence Management domain
content: |-
The Absence Management domain contains the following sections:
- Get Time Off Plan Balances
- Submit Time Off
- title: Absence Management sub groups
content: |-
The Absence Management sub-groups contain the following sections:
- Time Off Balances
- Time Off Requests
Resources / Methods
/Get_Time_Off_Plan_Balances/{employee_id}:
displayName: Get Time Off Balance
get:
description: Fetches the time off plan balances for a specific employee.
displayName: Get Time Off Balance
Responses
responses:
'200':
description: Time off plan balances were returned successfully.
body:
application/json:
type: object
'400':
description: Bad request, e.g., invalid query parameters.
body:
application/json:
type: object
'404':
description: Resource not found.
body:
application/json:
type: string
'429':
description: Too many requests, rate limit exceeded.
body:
application/json:
type: object
Headers / Query Parameters
queryParameters:
effective_date?:
description: The date for which the balances are effective.
type: date-only
Data Types
types:
AbsencePlan:
description: Represents an absence plan with its associated leaves.
type: object
properties:
planId:
required: true
description: Unique identifier for the absence plan.
type: string
planName:
required: true
description: Name of the absence plan.
type: string
quantity:
required: true
description: Total quantity of leave available.
type: integer
unit:
required: true
description: Unit of measurement for the leave quantity (e.g., hours, days).
type: string
leaves:
required: true
description: List of leave types within the plan.
type: array
items:
type: object
properties:
leaveTypeId:
required: true
description: Unique identifier for the leave type.
type: string
leaveType:
required: true
description: Type of leave (e.g., sick, casual).
type: string
quantity:
required: true
description: Quantity of leave available for this type.
type: integer
unit:
required: true
description: Unit of measurement for the leave type quantity (e.g., hours, days).
type: string
#%RAML 1.0
title: Update Worker Details API
description: The Update Worker Details API is intended to provide operations for updating various details of a worker, including address, email, phone, preferred name, and pronoun.
version: v1
mediaType: application/json
protocols:
- HTTPS
documentation:
- title: Worker Details domain
content: |-
The Worker Details domain contains the following sections:
- Update Worker Details
- title: Worker Details sub groups
content: |-
The Worker Details sub-groups contain the following sections:
- Address
- Email
- Phone
- Preferred Name
- Pronoun
Resources / Methods
/Update_Worker_Details:
displayName: Update Worker Details
post:
description: Updates the worker's details, including address, email, phone, preferred name, and pronoun.
displayName: Update Worker Details
Responses
responses:
'200':
description: Worker details were updated successfully.
body:
application/json:
type: object
application/xml:
type: object
'400':
description: Bad request, e.g., invalid parameters.
body:
application/json:
type: object
'404':
description: Resource not found.
body:
application/json:
type: string
'429':
description: Too many requests, rate limit exceeded.
body:
application/json:
type: object
'500':
description: Internal server error.
body:
application/json:
type: object
Headers / Query Parameters
# No specific headers or query parameters for this resource
Data Types
types:
WorkerDetails:
description: Represents the details of a worker that can be updated.
type: object
properties:
workerID:
required: true
description: Unique identifier for the worker.
type: string
effectiveDate?:
description: The date from which the changes are effective.
type: date-only
address?:
description: Worker's address details.
type: object
properties:
line1:
required: true
description: Address line 1.
type: string
line2?:
description: Address line 2.
type: string
city:
required: true
description: City.
type: string
country:
required: true
description: Country.
type: string
postalCode:
required: true
description: Postal code.
type: string
region:
required: true
description: Region.
type: string
isPrimary?:
description: Indicates if this is the primary address.
type: boolean
default: false
communicationType?:
description: Type of communication address.
type: string
default: "Home"
replaceAllNonPrimary?:
description: Indicates if all non-primary addresses should be replaced.
type: boolean
default: false
email?:
description: Worker's email details.
type: object
properties:
emailAddress:
required: true
description: Email address.
type: string
isPrimary?:
description: Indicates if this is the primary email.
type: boolean
default: false
communicationType?:
description: Type of communication email.
type: string
default: "Home"
replaceAllNonPrimary?:
description: Indicates if all non-primary emails should be replaced.
type: boolean
default: false
phone?:
description: Worker's phone details.
type: object
properties:
mobile:
required: true
description: Mobile phone number.
type: string
isPrimary?:
description: Indicates if this is the primary phone.
type: boolean
default: false
communicationType?:
description: Type of communication phone.
type: string
default: "Home"
deviceType?:
description: Type of device.
type: string
default: "Mobile"
countryCode?:
description: Country code.
type: string
replaceAllNonPrimary?:
description: Indicates if all non-primary phones should be replaced.
type: boolean
default: false
preferredName?:
description: Worker's preferred name details.
type: object
properties:
firstName:
required: true
description: First name.
type: string
lastName:
required: true
description: Last name.
type: string
country:
required: true
description: Country.
type: string
pronoun?:
description: Worker's preferred pronoun.
type: string
Payment Enrollments API
Section
Example
RAML Header
#%RAML 1.0
title: Employee Payment Enrollment API
description: The Employee Payment Enrollment API is intended to provide operations for fetching and submitting employee payment enrollment details, including bank account information and payment allocations for various payment types like regular pay, bonuses, and expenses.
version: 1.0
mediaType: application/json
protocols:
- HTTPS
documentation:
- title: Payment Enrollment domain
content: |-
The Payment Enrollment domain contains the following sections:
- Fetch Payment Enrollments
- Submit Payment Elections
- title: Payment Enrollment sub groups
content: |-
The Payment Enrollment sub-groups contain the following sections:
- Payment Type Group Name
- Allocations
- Bank Account Details
- Distribution
Resources / Methods
/payment-enrollments/{employeeId}:
displayName: Payment Enrollments
get:
description: Fetches payment enrollment details for a specific employee.
displayName: Get Payment Enrollments
post:
description: Submits a payment election enrollment for a specific employee.
displayName: Submit Payment Elections
Responses
responses:
'200':
description: Payment enrollment details were returned successfully.
body:
application/json:
type: object
'201':
description: Payment election enrollment was submitted successfully.
body:
application/json:
type: object
'400':
description: Invalid request. Missing or incorrect parameters.
body:
application/json:
type: object
'403':
description: Unauthorized or insufficient permissions to submit the payment election enrollment.
body:
application/json:
type: object
'500':
description: Internal server error.
body:
application/json:
type: object
Headers / Query Parameters
get:
description: Fetch payment enrollment details.
displayName: Get Payment Enrollments
queryParameters:
routingId?:
type: string
required: false
description: Optional routing identifier.
displayName: Routing ID
bankAccountType?:
type: string
required: false
description: Type of account to filter, for example, Checking or Savings
Data Types
types:
PaymentEnrollment:
description: Represents the payment enrollment details for an employee.
type: object
properties:
employeeId:
required: true
description: Unique identifier for the employee.
type: string
paymentEnrollments:
required: true
description: List of payment enrollment groups.
type: array
items:
type: object
properties:
paymentTypeGroupName:
required: true
description: Group name for the type of payment.
type: string
enum:
- REGULAR_PAYMENTS
- BONUS_PAYMENTS
- EXPENSE_PAYMENTS
allocations:
required: true
description: Details on how payments within this group are allocated.
type: array
items:
type: object
properties:
paymentType:
required: true
description: Type of payment for this allocation.
type: string
enum:
- DIRECT_DEPOSIT
- CHECK
default: DIRECT_DEPOSIT
bankAccountDetails:
required: true
description: Bank account details for the payment.
type: object
properties:
AccountNumber:
required: true
description: Employee’s bank account number.
type: string
bankIdNumber:
required: true
description: Bank routing or ID number.
type: string
bankName:
required: true
description: Name of the bank.
type: string
accountType:
required: true
description: Type of account, for example, Savings or Checking.
type: string
enum:
- Checking
- Savings
nameOnAccount:
required: true
description: The name of the account holder as registered with the bank.
type: string
bankAccountNickname?:
description: Optional nickname for the bank account.
type: string
iban?:
description: International Bank Account Number (if applicable).
type: string
branchIdNumber?:
description: Specific branch identifier, if applicable.
type: string
rollNumber?:
description: Account roll number, used in some countries (e.g., UK building societies).
type: string
currencyCode:
required: true
description: Currency of the bank account (e.g., "USD").
type: string
countryCode:
required: true
description: Country where the bank account is held (e.g., "US").
type: string
additionalFields?:
description: Custom fields specific to this allocation.
type: array
items:
type: object
properties:
fieldName:
required: true
description: Name of the custom field.
type: string
fieldValue:
required: true
description: Value of the custom field (can be any simple type).
type: object
distribution:
required: true
description: Defines how much of the payment is allocated here.
type: object
properties:
type:
required: true
description: Type of distribution, for example, PERCENT.
type: string
enum:
- PERCENT
- AMOUNT
- BALANCE
value:
required: true
description: The actual percentage, amount, or indicator for balance.
type: any
currencyCode:
required: true
description: Currency for this specific allocation (e.g., "USD").
type: string
countryCode:
required: true
description: Country context for this allocation (e.g., "US").
type: string
order:
required: true
description: The sequence/priority of this allocation among others in the same group. Lower numbers typically process first.
type: number
additionalFields?:
description: Custom fields specific to this allocation.
type: array
items:
type: object
properties:
fieldName:
required: true
description: Name of the custom field.
type: string
fieldValue:
required: true
description: Value of the custom field (can be any simple type).
type: object
Workday Expense Management API
Section
Example
RAML Header
#%RAML 1.0
title: WD Expense Management API
description: The WD Expense Management API is intended to provide operations for retrieving available expense item types and submitting new expense reports, including individual expense lines and attachments.
version: 1.0.0
mediaType: application/json
protocols:
- HTTPS
documentation:
- title: Expense Management domain
content: |-
The Expense Management domain contains the following sections:
- Get Expense Items
- Submit Expense Report
- Get Expense Reports
- title: Expense Management sub groups
content: |-
The Expense Management sub-groups contain the following sections:
- Expense Item
- Expense Report
- Expense Line
- Attachment
Resources / Methods
/expense-items:
displayName: Get Expense Items
get:
description: Fetches a list of available expense types that can be used when submitting an expense report.
displayName: Get Expense Items
/expense-reports:
displayName: Expense Reports
post:
description: Creates and submits a new expense report with associated expenses and attachments.
displayName: Submit Expense Report
get:
description: Fetches existing expense reports.
displayName: Get Expense Reports
Responses
responses:
'200':
description: Successful retrieval.
body:
application/json:
type: array
'201':
description: Successfully created.
body:
application/json:
type: object
'400':
description: The request was invalid or cannot be parsed.
body:
application/json:
type: object
'403':
description: Unauthorized or insufficient permissions to submit the expense report.
body:
application/json:
type: object
'405':
description: Method not allowed.
body:
application/json:
type: object
'500':
description: Internal server error.
body:
application/json:
type: object
types:
Attachment:
description: Represents an attachment file for an expense item.
type: object
properties:
file_name:
required: true
description: Name of the attachment file.
type: string
file_content:
required: true
description: Base64 encoded string of the file's content.
type: string
content_type:
required: true
description: MIME type of the file.
type: string
Expense:
description: Represents an individual expense item in an expense report.
type: object
properties:
item_id:
required: true
description: Unique identifier for the expense item type.
type: string
amount:
required: true
description: Cost per unit of the expense.
type: number
quantity:
required: true
description: Quantity of the expense item.
type: number
total_amount:
required: true
description: Total cost for this line (typically amount * quantity).
type: number
currency:
required: true
description: Currency code for the amount (e.g., "USD").
type: string
memo?:
description: A note or description for this specific expense line.
type: string
expense_date:
required: true
Did this article solve your issue?
Let us know so we can improve!
Loading
Salesforce Help | Article
Cookie Consent Manager
General Information
Required Cookies
Functional Cookies
Advertising Cookies
General Information
We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required Cookies
Always Active
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional Cookies
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising Cookies
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.