Jamf Smart-Gruppenmitgliedschaften als CSV-Bericht in Slack exportieren
Experte
Dies ist ein DevOps-Bereich Automatisierungsworkflow mit 21 Nodes. Hauptsächlich werden Set, Code, Slack, Webhook, SplitOut und andere Nodes verwendet. Jamf intelligente Gruppenmitgliedschaften als CSV-Bericht zur Anzeige nach Slack exportieren
Voraussetzungen
- •Slack Bot Token oder Webhook URL
- •HTTP Webhook-Endpunkt (wird von n8n automatisch generiert)
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
Verwendete Nodes (21)
Kategorie
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
"meta": {
"instanceId": "894b3446666dc2807d20dfad165e2f6f3696905c2f8c352081f4fd666cdd7b1c"
},
"nodes": [
{
"id": "5fa718ad-f53d-4a5a-8106-f1f1aef44d47",
"name": "Bei Klick auf 'Workflow ausführen'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1780,
820
],
"parameters": {},
"typeVersion": 1
},
{
"id": "c137c6b0-1b24-43e4-b6a6-6ed59270d87d",
"name": "Gruppen durchlaufen",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-840,
680
],
"parameters": {
"options": {
"reset": false
}
},
"typeVersion": 3,
"alwaysOutputData": false
},
{
"id": "09fe9c6e-aefd-491a-b888-339311577ef7",
"name": "Gruppenmitglieder abrufen",
"type": "n8n-nodes-base.httpRequest",
"position": [
-640,
660
],
"parameters": {
"url": "=https://{{ $('Jamf Server').item.json.server }}.jamfcloud.com/api/v2/computer-groups/smart-group-membership/{{ $json.value }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "oAuth2Api"
},
"credentials": {
"oAuth2Api": {
"id": "SRjYS4PQ8cCMgZLK",
"name": "Unnamed credential"
}
},
"typeVersion": 4.2
},
{
"id": "d79584bf-5dbb-42a2-a84d-03bc7f2b0672",
"name": "Mitglieder aufteilen",
"type": "n8n-nodes-base.splitOut",
"position": [
-440,
660
],
"parameters": {
"include": "selectedOtherFields",
"options": {},
"fieldToSplitOut": "members",
"fieldsToInclude": "={{ $('Split groups').item.json.key }}"
},
"typeVersion": 1
},
{
"id": "1db7afe2-6a80-40ee-a2e5-5d595689aeb2",
"name": "Gruppen aufteilen",
"type": "n8n-nodes-base.code",
"position": [
-1080,
740
],
"parameters": {
"jsCode": "const input = items[0].json;\nconst result = [];\n\nfor (const key in input) {\n result.push({\n json: {\n key,\n value: input[key]\n }\n });\n}\n\nreturn result;\n"
},
"typeVersion": 2
},
{
"id": "198f7370-f57b-42f7-ad89-5ce85ffda239",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-1780,
620
],
"webhookId": "d0baf32a-ccec-43dc-9d68-5ffd536b8a1c",
"parameters": {
"path": "d0baf32a-ccec-43dc-9d68-5ffd536b8a1c",
"options": {}
},
"typeVersion": 2
},
{
"id": "a7f64b31-e442-4478-809b-c11c4684fb44",
"name": "Konvertieren zu csv",
"type": "n8n-nodes-base.convertToFile",
"position": [
160,
660
],
"parameters": {
"options": {
"fileName": "=_",
"headerRow": true
},
"binaryPropertyName": "=data"
},
"typeVersion": 1.1
},
{
"id": "a3c00893-c871-4988-a2fd-dab9d655add4",
"name": "Jamf Server",
"type": "n8n-nodes-base.set",
"position": [
-1540,
740
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ff1f57d8-399e-4b4d-89a6-b3ac44f40923",
"name": "server",
"type": "string",
"value": "yourSercer"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f91f4654-9d36-4ccd-91df-7489aeced998",
"name": "CSV-Header",
"type": "n8n-nodes-base.set",
"position": [
-40,
660
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "1cf47bfc-0457-4b6a-ac61-d439bff50691",
"name": "Device Name",
"type": "string",
"value": "={{ $json.general.name }}"
},
{
"id": "3af207c9-eb53-4eec-a5aa-7a125af3c76e",
"name": "Last contact",
"type": "string",
"value": "={{ $json.general.lastContactTime.substring(0,10) }}"
},
{
"id": "d9a77e89-2bee-44e6-9220-06fac550a604",
"name": "S/N",
"type": "string",
"value": "={{ $json.hardware.serialNumber }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ca2d2077-4ed4-4952-8365-e790480b2166",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1620,
520
],
"parameters": {
"width": 480,
"height": 420,
"content": "## Set\n**Node: Jamf Server**\nSet your jamf BaseURL from your jamf URL\nhttps://yourServer.jamfcloud.com\n\n**Node: IDs**\nSet the smart group IDs "
},
"typeVersion": 1
},
{
"id": "7e0484b8-2151-4ed7-b241-2c1de919e93a",
"name": "IDs",
"type": "n8n-nodes-base.set",
"position": [
-1300,
740
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "f7cff112-42bd-4672-9a2f-c0c0b65bb216",
"name": "Smart Group 1",
"type": "string",
"value": "70"
},
{
"id": "a3b44780-bcee-431c-8ab5-913eb20dd0b6",
"name": "Smart Group 2",
"type": "string",
"value": "166"
},
{
"id": "d0ae5b18-9417-4186-9d14-b39d1d9c7aa3",
"name": "Smart Group 3",
"type": "string",
"value": "208"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "69993c27-ab3d-4e36-825d-d87d00095392",
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1120,
520
],
"parameters": {
"color": 3,
"width": 220,
"height": 420,
"content": "## Split \nSplit previous node array into items"
},
"typeVersion": 1
},
{
"id": "273b0995-4b40-4f8e-ab94-affbfafe8f2c",
"name": "Haftnotiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-880,
240
],
"parameters": {
"color": 7,
"width": 1430,
"height": 700,
"content": "## Loop\n"
},
"typeVersion": 1
},
{
"id": "163460ca-44fa-4b8c-9545-e71e6f713ade",
"name": "Haftnotiz3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-680,
460
],
"parameters": {
"color": 4,
"width": 180,
"height": 400,
"content": "## Get \nGet group members IDs"
},
"typeVersion": 1
},
{
"id": "484bb691-c2b0-4da1-8294-89b55baad943",
"name": "Haftnotiz4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-480,
460
],
"parameters": {
"color": 3,
"width": 180,
"height": 400,
"content": "## Split \nSplit members array into individual members"
},
"typeVersion": 1
},
{
"id": "e5c86151-13f6-41d9-9017-8be5c5faa1de",
"name": "Haftnotiz5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-280,
460
],
"parameters": {
"color": 7,
"width": 180,
"height": 400,
"content": "## 2nd Loop\n\nNested loops don't work very well so using a sub workflow is the cleanest solution\n-Loop over members and get their details"
},
"typeVersion": 1
},
{
"id": "7deab3c2-a171-4492-8de4-feb2af3755ce",
"name": "Mitglieder-Schleife",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
-240,
660
],
"parameters": {
"options": {
"waitForSubWorkflow": "={{ true }}"
},
"workflowId": {
"__rl": true,
"mode": "list",
"value": "UYr3yGHbhA6RFyND",
"cachedResultName": "get members"
},
"workflowInputs": {
"value": {},
"schema": [],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": true
}
},
"typeVersion": 1.2
},
{
"id": "eba5da43-adb7-4804-bc9b-12cf4d8cead7",
"name": "Haftnotiz6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
460
],
"parameters": {
"color": 5,
"width": 180,
"height": 400,
"content": "## Select\nSet the CSV header"
},
"typeVersion": 1
},
{
"id": "b9232c0e-65bd-4e23-92e5-98050a784532",
"name": "Haftnotiz7",
"type": "n8n-nodes-base.stickyNote",
"position": [
120,
460
],
"parameters": {
"color": 2,
"width": 180,
"height": 400,
"content": "## Convert\nConvert JSON ouput to CSV for each group"
},
"typeVersion": 1
},
{
"id": "0a5f5bcd-0c7c-49a0-a4cc-7996c5b50dfe",
"name": "Haftnotiz8",
"type": "n8n-nodes-base.stickyNote",
"position": [
320,
460
],
"parameters": {
"width": 200,
"height": 400,
"content": "## Post\nPost the group and members summary into a Slack channel"
},
"typeVersion": 1
},
{
"id": "e46998ca-b549-45b1-8e41-2b7c516bdd67",
"name": "Slack-Kanal",
"type": "n8n-nodes-base.slack",
"position": [
380,
720
],
"webhookId": "b21eb82b-589d-469d-8181-7e5c002cc20a",
"parameters": {
"options": {
"fileName": "data.csv",
"channelId": "C07PQP5J1BJ",
"initialComment": "=🚨<https://{{ $('Jamf Server').item.json.server }}.jamfcloud.com/smartComputerGroups.html?id={{ $('Split groups').item.json.value }}|{{ $('Split groups').item.json.key }} Group>🚨\n"
},
"resource": "file"
},
"credentials": {
"slackApi": {
"id": "8kwaKSXWJHzDApmZ",
"name": "Slack"
}
},
"executeOnce": true,
"typeVersion": 2.3
}
],
"pinData": {},
"connections": {
"7e0484b8-2151-4ed7-b241-2c1de919e93a": {
"main": [
[
{
"node": "1db7afe2-6a80-40ee-a2e5-5d595689aeb2",
"type": "main",
"index": 0
}
]
]
},
"198f7370-f57b-42f7-ad89-5ce85ffda239": {
"main": [
[
{
"node": "a3c00893-c871-4988-a2fd-dab9d655add4",
"type": "main",
"index": 0
}
]
]
},
"f91f4654-9d36-4ccd-91df-7489aeced998": {
"main": [
[
{
"node": "a7f64b31-e442-4478-809b-c11c4684fb44",
"type": "main",
"index": 0
}
]
]
},
"a3c00893-c871-4988-a2fd-dab9d655add4": {
"main": [
[
{
"node": "7e0484b8-2151-4ed7-b241-2c1de919e93a",
"type": "main",
"index": 0
}
]
]
},
"7deab3c2-a171-4492-8de4-feb2af3755ce": {
"main": [
[
{
"node": "f91f4654-9d36-4ccd-91df-7489aeced998",
"type": "main",
"index": 0
}
]
]
},
"1db7afe2-6a80-40ee-a2e5-5d595689aeb2": {
"main": [
[
{
"node": "c137c6b0-1b24-43e4-b6a6-6ed59270d87d",
"type": "main",
"index": 0
}
]
]
},
"e46998ca-b549-45b1-8e41-2b7c516bdd67": {
"main": [
[
{
"node": "c137c6b0-1b24-43e4-b6a6-6ed59270d87d",
"type": "main",
"index": 0
}
]
]
},
"a7f64b31-e442-4478-809b-c11c4684fb44": {
"main": [
[
{
"node": "e46998ca-b549-45b1-8e41-2b7c516bdd67",
"type": "main",
"index": 0
}
]
]
},
"c137c6b0-1b24-43e4-b6a6-6ed59270d87d": {
"main": [
[],
[
{
"node": "09fe9c6e-aefd-491a-b888-339311577ef7",
"type": "main",
"index": 0
}
]
]
},
"09fe9c6e-aefd-491a-b888-339311577ef7": {
"main": [
[
{
"node": "d79584bf-5dbb-42a2-a84d-03bc7f2b0672",
"type": "main",
"index": 0
}
]
]
},
"d79584bf-5dbb-42a2-a84d-03bc7f2b0672": {
"main": [
[
{
"node": "7deab3c2-a171-4492-8de4-feb2af3755ce",
"type": "main",
"index": 0
}
]
]
},
"5fa718ad-f53d-4a5a-8106-f1f1aef44d47": {
"main": [
[
{
"node": "a3c00893-c871-4988-a2fd-dab9d655add4",
"type": "main",
"index": 0
}
]
]
}
}
}Häufig gestellte Fragen
Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Experte - DevOps
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Jamf-Strategien als CSV in Slack für sofortige Audits exportieren
Jamf-Strategie als CSV nach Slack zur sofortigen Prüfung exportieren
Set
Xml
Slack
+
Set
Xml
Slack
19 NodesJean-Marie Rizkallah
Sicherheitsbetrieb
n8n-Knoten in der visuellen Referenzbibliothek erkunden
Erkundung von n8n-Knoten in der visuellen Referenzbibliothek
If
Ftp
Set
+
If
Ftp
Set
113 NodesI versus AI
Sonstiges
Bidirektionale Synchronisation von Typebot-Workflows mit GitHub unter Verwendung der Typebot-API
Bidirektionale Synchronisation von Typebot-Workflows mit GitHub unter Verwendung des Typebot-APIs
If
Set
Code
+
If
Set
Code
31 NodesMarcial Ambriz
DevOps
GitHub Synchronisations-Dashboard - V2
GitHub-Workflow-Versionskontroll-Dashboard mit Commit-Verlauf und Rollback-Funktion
If
N8n
Set
+
If
N8n
Set
94 NodesEduard
DevOps
Lieferanten-Hamburger MVP
🤖 KI-angetriebener WhatsApp-Assistent für Restaurant- und Lieferautomaten
If
Set
Code
+
If
Set
Code
152 NodesBruno Dias
Automatisierte n8n-Workflow-Sicherung bei GitHub und Nachverfolgung von Löschvorgängen
Automatisches Backup von n8n-Workflows bei GitHub mit Tracking von Löschvorgängen
If
N8n
Set
+
If
N8n
Set
31 NodesMarcial Ambriz
DevOps
Workflow-Informationen
Schwierigkeitsgrad
Experte
Anzahl der Nodes21
Kategorie1
Node-Typen11
Autor
Jean-Marie Rizkallah
@mrrobotExterne Links
Auf n8n.io ansehen →
Diesen Workflow teilen