将所有 Linear 工单写入 Google Sheets
中级
这是一个Engineering, Product领域的自动化工作流,包含 14 个节点。主要使用 If, Set, Code, Graphql, SplitOut 等节点。 将所有 Linear 工单写入 Google Sheets
前置要求
- •Google Sheets API 凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"nodes": [
{
"id": "58c69358-3d02-41c3-b50c-6e57452523a2",
"name": "每天06:00",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
960,
600
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 9
}
]
}
},
"typeVersion": 1
},
{
"id": "0a388351-6aec-45c4-a142-e89b338be155",
"name": "获取您团队的所有工单",
"type": "n8n-nodes-base.graphql",
"position": [
1200,
600
],
"parameters": {
"query": "query ($filter: IssueFilter) {\n issues(filter: $filter, first: 100) {\n pageInfo {\n hasNextPage\n endCursor\n }\n nodes {\n id\n identifier\n url\n title\n priorityLabel\n createdAt\n completedAt\n state {\n type\n name\n }\n cycle {\n number\n }\n estimate\n labels { nodes { name } }\n }\n }\n}",
"endpoint": "https://api.linear.app/graphql",
"variables": "={\n \"filter\": {\n \"team\": {\n \"name\": {\n \"eq\": \"Adore\"\n }\n }\n }\n}",
"requestFormat": "json",
"authentication": "headerAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "QNQL42DMISvQl50S",
"name": "Linear api "
}
},
"typeVersion": 1
},
{
"id": "91f29056-f934-4c15-8e98-2a202753971d",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1200,
460
],
"parameters": {
"color": 7,
"width": 256.14371825927645,
"height": 100,
"content": "👇🏽 在此筛选器中设置您的团队名称。"
},
"typeVersion": 1
},
{
"id": "8efeb08c-fbba-4c07-9ef8-e22afa39f328",
"name": "如果有下一页",
"type": "n8n-nodes-base.if",
"position": [
1400,
780
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f5ab21aa-b2e0-4885-9278-6756c2c544f9",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.data.issues.pageInfo.hasNextPage }}",
"rightValue": 0
}
]
}
},
"typeVersion": 2
},
{
"id": "fdfba048-ae14-45fb-88be-e354d7003fdb",
"name": "获取结束游标",
"type": "n8n-nodes-base.set",
"position": [
1620,
920
],
"parameters": {
"fields": {
"values": [
{
"name": "after",
"stringValue": "={{ $json.data.issues.pageInfo.endCursor }}"
}
]
},
"include": "none",
"options": {}
},
"typeVersion": 3.2
},
{
"id": "db37b327-d939-4a8b-bd5c-ff99c2191a54",
"name": "获取下一页",
"type": "n8n-nodes-base.graphql",
"position": [
1880,
920
],
"parameters": {
"query": "=query ($filter: IssueFilter) {\n issues(filter: $filter, first: 100, after: \"{{ $json.after }}\") {\n nodes {\n id\n identifier\n url\n title\n priorityLabel\n createdAt\n completedAt\n state {\n type\n name\n }\n cycle {\n number\n }\n estimate\n labels { nodes { name } }\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n}",
"endpoint": "https://api.linear.app/graphql",
"variables": "={\n \"filter\": {\n \"team\": {\n \"name\": {\n \"eq\": \"Adore\"\n }\n }\n }\n}",
"requestFormat": "json",
"authentication": "headerAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "QNQL42DMISvQl50S",
"name": "Linear api "
}
},
"typeVersion": 1
},
{
"id": "f7857473-966e-433e-a7d7-9c4e4bdb670a",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
2060,
940
],
"parameters": {
"color": 7,
"width": 256.14371825927645,
"height": 100,
"content": "👈🏽 在此筛选器中设置您的团队名称。"
},
"typeVersion": 1
},
{
"id": "75365be8-d111-4bc8-9da8-77e8d3a1de6c",
"name": "拆分工单",
"type": "n8n-nodes-base.splitOut",
"position": [
2020,
600
],
"parameters": {
"options": {},
"fieldToSplitOut": "data.issues.nodes"
},
"typeVersion": 1
},
{
"id": "691a8299-9c96-4520-a56b-7edf3bee42b5",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
2240,
460
],
"parameters": {
"color": 7,
"width": 256.14371825927645,
"height": 100,
"content": "👇🏽 调整任何自定义字段。这里我们设置标签和默认估算值为1"
},
"typeVersion": 1
},
{
"id": "4ff13ada-6534-4171-8704-4917b247727d",
"name": "设置自定义字段",
"type": "n8n-nodes-base.set",
"position": [
2240,
600
],
"parameters": {
"fields": {
"values": [
{
"name": "estimate",
"type": "numberValue",
"numberValue": "={{ $json.estimate ?? 1 }}"
},
{
"name": "labels",
"stringValue": "={{ $json.labels.nodes.map((label) => label.name).toString() }}"
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "02577d21-656e-425b-9924-37a34c822fe8",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
740,
300
],
"parameters": {
"color": 5,
"width": 403.45318928152614,
"height": 280.9004675550071,
"content": "### 👨🎤 设置"
},
"typeVersion": 1
},
{
"id": "6344a764-20f0-4f46-bdc8-1599c2f9ba95",
"name": "便签4",
"type": "n8n-nodes-base.stickyNote",
"position": [
2700,
780
],
"parameters": {
"color": 7,
"width": 256.14371825927645,
"height": 100,
"content": "👆🏽 更新要写入的Google表格"
},
"typeVersion": 1
},
{
"id": "ba08e0c7-1607-4bcd-8b37-99a6145b0cba",
"name": "将工单写入Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
2720,
600
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
}
],
"mappingMode": "autoMapInputData",
"matchingColumns": [
"id"
]
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 2072772685,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1pQxSIZ2dSoA8Fmr3B4EId9VOQXH1hVuOZgCHxcaKN7k/edit#gid=2072772685",
"cachedResultName": "Sheet2"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1pQxSIZ2dSoA8Fmr3B4EId9VOQXH1hVuOZgCHxcaKN7k",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1pQxSIZ2dSoA8Fmr3B4EId9VOQXH1hVuOZgCHxcaKN7k/edit?usp=drivesdk",
"cachedResultName": "Adore tickets"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "xNiEr671wxZVfjs6",
"name": "Google Sheets account 3"
}
},
"retryOnFail": true,
"typeVersion": 4.2,
"waitBetweenTries": 5000
},
{
"id": "df3ae898-1f09-4be3-a96a-f1f9cba58730",
"name": "扁平化对象以获取可用于筛选的简单字段",
"type": "n8n-nodes-base.code",
"position": [
2480,
600
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "function flattenObject(ob) {\n var toReturn = {};\n\n for (var i in ob) {\n if (!ob.hasOwnProperty(i)) continue;\n\n if ((typeof ob[i]) == 'object' && ob[i] !== null) {\n var flatObject = flattenObject(ob[i]);\n for (var x in flatObject) {\n if (!flatObject.hasOwnProperty(x)) continue;\n\n toReturn[i + '.' + x] = flatObject[x];\n }\n } else {\n toReturn[i] = ob[i];\n }\n }\n return toReturn;\n}\n\nreturn flattenObject($input.item.json);"
},
"typeVersion": 2
}
],
"pinData": {},
"connections": {
"Get next page": {
"main": [
[
{
"node": "if has next page",
"type": "main",
"index": 0
},
{
"node": "Split out the tickets",
"type": "main",
"index": 0
}
]
]
},
"Get end cursor": {
"main": [
[
{
"node": "Get next page",
"type": "main",
"index": 0
}
]
]
},
"if has next page": {
"main": [
[
{
"node": "Get end cursor",
"type": "main",
"index": 0
}
]
]
},
"Set custom fields": {
"main": [
[
{
"node": "Flatten object to have simple fields to filter by",
"type": "main",
"index": 0
}
]
]
},
"Every day at 06:00": {
"main": [
[
{
"node": "Get all your team's tickets",
"type": "main",
"index": 0
}
]
]
},
"Split out the tickets": {
"main": [
[
{
"node": "Set custom fields",
"type": "main",
"index": 0
}
]
]
},
"Get all your team's tickets": {
"main": [
[
{
"node": "Split out the tickets",
"type": "main",
"index": 0
},
{
"node": "if has next page",
"type": "main",
"index": 0
}
]
]
},
"Flatten object to have simple fields to filter by": {
"main": [
[
{
"node": "Write tickets to Sheets",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级 - 工程, 产品
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
使用 OpenAI、Google Sheets、Jina AI 和 Slack 的 AI 驱动信息监控
基于AI的信息监控,集成OpenAI、Google Sheets、Jina AI和Slack
If
Set
Code
+10
31 节点Dataki
销售
API架构提取器
API架构提取器
If
Set
Code
+22
88 节点Polina Medvedieva
工程
实时Notion Todoist双向同步模板
使用Redis的Notion Todoist实时双向同步
If
Set
Code
+26
246 节点Mario
销售
敏捷团队冲刺规划自动化
使用OpenAI、Google日历和Gmail为敏捷团队自动化冲刺规划
If
Set
Code
+17
52 节点Willemijn
产品
从 Notion 内容创建 Linear 工单
从 Notion 内容创建 Linear 工单
If
Set
Code
+11
24 节点David Roberts
工程
表格RAG查询
使用PostgreSQL通过AI代理查询Google Sheets/CSV数据
If
Set
Code
+9
23 节点Leonardo Grigorio
工程