Skip to content

Commit 363858e

Browse files
2286 - attio component added
1 parent 1e5619c commit 363858e

25 files changed

+5626
-3
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,269 @@
1+
---
2+
title: "Attio"
3+
description: "Attio is the AI-native CRM that builds, scales and grows your company to the next level."
4+
---
5+
6+
Attio is the AI-native CRM that builds, scales and grows your company to the next level.
7+
8+
9+
Categories: CRM
10+
11+
12+
Type: attio/v1
13+
14+
<hr />
15+
16+
17+
18+
## Connections
19+
20+
Version: 1
21+
22+
23+
### Access Token
24+
25+
#### Properties
26+
27+
| Name | Label | Type | Description | Required |
28+
|:---------------:|:--------------:|:------------:|:-------------------:|:--------:|
29+
| token | Access Token | STRING | Can be found in Workspace Settings -> Developers -> Access tokens. | true |
30+
31+
32+
33+
34+
35+
<hr />
36+
37+
38+
39+
## Actions
40+
41+
42+
### Create Record
43+
Name: createRecord
44+
45+
Creates a new record.
46+
47+
#### Properties
48+
49+
| Name | Label | Type | Description | Required |
50+
|:---------------:|:--------------:|:------------:|:-------------------:|:--------:|
51+
| record_type | Record Type | STRING | Type of record that will be created. | true |
52+
| value | | DYNAMIC_PROPERTIES <details> <summary> Depends On </summary> record_type </details> | | true |
53+
54+
#### Example JSON Structure
55+
```json
56+
{
57+
"label" : "Create Record",
58+
"name" : "createRecord",
59+
"parameters" : {
60+
"record_type" : "",
61+
"value" : { }
62+
},
63+
"type" : "attio/v1/createRecord"
64+
}
65+
```
66+
67+
#### Output
68+
69+
The output for this action is dynamic and may vary depending on the input parameters. To determine the exact structure of the output, you need to execute the action.
70+
71+
72+
73+
74+
### Create Task
75+
Name: createTask
76+
77+
Creates a new task.
78+
79+
#### Properties
80+
81+
| Name | Label | Type | Description | Required |
82+
|:---------------:|:--------------:|:------------:|:-------------------:|:--------:|
83+
| content | Content | STRING | | true |
84+
| format | Format | STRING <details> <summary> Options </summary> plaintext </details> | | true |
85+
| deadline_at | Deadline | DATE | | true |
86+
| is_completed | Is Completed | BOOLEAN <details> <summary> Options </summary> true, false </details> | | true |
87+
| linked_records | Linked Records | ARRAY <details> <summary> Items </summary> [{STRING\(target_object), STRING\(target_record_id)}] </details> | | true |
88+
| assignees | Assignees | ARRAY <details> <summary> Items </summary> [{STRING\(referenced_actor_type), STRING\(referenced_actor_id)}] </details> | | true |
89+
90+
#### Example JSON Structure
91+
```json
92+
{
93+
"label" : "Create Task",
94+
"name" : "createTask",
95+
"parameters" : {
96+
"content" : "",
97+
"format" : "",
98+
"deadline_at" : "2021-01-01",
99+
"is_completed" : false,
100+
"linked_records" : [ {
101+
"target_object" : "",
102+
"target_record_id" : ""
103+
} ],
104+
"assignees" : [ {
105+
"referenced_actor_type" : "",
106+
"referenced_actor_id" : ""
107+
} ]
108+
},
109+
"type" : "attio/v1/createTask"
110+
}
111+
```
112+
113+
#### Output
114+
115+
116+
117+
Type: OBJECT
118+
119+
120+
#### Properties
121+
122+
| Name | Type | Description |
123+
|:------------:|:------------:|:-------------------:|
124+
| data | OBJECT <details> <summary> Properties </summary> {{STRING\(workspace_id), STRING\(task_id)}\(id), STRING\(content_plaintext), BOOLEAN\(is_completed), STRING\(deadline_at), [STRING\($target_object_id), STRING\($target_record_id)]\(linked_records), [STRING\($referenced_actor_type), STRING\($referenced_actor_id)]\(assignees), {STRING\(type), STRING\(id)}\(created_by_actor), STRING\(created_at)} </details> | |
125+
126+
127+
128+
129+
#### Output Example
130+
```json
131+
{
132+
"data" : {
133+
"id" : {
134+
"workspace_id" : "",
135+
"task_id" : ""
136+
},
137+
"content_plaintext" : "",
138+
"is_completed" : false,
139+
"deadline_at" : "",
140+
"linked_records" : [ "", "" ],
141+
"assignees" : [ "", "" ],
142+
"created_by_actor" : {
143+
"type" : "",
144+
"id" : ""
145+
},
146+
"created_at" : ""
147+
}
148+
}
149+
```
150+
151+
152+
### Update Record
153+
Name: updateRecord
154+
155+
Updates a record.
156+
157+
#### Properties
158+
159+
| Name | Label | Type | Description | Required |
160+
|:---------------:|:--------------:|:------------:|:-------------------:|:--------:|
161+
| record_type | Record Type | STRING | Type of record that will be created. | true |
162+
| record_id | Record ID | STRING <details> <summary> Depends On </summary> record_type </details> | ID of the record that will be updated. | true |
163+
| value | | DYNAMIC_PROPERTIES <details> <summary> Depends On </summary> record_type </details> | | true |
164+
165+
#### Example JSON Structure
166+
```json
167+
{
168+
"label" : "Update Record",
169+
"name" : "updateRecord",
170+
"parameters" : {
171+
"record_type" : "",
172+
"record_id" : "",
173+
"value" : { }
174+
},
175+
"type" : "attio/v1/updateRecord"
176+
}
177+
```
178+
179+
#### Output
180+
181+
The output for this action is dynamic and may vary depending on the input parameters. To determine the exact structure of the output, you need to execute the action.
182+
183+
184+
185+
186+
187+
188+
## Triggers
189+
190+
191+
### Record Created
192+
Name: recordCreated
193+
194+
Triggers when new record is created.
195+
196+
Type: DYNAMIC_WEBHOOK
197+
198+
199+
#### Output
200+
201+
202+
203+
Type: OBJECT
204+
205+
206+
#### Properties
207+
208+
| Name | Type | Description |
209+
|:------------:|:------------:|:-------------------:|
210+
| event_type | STRING | Type of an event that triggers the trigger. |
211+
| id | OBJECT <details> <summary> Properties </summary> {STRING\(workspace_id), STRING\(task_id)} </details> | |
212+
| actor | OBJECT <details> <summary> Properties </summary> {STRING\(type), STRING\(id)} </details> | |
213+
214+
215+
216+
217+
#### JSON Example
218+
```json
219+
{
220+
"label" : "Record Created",
221+
"name" : "recordCreated",
222+
"type" : "attio/v1/recordCreated"
223+
}
224+
```
225+
226+
227+
### Task Created
228+
Name: taskCreated
229+
230+
Triggers when new task is created.
231+
232+
Type: DYNAMIC_WEBHOOK
233+
234+
235+
#### Output
236+
237+
238+
239+
Type: OBJECT
240+
241+
242+
#### Properties
243+
244+
| Name | Type | Description |
245+
|:------------:|:------------:|:-------------------:|
246+
| event_type | STRING | Type of an event that triggers the trigger. |
247+
| id | OBJECT <details> <summary> Properties </summary> {STRING\(workspace_id), STRING\(task_id)} </details> | |
248+
| actor | OBJECT <details> <summary> Properties </summary> {STRING\(type), STRING\(id)} </details> | |
249+
250+
251+
252+
253+
#### JSON Example
254+
```json
255+
{
256+
"label" : "Task Created",
257+
"name" : "taskCreated",
258+
"type" : "attio/v1/taskCreated"
259+
}
260+
```
261+
262+
263+
<hr />
264+
265+
<hr />
266+
267+
# Additional instructions
268+
<hr />
269+

server/apps/server-app/build.gradle.kts

+2-1
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,14 @@ dependencies {
176176
implementation(project(":server:libs:modules:components:app-event"))
177177
implementation(project(":server:libs:modules:components:approval-link"))
178178
implementation(project(":server:libs:modules:components:asana"))
179+
implementation(project(":server:libs:modules:components:attio"))
179180
implementation(project(":server:libs:modules:components:aws:aws-s3"))
180181
implementation(project(":server:libs:modules:components:bamboohr"))
181182
implementation(project(":server:libs:modules:components:baserow"))
182183
implementation(project(":server:libs:modules:components:bash"))
183184
implementation(project(":server:libs:modules:components:beamer"))
184185
implementation(project(":server:libs:modules:components:binance"))
185-
implementation(project(":server:libs:modules:components:bolna"))
186+
implementation(project(":server:libs:modules:components:bolna"))
186187
implementation(project(":server:libs:modules:components:box"))
187188
implementation(project(":server:libs:modules:components:brevo"))
188189
implementation(project(":server:libs:modules:components:calendly"))

server/ee/apps/worker-app/build.gradle.kts

+3-2
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,14 @@ dependencies {
100100
implementation(project(":server:libs:modules:components:app-event"))
101101
implementation(project(":server:libs:modules:components:approval-link"))
102102
implementation(project(":server:libs:modules:components:asana"))
103+
implementation(project(":server:libs:modules:components:attio"))
103104
implementation(project(":server:libs:modules:components:aws:aws-s3"))
104105
implementation(project(":server:libs:modules:components:bamboohr"))
105106
implementation(project(":server:libs:modules:components:baserow"))
106107
implementation(project(":server:libs:modules:components:bash"))
107108
implementation(project(":server:libs:modules:components:beamer"))
108109
implementation(project(":server:libs:modules:components:binance"))
109-
implementation(project(":server:libs:modules:components:bolna"))
110+
implementation(project(":server:libs:modules:components:bolna"))
110111
implementation(project(":server:libs:modules:components:box"))
111112
implementation(project(":server:libs:modules:components:brevo"))
112113
implementation(project(":server:libs:modules:components:calendly"))
@@ -142,7 +143,7 @@ implementation(project(":server:libs:modules:components:bolna"))
142143
implementation(project(":server:libs:modules:components:google:google-sheets"))
143144
implementation(project(":server:libs:modules:components:google:google-slides"))
144145
implementation(project(":server:libs:modules:components:google:google-tasks"))
145-
implementation(project(":server:libs:modules:components:graphql-client"))
146+
implementation(project(":server:libs:modules:components:graphql-client"))
146147
implementation(project(":server:libs:modules:components:hacker-news"))
147148
implementation(project(":server:libs:modules:components:http-client"))
148149
implementation(project(":server:libs:modules:components:hubspot"))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
version="1.0"
2+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/*
2+
* Copyright 2025 ByteChef
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package com.bytechef.component.attio;
18+
19+
import static com.bytechef.component.definition.ComponentDsl.component;
20+
import static com.bytechef.component.definition.ComponentDsl.tool;
21+
22+
import com.bytechef.component.ComponentHandler;
23+
import com.bytechef.component.attio.action.AttioCreateRecordAction;
24+
import com.bytechef.component.attio.action.AttioCreateTaskAction;
25+
import com.bytechef.component.attio.action.AttioUpdateRecordAction;
26+
import com.bytechef.component.attio.connection.AttioConnection;
27+
import com.bytechef.component.attio.trigger.AttioRecordCreatedTrigger;
28+
import com.bytechef.component.attio.trigger.AttioTaskCreatedTrigger;
29+
import com.bytechef.component.definition.ComponentCategory;
30+
import com.bytechef.component.definition.ComponentDefinition;
31+
import com.google.auto.service.AutoService;
32+
33+
/**
34+
* @author Nikolina Spehar
35+
*/
36+
@AutoService(ComponentHandler.class)
37+
public class AttioComponentHandler implements ComponentHandler {
38+
39+
private static final ComponentDefinition COMPONENT_DEFINITION = component("attio")
40+
.title("Attio")
41+
.description("Attio is the AI-native CRM that builds, scales and grows your company to the next level.")
42+
.icon("path:assets/attio.svg")
43+
.categories(ComponentCategory.CRM)
44+
.connection(AttioConnection.CONNECTION_DEFINITION)
45+
.actions(
46+
AttioCreateRecordAction.ACTION_DEFINITION,
47+
AttioCreateTaskAction.ACTION_DEFINITION,
48+
AttioUpdateRecordAction.ACTION_DEFINITION)
49+
.clusterElements(
50+
tool(AttioCreateRecordAction.ACTION_DEFINITION),
51+
tool(AttioCreateTaskAction.ACTION_DEFINITION))
52+
.triggers(
53+
AttioRecordCreatedTrigger.TRIGGER_DEFINITION,
54+
AttioTaskCreatedTrigger.TRIGGER_DEFINITION);
55+
56+
@Override
57+
public ComponentDefinition getDefinition() {
58+
return COMPONENT_DEFINITION;
59+
}
60+
}

0 commit comments

Comments
 (0)