Skip to content

Commit bd61603

Browse files
BillLeoutsakosvl346Bill Leoutsakos
andauthored
feat(tiktok): unhide integration (#5978)
* feat: unhide TikTok integration * test: remove TikTok visibility assertion --------- Co-authored-by: Bill Leoutsakos <billleoutsakos@Bills-MacBook-Pro.local>
1 parent 49adf91 commit bd61603

7 files changed

Lines changed: 315 additions & 10 deletions

File tree

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ import {
217217
TemporalIcon,
218218
TextractIcon,
219219
ThriveIcon,
220+
TikTokIcon,
220221
TinybirdIcon,
221222
TrelloIcon,
222223
TriggerDevIcon,
@@ -484,6 +485,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
484485
textract: TextractIcon,
485486
textract_v2: TextractIcon,
486487
thrive: ThriveIcon,
488+
tiktok: TikTokIcon,
487489
tinybird: TinybirdIcon,
488490
trello: TrelloIcon,
489491
trigger_dev: TriggerDevIcon,

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@
238238
"temporal",
239239
"textract",
240240
"thrive",
241+
"tiktok",
241242
"tinybird",
242243
"trello",
243244
"trigger_dev",
Lines changed: 237 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
---
2+
title: TikTok
3+
description: Access TikTok profiles and videos, and upload inbox drafts
4+
---
5+
6+
import { BlockInfoCard } from "@/components/ui/block-info-card"
7+
8+
<BlockInfoCard
9+
type="tiktok"
10+
color="#000000"
11+
/>
12+
13+
## Usage Instructions
14+
15+
Integrate TikTok into your workflow. Get user profile information including follower counts and video statistics. List and query videos with cover images, embed links, and metadata. Send uploaded videos to the TikTok inbox as drafts for human review and publishing, then track post status.
16+
17+
18+
19+
## Actions
20+
21+
### `tiktok_get_user`
22+
23+
Get the authenticated TikTok user profile information including display name, avatar, bio, follower count, and video statistics.
24+
25+
#### Input
26+
27+
| Parameter | Type | Required | Description |
28+
| --------- | ---- | -------- | ----------- |
29+
| `fields` | string | No | Comma-separated allowlisted fields to return. open_id and display_name are always included. Available: open_id, union_id, avatar_url, avatar_large_url, display_name, bio_description, profile_deep_link, is_verified, username, follower_count, following_count, likes_count, video_count. Include avatar_url or avatar_large_url to receive avatarFile. |
30+
31+
#### Output
32+
33+
| Parameter | Type | Description |
34+
| --------- | ---- | ----------- |
35+
| `openId` | string | Unique TikTok user ID for this application |
36+
| `unionId` | string | Unique TikTok user ID across all apps from the same developer |
37+
| `displayName` | string | User display name |
38+
| `bioDescription` | string | User bio description |
39+
| `profileDeepLink` | string | Deep link to user TikTok profile |
40+
| `isVerified` | boolean | Whether the account is verified |
41+
| `username` | string | TikTok username |
42+
| `followerCount` | number | Number of followers |
43+
| `followingCount` | number | Number of accounts the user follows |
44+
| `likesCount` | number | Total likes received across all videos |
45+
| `videoCount` | number | Total number of public videos |
46+
| `avatarFile` | file | Downloadable copy of the profile avatar image \(largest available variant\), stored as a workflow file so it can be chained into file-consuming blocks \(e.g. attached to an email\). |
47+
48+
### `tiktok_list_videos`
49+
50+
Get a list of the authenticated user's TikTok videos with cover images, titles, and metadata. Supports pagination.
51+
52+
#### Input
53+
54+
| Parameter | Type | Required | Description |
55+
| --------- | ---- | -------- | ----------- |
56+
| `maxCount` | number | No | Maximum number of videos to return \(1-20\) |
57+
| `cursor` | number | No | Cursor for pagination \(from previous response\) |
58+
59+
#### Output
60+
61+
| Parameter | Type | Description |
62+
| --------- | ---- | ----------- |
63+
| `videos` | array | List of TikTok videos |
64+
|`id` | string | Video ID |
65+
|`title` | string | Video title |
66+
|`coverImageUrl` | string | Signed TikTok CDN cover URL. It is public but time-limited, so consume it immediately. |
67+
|`embedLink` | string | Embeddable video URL |
68+
|`embedHtml` | string | HTML embed markup for the video |
69+
|`duration` | number | Video duration in seconds |
70+
|`createTime` | number | Unix timestamp when the video was created |
71+
|`shareUrl` | string | Shareable video URL |
72+
|`videoDescription` | string | Video description or caption |
73+
|`width` | number | Video width in pixels |
74+
|`height` | number | Video height in pixels |
75+
|`viewCount` | number | Number of views |
76+
|`likeCount` | number | Number of likes |
77+
|`commentCount` | number | Number of comments |
78+
|`shareCount` | number | Number of shares |
79+
| `cursor` | number | Cursor for fetching the next page of results |
80+
| `hasMore` | boolean | Whether there are more videos to fetch |
81+
82+
### `tiktok_query_videos`
83+
84+
Query specific TikTok videos by their IDs to get fresh metadata including cover images, embed links, and video details.
85+
86+
#### Input
87+
88+
| Parameter | Type | Required | Description |
89+
| --------- | ---- | -------- | ----------- |
90+
| `videoIds` | array | Yes | Array of video IDs to query \(maximum 20\) |
91+
92+
#### Output
93+
94+
| Parameter | Type | Description |
95+
| --------- | ---- | ----------- |
96+
| `videos` | array | List of queried TikTok videos |
97+
|`id` | string | Video ID |
98+
|`title` | string | Video title |
99+
|`coverImageUrl` | string | Signed TikTok CDN cover URL. It is public but time-limited, so consume it immediately. |
100+
|`embedLink` | string | Embeddable video URL |
101+
|`embedHtml` | string | HTML embed markup for the video |
102+
|`duration` | number | Video duration in seconds |
103+
|`createTime` | number | Unix timestamp when the video was created |
104+
|`shareUrl` | string | Shareable video URL |
105+
|`videoDescription` | string | Video description or caption |
106+
|`width` | number | Video width in pixels |
107+
|`height` | number | Video height in pixels |
108+
|`viewCount` | number | Number of views |
109+
|`likeCount` | number | Number of likes |
110+
|`commentCount` | number | Number of comments |
111+
|`shareCount` | number | Number of shares |
112+
113+
### `tiktok_upload_video_draft`
114+
115+
Send an uploaded video to the authenticated user's TikTok inbox for manual editing and posting. The user must open TikTok and tap the inbox notification to complete the post. Rate limit: 6 requests per minute per user.
116+
117+
#### Input
118+
119+
| Parameter | Type | Required | Description |
120+
| --------- | ---- | -------- | ----------- |
121+
| `file` | file | Yes | Video file to upload from the workflow. Maximum size: 250 MB. |
122+
123+
#### Output
124+
125+
| Parameter | Type | Description |
126+
| --------- | ---- | ----------- |
127+
| `publishId` | string | Unique identifier for tracking the draft status. Use this with the Get Post Status tool to check when the user has completed posting from their inbox. |
128+
129+
### `tiktok_get_post_status`
130+
131+
Check the status of a video draft upload. Use the publishId returned from Upload Video Draft to track progress.
132+
133+
#### Input
134+
135+
| Parameter | Type | Required | Description |
136+
| --------- | ---- | -------- | ----------- |
137+
| `publishId` | string | Yes | The publish ID returned from a post/upload tool. |
138+
139+
#### Output
140+
141+
| Parameter | Type | Description |
142+
| --------- | ---- | ----------- |
143+
| `status` | string | Current status of the post. Values: PROCESSING_UPLOAD/PROCESSING_DOWNLOAD \(TikTok is processing the media\), SEND_TO_USER_INBOX \(draft delivered, awaiting user action\), PUBLISH_COMPLETE \(successfully posted\), FAILED \(check failReason\). |
144+
| `failReason` | string | Reason for failure if status is FAILED. Null otherwise. |
145+
| `publiclyAvailablePostId` | array | Array of public post IDs \(as strings\) once the content is published and publicly viewable. Can be used to construct the TikTok post URL. |
146+
| `uploadedBytes` | number | Number of bytes uploaded to TikTok for FILE_UPLOAD posts |
147+
| `downloadedBytes` | number | Number of bytes TikTok reports as downloaded |
148+
149+
150+
151+
## Triggers
152+
153+
A **Trigger** is a block that starts a workflow when an event happens in this service.
154+
155+
### TikTok Authorization Removed
156+
157+
Trigger when a user deauthorizes your TikTok app
158+
159+
#### Configuration
160+
161+
| Parameter | Type | Required | Description |
162+
| --------- | ---- | -------- | ----------- |
163+
| `triggerCredentials` | string | Yes | TikTok Account |
164+
#### Output
165+
166+
| Parameter | Type | Description |
167+
| --------- | ---- | ----------- |
168+
| `event` | string | TikTok webhook event name |
169+
| `createTime` | number | UTC epoch seconds when the event occurred |
170+
| `userOpenId` | string | TikTok user open_id for the connected account |
171+
| `clientKey` | string | TikTok app client_key that received the event |
172+
| `reason` | number | Revocation reason \(0 unknown, 1 user disconnect, 2 account deleted, 3 age change, 4 banned, 5 developer revoke\) |
173+
174+
175+
---
176+
177+
### TikTok Post Inbox Delivered
178+
179+
Trigger when a draft notification is delivered to the creator inbox
180+
181+
#### Configuration
182+
183+
| Parameter | Type | Required | Description |
184+
| --------- | ---- | -------- | ----------- |
185+
| `triggerCredentials` | string | Yes | TikTok Account |
186+
187+
188+
---
189+
190+
### TikTok Post No Longer Public
191+
192+
Trigger when a post is no longer publicly viewable on TikTok
193+
194+
#### Configuration
195+
196+
| Parameter | Type | Required | Description |
197+
| --------- | ---- | -------- | ----------- |
198+
| `triggerCredentials` | string | Yes | TikTok Account |
199+
200+
201+
---
202+
203+
### TikTok Post Publicly Available
204+
205+
Trigger when a published post becomes publicly viewable on TikTok
206+
207+
#### Configuration
208+
209+
| Parameter | Type | Required | Description |
210+
| --------- | ---- | -------- | ----------- |
211+
| `triggerCredentials` | string | Yes | TikTok Account |
212+
213+
214+
---
215+
216+
### TikTok Post Publish Complete
217+
218+
Trigger when a TikTok Content Posting publish completes
219+
220+
#### Configuration
221+
222+
| Parameter | Type | Required | Description |
223+
| --------- | ---- | -------- | ----------- |
224+
| `triggerCredentials` | string | Yes | TikTok Account |
225+
226+
227+
---
228+
229+
### TikTok Post Publish Failed
230+
231+
Trigger when a TikTok Content Posting publish fails
232+
233+
#### Configuration
234+
235+
| Parameter | Type | Required | Description |
236+
| --------- | ---- | -------- | ----------- |
237+
| `triggerCredentials` | string | Yes | TikTok Account |

apps/sim/blocks/blocks/tiktok.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export const TikTokBlock: BlockConfig<TikTokResponse> = {
3535
bgColor: '#000000',
3636
icon: TikTokIcon,
3737
triggerAllowed: true,
38-
hideFromToolbar: true,
38+
hideFromToolbar: false,
3939

4040
subBlocks: [
4141
{

apps/sim/lib/integrations/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ import {
216216
TemporalIcon,
217217
TextractIcon,
218218
ThriveIcon,
219+
TikTokIcon,
219220
TinybirdIcon,
220221
TrelloIcon,
221222
TriggerDevIcon,
@@ -458,6 +459,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
458459
temporal: TemporalIcon,
459460
textract_v2: TextractIcon,
460461
thrive: ThriveIcon,
462+
tiktok: TikTokIcon,
461463
tinybird: TinybirdIcon,
462464
trello: TrelloIcon,
463465
trigger_dev: TriggerDevIcon,

apps/sim/lib/integrations/integrations.json

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19394,6 +19394,77 @@
1939419394
"integrationType": "hr",
1939519395
"tags": ["content-management", "knowledge-base", "automation"]
1939619396
},
19397+
{
19398+
"type": "tiktok",
19399+
"slug": "tiktok",
19400+
"name": "TikTok",
19401+
"description": "Access TikTok profiles and videos, and upload inbox drafts",
19402+
"longDescription": "Integrate TikTok into your workflow. Get user profile information including follower counts and video statistics. List and query videos with cover images, embed links, and metadata. Send uploaded videos to the TikTok inbox as drafts for human review and publishing, then track post status.",
19403+
"bgColor": "#000000",
19404+
"iconName": "TikTokIcon",
19405+
"docsUrl": "https://docs.sim.ai/integrations/tiktok",
19406+
"operations": [
19407+
{
19408+
"name": "Get User Info",
19409+
"description": "Get the authenticated TikTok user profile information including display name, avatar, bio, follower count, and video statistics."
19410+
},
19411+
{
19412+
"name": "List Videos",
19413+
"description": "Get a list of the authenticated user's TikTok videos with cover images, titles, and metadata. Supports pagination."
19414+
},
19415+
{
19416+
"name": "Query Videos",
19417+
"description": "Query specific TikTok videos by their IDs to get fresh metadata including cover images, embed links, and video details."
19418+
},
19419+
{
19420+
"name": "Upload Video Draft",
19421+
"description": "Send an uploaded video to the authenticated user's TikTok inbox for manual editing and posting. The user must open TikTok and tap the inbox notification to complete the post. Rate limit: 6 requests per minute per user."
19422+
},
19423+
{
19424+
"name": "Get Post Status",
19425+
"description": "Check the status of a video draft upload. Use the publishId returned from Upload Video Draft to track progress."
19426+
}
19427+
],
19428+
"operationCount": 5,
19429+
"triggers": [
19430+
{
19431+
"id": "tiktok_post_publish_complete",
19432+
"name": "TikTok Post Publish Complete",
19433+
"description": "Trigger when a TikTok Content Posting publish completes"
19434+
},
19435+
{
19436+
"id": "tiktok_post_publish_failed",
19437+
"name": "TikTok Post Publish Failed",
19438+
"description": "Trigger when a TikTok Content Posting publish fails"
19439+
},
19440+
{
19441+
"id": "tiktok_post_inbox_delivered",
19442+
"name": "TikTok Post Inbox Delivered",
19443+
"description": "Trigger when a draft notification is delivered to the creator inbox"
19444+
},
19445+
{
19446+
"id": "tiktok_post_publicly_available",
19447+
"name": "TikTok Post Publicly Available",
19448+
"description": "Trigger when a published post becomes publicly viewable on TikTok"
19449+
},
19450+
{
19451+
"id": "tiktok_post_no_longer_public",
19452+
"name": "TikTok Post No Longer Public",
19453+
"description": "Trigger when a post is no longer publicly viewable on TikTok"
19454+
},
19455+
{
19456+
"id": "tiktok_authorization_removed",
19457+
"name": "TikTok Authorization Removed",
19458+
"description": "Trigger when a user deauthorizes your TikTok app"
19459+
}
19460+
],
19461+
"triggerCount": 6,
19462+
"authType": "oauth",
19463+
"oauthServiceId": "tiktok",
19464+
"category": "tools",
19465+
"integrationType": "communication",
19466+
"tags": ["marketing", "content-management"]
19467+
},
1939719468
{
1939819469
"type": "tinybird",
1939919470
"slug": "tinybird",

scripts/generate-docs.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,7 @@ const HANDWRITTEN_TRIGGER_DOCS = new Set([
7070
])
7171

7272
/** Providers whose docs are already covered by hand-written pages. */
73-
const SKIP_TRIGGER_PROVIDERS = new Set([
74-
'generic',
75-
'rss',
76-
'table',
77-
'sim',
78-
// TikTok is temporarily hideFromToolbar; skip so cleanup does not leave an
79-
// orphan triggers-only docs page after the actions page is removed.
80-
'tiktok',
81-
])
73+
const SKIP_TRIGGER_PROVIDERS = new Set(['generic', 'rss', 'table', 'sim'])
8274

8375
/**
8476
* Maps trigger provider names (from TriggerConfig.provider) to their

0 commit comments

Comments
 (0)