taggen via API

52 views
Skip to first unread message

Torsten Werneke

unread,
Oct 13, 2018, 9:53:47 PM10/13/18
to 42he API
Wir scheitern gerade daran, mehrere Kontakte via API mit TAGs zu versehen.

1. Das Löschen der TAGs:

Ein TAG ist aus Nutzer-Sicht ein (1) Element.
Im CRM haben TAGs gleichen Namens jedoch verschiedene IDs.
Um aus "Nutzer-Sicht" einen TAG zu löschen, müssen alle Personen, Angebote, Firmen, etc. identifiziert werden, um jede einzelne Instanz des TAGs löschen zu können.
Da wir bis dato keine "id" gefunden haben, die alle gleichnamigen TAGs adressiert, nehmen wir an, dass alle gleichnamigen TAGs unabhängig sind.

Das erklärt das Filterergebnis, bei welchem jede einzelne Instanz des TAGs aufgeführt wird.



Dieser Umgang mit den TAGs ist kein Problem, macht das Handling nur ein wenig aufwändiger ... 

Unser Problem liegt darin, dass beim Taggen von Kontakten, Firmen, etc. diese Unabhängigkeit scheinbar nicht mehr vorherrscht.


2. Das Taggen:

Der erste TAG kann per POST gesetzt werden:

1. POST   https://api.centralstationcrm.net/api/tags.json?apikey=XXXXX                   
          {'tag':{'name':'TAGNAME','attachable_type':'Person','attachable_id':person_id}}

Der Eintrag erhält seinen TAG und der Response des POSTs benennt den neuen TAG inkl. seiner "id"... soweit alles ok

Wenn der zweite TAG mit einem POST gesetzt werden soll, wird dieser nicht mehr gesetzt.
Als Response kommt die TAG-Description der ersten TAG-Instanz zurück.
Entweder ist das ein Fehler in der API oder die Instanzen gleichnamiger TAGs sind dann doch nicht unabhängig voneinander.

Hat jemand eine Lösung für dieses Problem? Auch ein WorkAround würde vorerst helfen.

Wie kann ein TAG via API mehreren, bereits existierenden Einträgen im CRM (nicht zeitgleich) zugewiesen werden?

Vielen Dank,
Torsten

Moritz Machner

unread,
Oct 15, 2018, 9:36:18 AM10/15/18
to 42...@googlegroups.com
Hallo, 

die Tags werden bei uns nur durch den Namen identifiziert und sind pro Objekt Typ unabhängig voneinander. Wenn 3 Personen das selbe Tag haben gibt es das bei Personen dann quasi 3 mal. Ein Element kann aber ein Tag immer nur einmal haben. 

Falls Du nicht weiterkommst, können wir auch gerne einmal telefonieren. 

Grüße 

Moritz


--
Sie erhalten diese Nachricht, weil Sie in Google Groups E-Mails von der Gruppe "42he API" abonniert haben.
Wenn Sie sich von dieser Gruppe abmelden und keine E-Mails mehr von dieser Gruppe erhalten möchten, senden Sie eine E-Mail an 42he+uns...@googlegroups.com.
Weitere Optionen finden Sie unter https://groups.google.com/d/optout.

Torsten Werneke

unread,
Oct 15, 2018, 12:27:26 PM10/15/18
to 42he API
Hallo Moritz,

Dank Dir für Deine schneller Rückmeldung. Wahrscheinlich habe ich mein Problem nicht richtig erklärt... sorry. Ich möchte einen TAG an eine Person hängen. Das funktioniert auch, solange es diesen TAG noch nicht gibt. Wenn ich eine zweite Person mit dem selben TAG (d.h. mit einem namens-gleichen TAG) markieren möchte, funktioniert das nicht mehr. Da die TAGs voneinander unabhängig, also eigenständig sind, müssen diese lt. Eurer API-Beschreibung mit einem POST erzeugt werden... was beim ersten TAG ja auch funktioniert. Ich schicke Dir mal das Code-Beispiele mit (sorry ... in VBA ;) ... was der API aber egal sein sollte ... sowie den jeweiligen RESPONSE zum POST.

Du kannst sehen, dass der erste POST (TAGGING 1) bei Person "A" das TAG "T" erzeugt ... das zweite POST (TAGGING 2) bei Person "B" jedoch nur den TAG-Report von "T" zur Person "A" liefert. Dieser RESPONSE wäre mir egal, wenn wenigstens die Person "B" den Tag "T" erhalten hätte. Dem ist aber nicht so. Entsprechend bin ich mit meiner Methode aktuell nur in der Lage, einen TAG nur 1x vergeben zu können ... was nicht ganz im Sinne des TAGGENS ist.

Würde mich freuen, wenn es eine einfache LÖSUNG gibt :)

Viele Grüße,
Torsten

TAGGING 1:
createTAG(   TAG_NAME := "T",  PID := 7554783    
{"tag":
  {
   "id":26729037,"account_id":XXX,"attachable_id":7554783,"attachable_type":"Person",
   "name":"T","created_at":"2018-10-15T18:03:32.000+02:00","updated_at":"2018-10-15T18:03:32.000+02:00","api_input":true
  }
}

TAGGING 2:
createTAG(   TAG_NAME := "T",  PID := 7475928     
{"tag":
   {
    "account_id":XXX,"api_input":true,"id":26729037,"name":"T","attachable_id":7554783,
    "attachable_type":"Person","created_at":"2018-10-15T18:03:32.000+02:00","updated_at":"2018-10-15T18:03:32.000+02:00"
   }
}


Der VBA-Code

Sub createTAG() Dim lStrURL As String Dim lStrDef As String Dim lStrRET As String lStrURL = "https://api.centralstationcrm.net/api/tags.json?apikey=XXX" lStrDef = "{'tag':{'name':'TAG_NAME','attachable_type':'Person','attachable_id':PID}}" lStrDef = Replace(lStrDef, "'", """") ' so lässt sich die lStrDef oben besser lesen Debug.Print "URL := " & lStrURL Debug.Print "DEF := " & lStrDef With New WinHttpRequest .Open "POST", lStrURL, False .SetRequestHeader "Content-Type", "application/json" .SetRequestHeader "Accept", "application/json" .Send lStrDef lStrRET = .ResponseText End With Debug.Print "RET := " & lStrRET End Sub






Moritz Machner

unread,
Oct 15, 2018, 12:34:24 PM10/15/18
to 42...@googlegroups.com
Probiere bitte einmal das Tag über eine REST Route anzulegen: 


mit nur dem :name als Inhalt. 

Grüße 

Moritz


Torsten Werneke

unread,
Oct 15, 2018, 4:44:08 PM10/15/18
to 42he API
Es funktioniert :)
Vielen Dank für die Unterstützung.
Gruß aus DD, Torsten
Reply all
Reply to author
Forward
0 new messages