Jump to content

Formel: von der E-Mail-Adresse zum Namen


Thomas Hoffmann
Go to solution Solved by Alex Krause,

Recommended Posts

Hallo zusammen, 

häufig fragen mich Kunden, wie sie die Namen der Nutzer in einer smap nutzen können. Hierfür gibt es einen sehr einfachen und einen etwas komplexeren Weg.

Der einfache Weg ist, den Nutzer korrekt anzulegen bzw. nachzupflegen und das Feld "Name" auszufüllen:

image.png.276556d863ed3adc065c03f34c832a74.png
 

UPDATE 10.08.2023: Seit smapOne Version 1.121 stehen neue Formelfunktionen zur Verfügung, welche die nachfolgenden Lösung deutlich vereinfachen. Mehr Infos dazu findet ihr weiter unten hier in der dieser Diskussion.

Der komplexere Weg benötigt eine Formel und funktioniert (bei dieser Formel) nur, wenn die E-Mailadresse des Nutzers dem Muster "vorname.nachname@" folgt. Um dann ein Ergebnis wie im folgenden Screenshot zu erhalten,

214973e8-bd51-4826-8a8d-e32bc6ba0c2d

arbeite ich bisher mit dieser recht umfangreichen Formel 🙆‍♂️:
 

Zitat

CONCAT(CONCAT(IF(EQUALS(SubText({user:email},1,1),"a"),"A",""),IF(EQUALS(SubText({user:email},1,1),"b"),"B",""),IF(EQUALS(SubText({user:email},1,1),"c"),"C",""),IF(EQUALS(SubText({user:email},1,1),"d"),"D",""),IF(EQUALS(SubText({user:email},1,1),"e"),"E",""),IF(EQUALS(SubText({user:email},1,1),"f"),"F",""),IF(EQUALS(SubText({user:email},1,1),"g"),"G",""),IF(EQUALS(SubText({user:email},1,1),"h"),"H",""),IF(EQUALS(SubText({user:email},1,1),"i"),"I",""),IF(EQUALS(SubText({user:email},1,1),"j"),"J",""),IF(EQUALS(SubText({user:email},1,1),"k"),"K",""),IF(EQUALS(SubText({user:email},1,1),"l"),"L",""),IF(EQUALS(SubText({user:email},1,1),"m"),"M",""),IF(EQUALS(SubText({user:email},1,1),"n"),"N",""),IF(EQUALS(SubText({user:email},1,1),"o"),"O",""),IF(EQUALS(SubText({user:email},1,1),"p"),"P",""),IF(EQUALS(SubText({user:email},1,1),"q"),"Q",""),IF(EQUALS(SubText({user:email},1,1),"r"),"R",""),IF(EQUALS(SubText({user:email},1,1),"s"),"S",""),IF(EQUALS(SubText({user:email},1,1),"t"),"T",""),IF(EQUALS(SubText({user:email},1,1),"u"),"U",""),IF(EQUALS(SubText({user:email},1,1),"v"),"V",""),IF(EQUALS(SubText({user:email},1,1),"w"),"W",""),IF(EQUALS(SubText({user:email},1,1),"x"),"X",""),IF(EQUALS(SubText({user:email},1,1),"y"),"Y",""),IF(EQUALS(SubText({user:email},1,1),"z"),"Z",""),SubText({user:email},2,SUB(TEXTPOS({user:email},"."),2)))," ",CONCAT(IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"a"),"A",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"b"),"B",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"c"),"C",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"d"),"D",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"e"),"E",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"f"),"F",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"g"),"G",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"h"),"H",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"i"),"I",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"j"),"J",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"k"),"K",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"l"),"L",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"m"),"M",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"n"),"N",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"o"),"O",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"p"),"P",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"q"),"Q",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"r"),"R",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"s"),"S",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"t"),"T",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"u"),"U",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"v"),"V",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"w"),"W",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"x"),"X",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"y"),"Y",""),IF(EQUALS(SubText({user:email},ADD(TEXTPOS({user:email},"."),1),1),"z"),"Z",""),SubText({user:email},ADD(TEXTPOS({user:email},"."),2),SUB(TEXTPOS({user:email},"@"),ADD(TEXTPOS({user:email},"."),2)))))




Wie wir wissen, führen viele Wege nach Rom und ich bin immer wieder begeistert, welche kreativen und einfachen Lösungsansätze die Creatoren*innen 🦸‍♂️🦸‍♀️ haben. Daher die Frage: Habt ihr eine andere und bestenfalls einfachere Lösung für dieses Szenario gefunden? 

Ich bin gespannt und freue mich auf Eure Ideen und Lösungen 💡
BG Thomas


 

Edited by Christian Meixner
Infos zu den neuen Formelfunktionen aus Release 1.121 hinzugefügt
  • Like 11
Link to comment
Share on other sites

  • 1 month later...
  • Solution

Hi,

einfacher und weniger Formeln hätte dieser Weg hier:

- 3 Bausteine (2 versteckt, 1 Ausgabe)

 

1. Baustein {Vorname}:

CONCAT(SUBTEXT("ABCDEFGHIJKLMNOPQRSTUVWXYZ", TEXTPOS("abcdefghijklmnopqrstuvwxyz", LEFT({user:email}, 1)), 1), SUBTEXT({user:email}, 2, SUB(TEXTPOS({user:email}, "."), 2)))

2. Baustein {Nachname}:

CONCAT(SUBTEXT("ABCDEFGHIJKLMNOPQRSTUVWXYZ", TEXTPOS("abcdefghijklmnopqrstuvwxyz", SUBTEXT({user:email}, ADD(TEXTPOS({user:email}, "."), 1), 1), 1), 1), SUBTEXT({user:email}, ADD(TEXTPOS({user:email}, "."), 2), SUB(TEXTPOS({user:email}, "@"), ADD(TEXTPOS({user:email}, "."), 2))))

3. Baustein {AusgabeName}

REPLACE(REPLACE(REPLACE(CONCAT({Vorname}, " ", {Nachname}), "ae", "ä"), "oe", "ö"), "ue", "ü")

 

Der Replace im 3. Baustein von ae in ä etc. ist optional 🙂

 

Gruß

Alex 🙂

  • Like 10
  • Haha 1
  • Thanks 4
Link to comment
Share on other sites

Am 15.12.2022 um 09:24 schrieb Mr Smap:
REPLACE(REPLACE(REPLACE(CONCAT({Vorname}, " ", {Nachname}), "ae", "ä"), "oe", "ö"), "ue", "ü")

 

Hinweis hier noch: "Bei der Textsuche [der REPLACE-Methode] wird die Groß-/Kleinschreibung mit berücksichtigt" (siehe Dokumentation). Will sagen: Man könnte/müsste die Formel noch erweitern, so dass auch Ä, Ö und Ü mit erfasst würden. Somit wären dann auch User wie @Ismet Ünal-Machalski adäquat berücksichtigt 😉

  • Like 3
Link to comment
Share on other sites

  • 1 month later...

@Robert Söllner in der smap selber leider nein. Hier gibt es tatsächlich nur die Emailadresse (siehe Dokumentation).

image.thumb.png.e058b53990985aab189c801063108c75.png

Im Bericht hingegen kann der Username verwendet werden (siehe Dokumentation).

image.thumb.png.eb86d1757640b2db1e48fe0f21a0bb12.png

Allerdings ist hier zu beachten, dass nicht Vor- und Nachname aus dem von dir gezeigten Screenshot vom Profil gezogen werden sondern aus der Nutzerverwaltung des Creators kommen.

Auch beim Abruf der Daten über die API steht dieser Wert zur Verfügung:

image.thumb.png.b0ba1bbfcf235ef86de2da83b484987c.png

  • Thanks 1
Link to comment
Share on other sites

  • 4 weeks later...
Am 7.2.2023 um 19:39 schrieb Moritz:

@Robert Söllner in der smap selber leider nein. Hier gibt es tatsächlich nur die Emailadresse (siehe Dokumentation).

image.thumb.png.e058b53990985aab189c801063108c75.png

Im Bericht hingegen kann der Username verwendet werden (siehe Dokumentation).

image.thumb.png.eb86d1757640b2db1e48fe0f21a0bb12.png

Allerdings ist hier zu beachten, dass nicht Vor- und Nachname aus dem von dir gezeigten Screenshot vom Profil gezogen werden sondern aus der Nutzerverwaltung des Creators kommen.

Auch beim Abruf der Daten über die API steht dieser Wert zur Verfügung:

image.thumb.png.b0ba1bbfcf235ef86de2da83b484987c.png

Worauf bezog sich denn dann der "einfache" Weg aus Thomas ursprünglichem Post? Da schrieb er ja:

Am 10.11.2022 um 11:51 schrieb Thomas Hoffmann:

häufig fragen mich Kunden, wie sie die Namen der Nutzer in einer smap nutzen können.

Wir würden gerne die Namen unserer Nutzer in E-Mails einbauen, die dann mit dem Bericht an unsere Kunden geschickt werden. 
Edit: Unsere E-Mail-Adressen entsprechen leider nicht dem Muster vorname.nachname@... sondern nur v.nachname@...

Edited by FrederikWo
Link to comment
Share on other sites

@FrederikWo

Du kannst dich im Bericht auf weitere Meta-Daten beziehen, die so direkt in der smap nicht zur Verfügung stehen.

Wenn du den Namen bei deinen Nutzern korrekt eingepflegt hast, kannst du dich in der Berichtsvorlage auf "meta.username" beziehen. Schau mal hier in der Doku: https://platform.smapone.com/Documentation/de/Topic/Reports#ausgeben-von-meta-informationen

  • Agree 1
Link to comment
Share on other sites

Hallo,

für einen kleinen Kreis an Nutzern deiner Smap kannst du dies auch in eine Formel einbauen. Ich habe dies bei einer Smap gemacht, welche von maximal drei Personen ausgefüllt wird.

Dafür habe ich ein Textergebnisfeld hinzugefügt.

IF(CONTAINS({user:email},"Karl"),"Karl Mustermann",IF(CONTAINS({user:email},"Klara"),"Klara Musterfrau","Nutzer muss bei Smap hinterlegt werden"))

Im Beispiel ist es jetzt für 2 Personen. Kann man natürlich noch einige dranhängen. Ich habe eine Meldung eingebaut, dass der Nutzer gemeldet werden muss. Alternativ könnte man das Ergebnis leer lassen und bei einem Texteingabefeld die Aktivierung darauf legen, um den Namen dann eintippen zu lassen.

Ich hatte übrigens den gleichen Grund, warum ich dies gemacht hatte. Ich wollte ebenfalls im Textbereich der Mail einen Namen stehen haben, der im Formular aber nirgends vorhanden ist.

Edited by Steffen Haußmann
Schreibfehler
  • Like 3
  • Thanks 2
Link to comment
Share on other sites

Am 7.3.2023 um 10:15 schrieb Steffen Haußmann:

Hallo,

für einen kleinen Kreis an Nutzern deiner Smap kannst du dies auch in eine Formel einbauen. Ich habe dies bei einer Smap gemacht, welche von maximal drei Personen ausgefüllt wird.

Dafür habe ich ein Textergebnisfeld hinzugefügt.

IF(CONTAINS({user:email},"Karl"),"Karl Mustermann",IF(CONTAINS({user:email},"Klara"),"Klara Musterfrau","Nutzer muss bei Smap hinterlegt werden"))

Im Beispiel ist es jetzt für 2 Personen. Kann man natürlich noch einige dranhängen. Ich habe eine Meldung eingebaut, dass der Nutzer gemeldet werden muss. Alternativ könnte man das Ergebnis leer lassen und bei einem Texteingabefeld die Aktivierung darauf legen, um den Namen dann eintippen zu lassen.

Ich hatte übrigens den gleichen Grund, warum ich dies gemacht hatte. Ich wollte ebenfalls im Textbereich der Mail einen Namen stehen haben, der im Formular aber nirgends vorhanden ist.

Perfekt, das ist die Lösung, die ich gesucht habe!

Es stimmt, mit Text- oder auch Zahlenergebnisfeldern kann man sich viele Infos "kreieren", die auf direkte Weise in der Smap nicht abrufbar sind, danke dir für die Idee, ich bin mir sicher, das Prinzip kann ich auch auf andere Problemstellungen anwenden 🙂

Edited by FrederikWo
  • Like 4
Link to comment
Share on other sites

Am 19.12.2022 um 12:28 schrieb Moritz:

Hinweis hier noch: "Bei der Textsuche [der REPLACE-Methode] wird die Groß-/Kleinschreibung mit berücksichtigt" (siehe Dokumentation). Will sagen: Man könnte/müsste die Formel noch erweitern, so dass auch Ä, Ö und Ü mit erfasst würden. Somit wären dann auch User wie @Ismet Ünal-Machalski adäquat berücksichtigt 😉

Hallo Moritz,

ich hatte gerade das die Ablage der Berichte nicht funktioniert hat, weil das System Probleme mit den Umlauten hatte.
Ich konnte mich aber noch erinnern, das du mir hierzu schon etwas mitgeben hattest.

Was mir jedoch bei deiner Ausführung der Replace Methode oben aufgefallen ist, das die angegebene Reihenfolge nicht richtig ist.
Kann das sein?
Muss hier nicht erst der Umlaut und dann die Änderung stehen?
Zumindest kann ich das aus der Doku so herauslesen: Replace(text, oldText, newText)

Wie bin ich in meinen Fall vorgegangen:
Ich habe mir in die Smap jetzt ein Textergebnisfeld in Bezug auf das Datenauswahlfeld gesetzt.
Dieses habe ich mit folgender Replace-Formel belegt:

REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE({Sel_Data[Name]},"ä","ae"),"ö", "oe"),"ü", "ue"),"Ä","Ae"),"Ö","Oe"),"Ü","Ue"){Sel_Data[Name]}

Im Anschluss habe ich den Berichtsnamen so abgeändert, das er sich auf das Ergebnisfeld bezieht.
Was dann so ausschaut:

Test_{{Result_Nr}}_{{Result_Mitarbeitername}}_{bricks.sendDate}

Nun wir die Datei unter folgenden Namen abgespeichert:

Test_12345_Guenther Muster_08.03.2023.pdf

Somit sollte auch die automatische Ablage wieder funktionieren.

LG
Ina

Edited by Ina Roth
  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Hey @Ina Roth, ich sehe gerade dass mir diese Anfrage untergegangen ist. Meinst du eine automatisierte Ablage? Da gibt es bei Umlauten im PDF-Berichtsdateinamen tatsächlich eine Besonderheit. Deine Lösung, Umlaute noch in der smap umzuwandeln, ist auf jeden Fall die einfachere Methode.

Sollte sich jemand für den "schweren Weg" interessieren, bitte kurz melden, dann schreibe ich gerne meine Erfahrungen und Hinweise dazu.

Link to comment
Share on other sites

  • Moritz pinned this topic
  • 2 months later...

@Alex Krause, @FrederikWo, @Robert Söllner, @Ina Roth

Mit dem neusten Update der smapOne Plattform stehen jetzt Formelfunktionen zur Verfügung, welche es deutlich leichter machen, den Nutzernamen aus der E-Mail-Adresse zu erzeugen und dabei die korrekte Schreibweise sicherzustellen. Vor allem die neue Formelfunktion CAPITALIZE() nimmt hier viel Arbeit ab, weil sie einfach jeden Anfangsbuchstab jedes Wortes im übergeben Text in Großbuchstaben wandelt und den rest in Kleinbuchstaben.

Oder, noch besser, gleich den neue Metadaten-Verweis:

{user:name}

Mit dem der Name des aktuellen Nutzers zurückgegeben wird, sofern dieser vom Creator in der Nutzerliste eingegeben wurde.

Viel Spaß beim ausprobieren der neuen Formeln. Ich bin schon gespannt, was ihr noch so damit zaubert.

Alle Neuigkeiten des aktuellen Releases findet ihr übrigens hier: https://community.smapone.com/stories/smaplight-release-v1-121

  • Like 2
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...