Zum Inhalt springen

Formel: von der E-Mail-Adresse zum Namen


Thomas Hoffmann
Gehe zur Lösung Gelöst von Alex Krause,

Empfohlene Beiträge

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


 

Bearbeitet von Christian Meixner
Infos zu den neuen Formelfunktionen aus Release 1.121 hinzugefügt
  • Like 12
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Monat später...
  • Lösung

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
  • Danke 4
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

Wow! Auch wenn der Formel-Wust von @Thomas Hoffmann fast schon als Kunst ausgedruckt werden könnte, sieht die Lösung von @Mr Smap extrem schnittig aus. 
Mich begeistert es immer wieder aufs Neue, wie viele Wege man beim smap-bauen einschlagen kann, um ein gewünschtes Ergebnis zu erhalten. Großartig!

  • Like 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Monat später...

@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

  • Danke 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 4 Wochen später...
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@...

Bearbeitet von FrederikWo
Link zu diesem Kommentar
Auf anderen Seiten teilen

@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

  • Zustimmung 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Bearbeitet von Steffen Haußmann
Schreibfehler
  • Like 3
  • Danke 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 🙂

Bearbeitet von FrederikWo
  • Like 4
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Bearbeitet von Ina Roth
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Monat später...

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 zu diesem Kommentar
Auf anderen Seiten teilen

  • Moritz hat Thema angepinnt
  • 2 Monate später...

@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 zu diesem Kommentar
Auf anderen Seiten teilen

Bitte melde Dich an, um einen Kommentar zu hinterlassen

Du kannst nach der Anmeldung einen Kommentar hinterlassen



Jetzt anmelden
×
×
  • Neu erstellen...