User().Email and Crossdoc syncing of Text column that contains eMail address

I was having problems with one user (shared the doc with them at their yahoo.com address) who was having trouble with some functionality that does a lookup based on User().Email.

I was able to narrow this down to a problem in how eMail addresses are sync’d via a crossdoc table.

In my remote doc A, I have a table of person information with a column (let’s call it PersonEmail) that represents the eMail address of that person. I sync this table with Crossdoc to doc B where I want to do a lookup of User().Email against that crossdoc table (let’s call it SyncPersonTable). There is no issue with the User() not being in the sync’d table, but there is an issue with trying to Filter( SyncPersonTable, PersonEmail = User().Email).

The problem is because for some reason when the data was sync’d, eMail’s got changed into the person’s name and treated like a Person column instead of a Text column. I could hover over the name and see their profile image and an Email attribute with their email address.

All of my typing of the columns was correct, nothing fancy there. I’m not sure why this change in format is happening or what’s triggering it. It seems to have resolved itself now after I edited the email address in doc A and resync’d but I don’t know why it happened and why it only happened for a few rows in that table vs. all of them.

Any ideas here?

Thanks!

1 Like

I ran into this problem again and this time the Row column shows that the Email is actually an @-mention of the person, presumably since they have access to the Doc that contains this crossdoc table.

I tried to edit the PersonEmail table entry, even removing the default mailto link that the email address was getting translated into and that didn’t work.

This is very frustrating. Why won’t a Text column just sync as Text without this special handling behind the scenes?

@mallika is this something that is in the Dev queue or is there a known workaround?

The @-mention is likely because the person has access to the doc and they are a part of the same domain I’m on.

Other email addresses that aren’t a part of the domain don’t have this problem.

This is a new “behavior” though - if that helps track down the issue.

Would be nice if a text column just sync’d like a text column though.

@BenLee tagging you here in case you can help with this issue either directly, or by redirecting. I’m grasping for a straw. :slight_smile:

Thanks in advance!

If you have a column that is the “People” type, then use People.Email, that should give you just the email address. Then you should be able to sync that Email column over. Cross-doc doesn’t convert these to other column types on sync, it’s actually more likely to remove the column type for the sync table.

If you want to write in to Coda Support and mention me in the text, they can route it my way.

One guess here for a solution would be to create a canvas variable and use the formula User(). Then you can compare against the Variable.Email and sort of flatten the email address from being a full people lookup. I don’t think this should be necessary as comparing an email address to User().Email is something I’d expect to work as well. It might be worth a try though.

1 Like

@BenLee The problem is actually in the crossdoc syncing a Text type column, that happens to have an email address in it. When it’s in the Crossdoc table, and I reference it via Row.eMailTextColumn, or even hover over the Row column so I can see all the values, it’s not showing me the text email. It’s showing me an @-mention of the person (they have access to the doc that contains the crossdoc table). Oddly, when I add that Column from the Row object, it is added as a Text type, but is still resolving the value to that @-mention. Of course when you hover on that you can see an attribute of that is the email address under a .Email reference. However, I can’t do Row.eMailTextColumn.Email because it doesn’t recognize it as a People. object.

There is something that is being translated, unnecessarily, when sync’d through. Or perhaps it’s just trying to be smart and if an email address is entered into a text column, it will create a “hyperlink” (mailto) for it. Is there someway to turn that off?

Update: I seem to have worked around the bug. In my main table, I created another Text column, let’s call it eMail2. I set a formula on it to be eMailTextColumn.ToText(). This column now syncs properly without any special handling. So I suspect that it has to do with the code related to making the email address a mailto link that is causing the problem in some way. Unfortunately, removing the link from one of those cells and syncing again didn’t fix the problem, but should have, in theory, been handled the same way as forcing a .ToText() call on the same value. :confused:

PS: Is there an @-mention for Coda Support so I can avoid having to submit these things in two places? It’s probably better this issue be visible to the Community as others may run into it.