Skip to main content

create_contract

Facts​

DescriptionCreate a new contract
SchemaConnectors.Deel.functions.CreateContract
ServiceDeel

Input parameters​

Required input parameters

contract_typestringRequired

The specific type of this contract

Accepted values
pay_as_you_go_time_basedpayg_taskspayg_milestonesongoing_time_based
currency_codestringRequired

The currency code to use for this contract

Examples
AL
cycle_endnumberRequired

The day of the cycle_end_type in which the invoice cycle ends

Examples
1
cycle_end_typestringRequired

The end-type for the contract cycle. Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31.

Accepted values
DAY_OF_WEEKDAY_OF_LAST_WEEKDAY_OF_MONTH
deel_access_tokenslack#/types/credential/oauth2Required

Deel Access token. See the authentication section for details.

documents_requiredbooleanRequired

If true, the contractor is required to upload necessary compliance documents as per their country's labor laws

Examples
false
frequencystringRequired

Scale of the invoice cycle

Accepted values
weeklymonthlybiweeklysemimonthlycalendar-month
job_titlestringRequired

The job title to associate with this contract

Examples
Lead Sales Enablement Guru
legal_entity_idstringRequired

The ID of the legal entity to associate with this contract

Examples
12345
payment_due_daysnumberRequired

The number of days between 0-90 in which the payment is due

Examples
45
payment_due_typestringRequired

The classification of how payments will be due (if payment is due on the last day of the month, use WITHIN_MONTH)

Accepted values
REGULARWITHIN_MONTH
start_dateslack#/types/dateRequired

The date when this contract shall start, in YYYY-MM-DD format

Examples
2024-05-05
team_idstringRequired

The ID of the team to associate with this contract

Examples
12345
titlestringRequired

The title of the contract

Examples
Scott Slacksalot Sales Contracting

Optional input parameters

amountnumberOptional

The total amount to be paid for this contract (can be excluded when creating a pay-as-you-go, task-based, or milestone contracts)

scalestringOptional

The frequency at which the amount is paid

Accepted values
hourlyweeklymonthlybiweeklysemimonthlycalendar-month

Output parameters​

Required output parameters

contract_idstringRequired

Contract ID

contract_urlstringRequired

Contract URL

Authentication​

End-user authentication

User workflows that include a connector function relying on end-user authentication can only be started with a link trigger.

{
"deel_access_token": {
"credential_source": "END_USER"
}
}

End-user experience: User will be prompted to link their external account via OAuth when they first start the workflow that contains this connector.

Developer experience: Developer does not have to implement authentication in the app.

Usage info​

First, import Connectors from deno-slack-hub into your project's import_map.json file, like this:

import_map.json
{
"imports": {
"deno-slack-hub/": "https://deno.land/x/deno_slack_hub@2.2.0/",
"deno-slack-sdk/": "https://deno.land/x/deno_slack_sdk@2.14.2/",
"deno-slack-api/": "https://deno.land/x/deno_slack_api@2.8.0/"
}
}

Next, import Connectors at the top of your workflow's definition file:

my_workflow_file.ts
import { Connectors } from "deno-slack-hub/mod.ts";

Finally, add the connector as a step in your workflow just like you would a Slack function.

my_workflow_file.ts
SomeWorkflow.addStep(
Connectors.Deel.functions.CreateContract, {
//...

🧙🏼 Your admin may need to approve the connector first. If your workspace has been configured to only allow admin-approved apps, the CLI will prompt you to send an admin approval request the first time you try to use a connector that hasn't been approved by an admin yet. While waiting for admin approval, the CLI may report an error like this:

Workflow function X is referring to an unknown step output parameter Y

You can safely ignore this error; it will go away as soon as your workspace admin approves your request to use the connector.