Skip to content

Commit b298b4a

Browse files
committed
feat(ironclad): add Ironclad integration with OAuth
1 parent bf60670 commit b298b4a

28 files changed

+1929
-0
lines changed

apps/docs/components/icons.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4186,6 +4186,17 @@ export function IntercomIcon(props: SVGProps<SVGSVGElement>) {
41864186
)
41874187
}
41884188

4189+
export function IroncladIcon(props: SVGProps<SVGSVGElement>) {
4190+
return (
4191+
<svg {...props} viewBox='0 0 36 40' fill='none' xmlns='http://www.w3.org/2000/svg'>
4192+
<path
4193+
d='M35.196 0a.209.209 0 0 1 .209.209v3.829a.209.209 0 0 1-.209.209H19.826v31.507h15.37a.209.209 0 0 1 .209.209v3.828a.209.209 0 0 1-.209.209H.209A.209.209 0 0 1 0 39.791v-3.828a.209.209 0 0 1 .209-.21h15.37V4.247H.21A.209.209 0 0 1 0 4.038V.209A.209.209 0 0 1 .209 0h34.987ZM10.632 8.985a.209.209 0 0 1 .209.209v21.612a.209.209 0 0 1-.209.209H.209a.209.209 0 0 1-.209-.21v-3.828a.209.209 0 0 1 .209-.209h6.385V13.231H.209A.209.209 0 0 1 0 13.023V9.194a.209.209 0 0 1 .209-.209h10.423Zm17.97 0a.209.209 0 0 1 .209.209v21.612a.209.209 0 0 1-.209.209H25.38V13.231h6.386V26.768H25.38a.209.209 0 0 1 .209.209v3.828a.209.209 0 0 1-.209.21h-10.422V9.193a.209.209 0 0 1 .209-.209h13.235ZM35.196 8.985a.209.209 0 0 1 .209.209v3.829a.209.209 0 0 1-.209.208H28.81v13.537h6.386a.209.209 0 0 1 .209.21v3.828a.209.209 0 0 1-.209.209H24.773a.209.209 0 0 1-.209-.21V9.195a.209.209 0 0 1 .209-.21h10.423Z'
4194+
fill='#4BBF79'
4195+
/>
4196+
</svg>
4197+
)
4198+
}
4199+
41894200
export function LoopsIcon(props: SVGProps<SVGSVGElement>) {
41904201
return (
41914202
<svg {...props} viewBox='0 0 214 186' fill='none' xmlns='http://www.w3.org/2000/svg'>

apps/docs/components/ui/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ import {
8484
IncidentioIcon,
8585
InfisicalIcon,
8686
IntercomIcon,
87+
IroncladIcon,
8788
JinaAIIcon,
8889
JiraIcon,
8990
JiraServiceManagementIcon,
@@ -258,6 +259,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
258259
incidentio: IncidentioIcon,
259260
infisical: InfisicalIcon,
260261
intercom_v2: IntercomIcon,
262+
ironclad: IroncladIcon,
261263
jina: JinaAIIcon,
262264
jira: JiraIcon,
263265
jira_service_management: JiraServiceManagementIcon,
Lines changed: 259 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,259 @@
1+
---
2+
title: Ironclad
3+
description: Contract lifecycle management with Ironclad
4+
---
5+
6+
import { BlockInfoCard } from "@/components/ui/block-info-card"
7+
8+
<BlockInfoCard
9+
type="ironclad"
10+
color="#FFFFFF"
11+
/>
12+
13+
{/* MANUAL-CONTENT-START:intro */}
14+
[Ironclad](https://ironcladapp.com/) is a leading contract lifecycle management (CLM) platform that helps legal teams streamline contract creation, negotiation, approval, and storage. It enables organizations to manage the entire contract process from start to finish in a single, unified platform.
15+
16+
With Ironclad, you can:
17+
18+
- **Automate contract workflows**: Create and manage contract workflows using configurable templates with built-in approval routing
19+
- **Manage records**: Store and organize contract records with custom metadata, properties, and linked relationships
20+
- **Track approvals**: Monitor approval status across workflows with conditional approval groups
21+
- **Collaborate with comments**: Add and view comments on workflows for team communication and audit trails
22+
23+
In Sim, the Ironclad integration enables your agents to interact with Ironclad's workflow and records APIs programmatically. This allows for seamless contract operations like creating new workflows from templates, updating contract metadata, managing records, and tracking approvals - all within your agent workflows. Use Ironclad to automate contract lifecycle processes, keep records in sync, and enable your agents to participate in contract management decisions.
24+
{/* MANUAL-CONTENT-END */}
25+
26+
## Usage Instructions
27+
28+
Manage workflows and records in Ironclad. Create and track contract workflows, manage records, view approvals, add comments, and update metadata. Requires an Ironclad OAuth connection.
29+
30+
31+
32+
## Tools
33+
34+
### `ironclad_create_workflow`
35+
36+
Create a new workflow in Ironclad using a specified template and attributes.
37+
38+
#### Input
39+
40+
| Parameter | Type | Required | Description |
41+
| --------- | ---- | -------- | ----------- |
42+
| `template` | string | Yes | The template ID to use for the workflow |
43+
| `attributes` | string | No | JSON object of workflow attributes |
44+
45+
#### Output
46+
47+
| Parameter | Type | Description |
48+
| --------- | ---- | ----------- |
49+
| `id` | string | The ID of the created workflow |
50+
| `status` | string | The status of the workflow |
51+
| `template` | string | The template used for the workflow |
52+
| `creator` | string | The creator of the workflow |
53+
54+
### `ironclad_list_workflows`
55+
56+
List all workflows in Ironclad with pagination support.
57+
58+
#### Input
59+
60+
| Parameter | Type | Required | Description |
61+
| --------- | ---- | -------- | ----------- |
62+
| `page` | number | No | Page number \(starting from 0\) |
63+
| `perPage` | number | No | Number of results per page \(max 100\) |
64+
65+
#### Output
66+
67+
| Parameter | Type | Description |
68+
| --------- | ---- | ----------- |
69+
| `workflows` | json | List of workflows |
70+
| `page` | number | Current page number |
71+
| `pageSize` | number | Number of results per page |
72+
| `count` | number | Total number of workflows |
73+
74+
### `ironclad_get_workflow`
75+
76+
Retrieve details of a specific workflow by its ID.
77+
78+
#### Input
79+
80+
| Parameter | Type | Required | Description |
81+
| --------- | ---- | -------- | ----------- |
82+
| `workflowId` | string | Yes | The unique identifier of the workflow |
83+
84+
#### Output
85+
86+
| Parameter | Type | Description |
87+
| --------- | ---- | ----------- |
88+
| `id` | string | The workflow ID |
89+
| `status` | string | The workflow status |
90+
| `template` | string | The template used for the workflow |
91+
| `creator` | string | The creator of the workflow |
92+
| `step` | string | The current step of the workflow |
93+
| `attributes` | json | The workflow attributes |
94+
95+
### `ironclad_update_workflow_metadata`
96+
97+
Update attributes on a workflow. The workflow must be in the Review step. Supports set and remove actions.
98+
99+
#### Input
100+
101+
| Parameter | Type | Required | Description |
102+
| --------- | ---- | -------- | ----------- |
103+
| `workflowId` | string | Yes | The unique identifier of the workflow |
104+
| `actions` | string | Yes | JSON array of actions. Each action has "action" \(set/remove\), "field", and optionally "value". |
105+
106+
#### Output
107+
108+
| Parameter | Type | Description |
109+
| --------- | ---- | ----------- |
110+
| `success` | boolean | Whether the update was successful |
111+
112+
### `ironclad_cancel_workflow`
113+
114+
Cancel a workflow instance by its ID.
115+
116+
#### Input
117+
118+
| Parameter | Type | Required | Description |
119+
| --------- | ---- | -------- | ----------- |
120+
| `workflowId` | string | Yes | The unique identifier of the workflow to cancel |
121+
122+
#### Output
123+
124+
| Parameter | Type | Description |
125+
| --------- | ---- | ----------- |
126+
| `success` | boolean | Whether the cancellation was successful |
127+
128+
### `ironclad_list_workflow_approvals`
129+
130+
List all triggered approvals for a specific workflow. Conditional approvals that have not been triggered will not appear.
131+
132+
#### Input
133+
134+
| Parameter | Type | Required | Description |
135+
| --------- | ---- | -------- | ----------- |
136+
| `workflowId` | string | Yes | The unique identifier of the workflow |
137+
138+
#### Output
139+
140+
| Parameter | Type | Description |
141+
| --------- | ---- | ----------- |
142+
| `approvals` | json | List of triggered approval groups for the workflow |
143+
144+
### `ironclad_add_comment`
145+
146+
Add a comment to a workflow.
147+
148+
#### Input
149+
150+
| Parameter | Type | Required | Description |
151+
| --------- | ---- | -------- | ----------- |
152+
| `workflowId` | string | Yes | The unique identifier of the workflow |
153+
| `comment` | string | Yes | The comment text to add |
154+
155+
#### Output
156+
157+
| Parameter | Type | Description |
158+
| --------- | ---- | ----------- |
159+
| `success` | boolean | Whether the comment was added successfully |
160+
161+
### `ironclad_list_workflow_comments`
162+
163+
List all comments on a workflow.
164+
165+
#### Input
166+
167+
| Parameter | Type | Required | Description |
168+
| --------- | ---- | -------- | ----------- |
169+
| `workflowId` | string | Yes | The unique identifier of the workflow |
170+
171+
#### Output
172+
173+
| Parameter | Type | Description |
174+
| --------- | ---- | ----------- |
175+
| `comments` | json | List of comments on the workflow |
176+
177+
### `ironclad_create_record`
178+
179+
Create a new record in Ironclad with a specified type, name, and properties.
180+
181+
#### Input
182+
183+
| Parameter | Type | Required | Description |
184+
| --------- | ---- | -------- | ----------- |
185+
| `recordType` | string | Yes | The record type \(e.g., "contract", "Statement of Work"\) |
186+
| `name` | string | Yes | A human-readable name for the record |
187+
| `properties` | string | No | JSON object of properties. Each property has a "type" \(string/number/email/date/monetary_amount\) and "value". |
188+
| `links` | string | No | JSON array of linked record objects, each with a "recordId" field |
189+
190+
#### Output
191+
192+
| Parameter | Type | Description |
193+
| --------- | ---- | ----------- |
194+
| `id` | string | The ID of the created record |
195+
| `name` | string | The name of the record |
196+
| `type` | string | The type of the record |
197+
198+
### `ironclad_list_records`
199+
200+
List all records in Ironclad with pagination and optional filtering by last updated time.
201+
202+
#### Input
203+
204+
| Parameter | Type | Required | Description |
205+
| --------- | ---- | -------- | ----------- |
206+
| `page` | number | No | Page number \(starting from 0\) |
207+
| `pageSize` | number | No | Number of results per page \(max 100\) |
208+
| `lastUpdated` | string | No | Filter records updated on or after this ISO 8601 timestamp |
209+
210+
#### Output
211+
212+
| Parameter | Type | Description |
213+
| --------- | ---- | ----------- |
214+
| `records` | json | List of records |
215+
| `page` | number | Current page number |
216+
| `pageSize` | number | Number of results per page |
217+
| `count` | number | Total number of records |
218+
219+
### `ironclad_get_record`
220+
221+
Retrieve details of a specific record by its ID.
222+
223+
#### Input
224+
225+
| Parameter | Type | Required | Description |
226+
| --------- | ---- | -------- | ----------- |
227+
| `recordId` | string | Yes | The unique identifier of the record |
228+
229+
#### Output
230+
231+
| Parameter | Type | Description |
232+
| --------- | ---- | ----------- |
233+
| `id` | string | The record ID |
234+
| `name` | string | The record name |
235+
| `type` | string | The record type |
236+
| `properties` | json | The record properties |
237+
| `createdAt` | string | When the record was created |
238+
| `updatedAt` | string | When the record was last updated |
239+
240+
### `ironclad_update_record`
241+
242+
Update metadata fields on an existing record.
243+
244+
#### Input
245+
246+
| Parameter | Type | Required | Description |
247+
| --------- | ---- | -------- | ----------- |
248+
| `recordId` | string | Yes | The unique identifier of the record to update |
249+
| `properties` | string | Yes | JSON object of fields to update \(e.g., \{"fieldName": "newValue"\}\) |
250+
251+
#### Output
252+
253+
| Parameter | Type | Description |
254+
| --------- | ---- | ----------- |
255+
| `id` | string | The record ID |
256+
| `name` | string | The record name |
257+
| `type` | string | The record type |
258+
259+

apps/docs/content/docs/en/tools/meta.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
"incidentio",
8080
"infisical",
8181
"intercom",
82+
"ironclad",
8283
"jina",
8384
"jira",
8485
"jira_service_management",

apps/sim/app/(landing)/integrations/data/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ import {
8484
IncidentioIcon,
8585
InfisicalIcon,
8686
IntercomIcon,
87+
IroncladIcon,
8788
JinaAIIcon,
8889
JiraIcon,
8990
JiraServiceManagementIcon,
@@ -258,6 +259,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
258259
incidentio: IncidentioIcon,
259260
infisical: InfisicalIcon,
260261
intercom_v2: IntercomIcon,
262+
ironclad: IroncladIcon,
261263
jina: JinaAIIcon,
262264
jira: JiraIcon,
263265
jira_service_management: JiraServiceManagementIcon,

apps/sim/app/(landing)/integrations/data/integrations.json

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5758,6 +5758,73 @@
57585758
"integrationType": "customer-support",
57595759
"tags": ["customer-support", "messaging"]
57605760
},
5761+
{
5762+
"type": "ironclad",
5763+
"slug": "ironclad",
5764+
"name": "Ironclad",
5765+
"description": "Contract lifecycle management with Ironclad",
5766+
"longDescription": "Manage workflows and records in Ironclad. Create and track contract workflows, manage records, view approvals, add comments, and update metadata. Requires an Ironclad OAuth connection.",
5767+
"bgColor": "#FFFFFF",
5768+
"iconName": "IroncladIcon",
5769+
"docsUrl": "https://docs.sim.ai/tools/ironclad",
5770+
"operations": [
5771+
{
5772+
"name": "Create Workflow",
5773+
"description": "Create a new workflow in Ironclad using a specified template and attributes."
5774+
},
5775+
{
5776+
"name": "List Workflows",
5777+
"description": "List all workflows in Ironclad with pagination support."
5778+
},
5779+
{
5780+
"name": "Get Workflow",
5781+
"description": "Retrieve details of a specific workflow by its ID."
5782+
},
5783+
{
5784+
"name": "Update Workflow Metadata",
5785+
"description": "Update attributes on a workflow. The workflow must be in the Review step. Supports set and remove actions."
5786+
},
5787+
{
5788+
"name": "Cancel Workflow",
5789+
"description": "Cancel a workflow instance by its ID."
5790+
},
5791+
{
5792+
"name": "List Workflow Approvals",
5793+
"description": "List all triggered approvals for a specific workflow. Conditional approvals that have not been triggered will not appear."
5794+
},
5795+
{
5796+
"name": "Add Comment",
5797+
"description": "Add a comment to a workflow."
5798+
},
5799+
{
5800+
"name": "List Workflow Comments",
5801+
"description": "List all comments on a workflow."
5802+
},
5803+
{
5804+
"name": "Create Record",
5805+
"description": "Create a new record in Ironclad with a specified type, name, and properties."
5806+
},
5807+
{
5808+
"name": "List Records",
5809+
"description": "List all records in Ironclad with pagination and optional filtering by last updated time."
5810+
},
5811+
{
5812+
"name": "Get Record",
5813+
"description": "Retrieve details of a specific record by its ID."
5814+
},
5815+
{
5816+
"name": "Update Record",
5817+
"description": "Update metadata fields on an existing record."
5818+
}
5819+
],
5820+
"operationCount": 12,
5821+
"triggers": [],
5822+
"triggerCount": 0,
5823+
"authType": "oauth",
5824+
"category": "tools",
5825+
"integrationType": "documents",
5826+
"tags": ["e-signatures", "document-processing"]
5827+
},
57615828
{
57625829
"type": "jina",
57635830
"slug": "jina",

0 commit comments

Comments
 (0)