Unbegrenzte Nutzer für nur $99/Monat

Ihre gesamte Organisation zu einem festen Preis

Kostenlos testen
Alle Artikel anzeigen

Kopieren von Workflow-Vorlagen über die Pneumatic API

Dieser Leitfaden zeigt, wie Workflow-Vorlagen zwischen Konten kopiert werden können, sodass Sie eine Vorlage einmal erstellen und mit mehreren Partnern teilen können. Folgen Sie unserem schrittweisen Beispiel mit Google Colab, um ein Skript zu erstellen, das das Kopieren von Workflow-Vorlagen zwischen Konten automatisiert und erkunden Sie Anpassungsmöglichkeiten, die Ihren speziellen Bedürfnissen entsprechen. Tauchen Sie ein in die Welt von Pneumatic und steigern Sie die Produktivität Ihres Teams noch heute.

In Pneumatic können Sie eine Workflow-Vorlage in einem Konto erstellen und dann die öffentliche API von Pneumatic verwenden, um sie “wortwörtlich” auf ein anderes Konto zu kopieren. Alles, was Sie dazu benötigen, ist der API-Schlüssel für das Quellkonto, von dem Sie eine Vorlage kopieren, und für das Zielkonto, auf das Sie die Vorlage kopieren möchten.

Betrachten wir ein Beispiel

Angenommen, wir haben eine Content Development Workflow-Vorlage in einem Konto und wir möchten sie auf ein anderes Konto kopieren.

Content Development Workflow-Vorlage

Für unsere Zwecke werden wir Google Colab verwenden, um schnell und einfach ein Skript zusammenzustellen, das die Kopie für uns erledigt. Beginnen wir damit, zwei “dumme” Funktionen zu schreiben, eine um unsere Quellvorlage zu erhalten und die andere um eine neue Vorlage zu erstellen.

def get_template_by_id(api_key, template_id):
end_point = f"https://api.pneumatic.app/templates/{template_id}"
headers = {
  'Authorization': f'Bearer {api_key}'
  }

r = requests.get(end_point, headers = headers)
if r.ok:
  return r.json()
else:
return None

def create_template(api_key, template_info):
headers = {
  'Authorization': f'Bearer {api_key}',
  'Content-Type': 'application/json'
}
json_data = json.dumps(template_info)
r = requests.post(
  f'https://api.pneumatic.app/templates', #this is the end point
      headers = headers,
  data = json_data,
)
if r.ok:
  return "Die Vorlage wurde dem Zielkonto hinzugefügt"
else:
return f"Etwas ist schief gelaufen: {r.content}"

Wir übergeben unsere API-Schlüssel, unsere Vorlagen-ID (für die Quellvorlage) und template_info als Parameter. Natürlich benötigen wir für diese Funktionen die Importe von requests und json:

import requests
import json

Jetzt zum Kern der Sache

Zuerst müssen wir den API-Schlüssel des Quellkontos und die ID der Vorlage, die wir kopieren möchten, erhalten:

api_key =input("Geben Sie den API-Schlüssel der Quelle ein: ")#fragt nach dem API-Schlüssel der Quelle
template_id = int(input("Geben Sie die ID der Quellvorlage ein: "))#fragt nach der ID der Quellvorlage

Den API-Schlüssel finden Sie auf der Integrationsseite Ihres Kontos (dem Konto, von dem Sie die Vorlage kopieren möchten):

Ihr Pneumatic API-Schlüssel

Die Vorlagen-ID ist die Nummer im Vorlagen-Link:

Ihre Workflow-Vorlagen-ID

Sobald wir den API-Schlüssel der Quelle und die ID der Quellvorlage vom Benutzer erhalten haben, übergeben wir sie an unsere get_template_by_id Funktion und wenn sie die Quellvorlage findet, können wir fortfahren:

source_template = get_template_by_id(api_key = api_key, template_id = template_id)
if source_template == None:
  print("Keine solche Vorlage gefunden")
else:

In diesem Stadium erhalten wir den Ziel-API und die Ziel-Besitzer-ID vom Benutzer:

  target_api = input("Geben Sie den Ziel-API-Schlüssel ein: ")#fragt nach dem Ziel-API-Schlüssel
  target_owner = int(input("Geben Sie die Ziel-Besitzer-ID ein"))#fragt nach der Ziel-Besitzer-ID.

Auch hier können Sie den API-Schlüssel auf der Integrationsseite Ihres Zielkontos nachschlagen:

Ihr Pneumatic API-Schlüssel

Der Besitzer ist der Benutzer, dem die Vorlagenkopie gehören wird. Gehen Sie in dem Zielkonto zur Teamseite, finden Sie den Benutzer, dem die Vorlage gehören soll, und suchen Sie deren ID:

Pneumatic Benutzer-ID

Sobald der Ziel-API-Schlüssel und der Zielbesitzer eingegeben wurden, erstellt das Skript eine Vorlagenentwurf im Zielkonto unter Verwendung der Quellvorlage:

  source_template['template_owners'].clear() #entfernt alle alten Besitzer aus der Vorlage
  source_template['template_owners'].append(target_owner) #fügt den Zielbesitzer hinzu
  source_template['is_active'] = False
  for task in source_template['tasks']:
    task['raw_performers'].clear()
  result = create_template(api_key = target_api, template_info = source_template)
  print(result)

Es gibt ein paar wichtige Punkte zu beachten

Zunächst einmal hat unser Zielkonto andere Benutzer als das Quellkonto, daher müssen wir das irgendwie berücksichtigen. Es gibt mehrere Möglichkeiten, diejenige, die wir in unserem Beispiel verwenden, ist vielleicht die einfachste in Bezug auf die Menge an Code, die wir schreiben müssen.

Zuerst müssen wir den Vorlagenbesitzer ändern, also bitten wir den Benutzer, die ID für den Vorlagenbesitzer im Zielkonto anzugeben, dann entfernen wir alle Besitzer aus unserer Quellvorlage und fügen die Besitzer-ID hinzu, die wir vom Benutzer erhalten haben:

  source_template['template_owners'].clear() #entfernt alle alten Besitzer aus der Vorlage
  source_template['template_owners'].append(target_owner) #fügt den Zielbesitzer hinzu
  source_template['is_active'] = False

Jetzt für die Aufgabenausführer, wir entfernen einfach alle alten Aufgabenausführer, dieser Code geht davon aus, dass die Vorlage nach dem Kopieren “nachbearbeitet” wird, also setzt er den is_active Status auf false und löscht alle Ausführer. Die Vorlage wird somit im Zielkonto als Entwurf erstellt, damit jemand hineingehen und die Schritte bestimmten Benutzern zuweisen kann.

  for task in source_template['tasks']:
    task['raw_performers'].clear()
  result = create_template(api_key = target_api, template_info = source_template)
  print(result) 

Alternativ können Sie auch programmatisch Ausführer hinzufügen und die Vorlage auf aktiv setzen, aber das geht über den Rahmen dieses einfachen Beispiels hinaus.

Unser Code-Beispiel erstellt eine Entwurf-Workflow-Vorlage im Zielkonto, die einen Besitzer hat, aber keine Ausführer in den Aufgaben:

Entwurf der Content Development Workflow-Vorlage

Sie können den Code im Colab “wie er ist” verwenden oder ihn anpassen, um Ihren Zwecken besser zu entsprechen.