Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!

Engine Works

Under the hood of Alteryx: tips, tricks and how-tos.
rpaugh
11 - Bolide

How does one automate that which cannot be automated?

 

We are in an information age.  An age where someone can monitor the security of their home and unlock their care from a mobile device; start streaming a movie at home, move to an iPad, and finish on a plane; and even blend, cleanse, and predict data with little or no data science knowledge.  And yet many, if not all of us, at some point have tried to gain access to data within our own organizations only to be met with the solution of “we can email you an Excel file”.  Really?!?  I can put money into my Starbucks account via my phone, and have Starbucks scan and recognize the payment, deduct the cost from my account and give me my bonus stars for the transaction, but the only solution you have to give me data is to email it to me?  Now is a good time to tell you something important about myself – I’m lazy.  I loathe manual, tedious, repetitive tasks.  I often joke with my coworkers that I’m going to automate everything I do so I can sit and watch YouTube all day.  In fact, were I to successfully automate myself out of a job I would consider that the single greatest accomplishment of my career.  As you can probably imagine, I was not willing to manually download and process Excel files each week.  Fortunately, I come from a software development background and was able to write code to extract attachments from Outlook emails and baked that into an SSIS package that ran weekly. 

 

Outlook Input toolOutlook Input toolFast forward a couple of years to Inspire 2017.  I was having breakfast before the opening keynote and I heard an Alteryx employee talking about using Alteryx to blend data from a file she receives from another department.  I had a hunch and asked her how she gets those files.  I stifled a literal “LOL” moment when she said she receives them via email.  I told her I had some code that might help her get to a fully automated solution.  Later in the conference I attended a session on using the Alteryx API and SDK.  I paid particularly close attention to the SDK portion because at the time I had no idea creating custom tools was even an option.  I know this is going to sound lame and cliché, but at that moment I was truly inspired to jump into code and build my own custom input tool to pull attachments out of Outlook emails.  I know, I know, too corny.  Moving on.  As a fantastic conference was coming to a close I just happened to spot one of the engineers, @JPKa,  who hosted the session on using the API and SDK at the closing reception.  I told him my idea and he pointed me in the right direction to get started.  Two weeks of personal time later I had  a solid version 1  of the tool and I shared it with my friends at Alteryx.

 

 

 

Working with the SDK

 

Outlook Input Tool ConfigurationOutlook Input Tool ConfigurationEverything I needed to get started was already installed with Alteryx Designer. I used a combination of reading through and interpreting the sample and the getting started documentation. Honestly, my first impression was confusion.  The sample project involves using an XML file containing Alteryx tool XML config information as an input to set the tool XML config information.  When it came to interpreting the code to understand how it was linking the xml config information to the input data I was often confused as to whether the xml components in question were part of the Alteryx configuration or the input tool that was providing the configuration.  Simply put, it was setting configuration from configuration. If anyone from Alteryx Product Management is reading this,  a better sample might be to pull dummy customer data from a .csv file and send it to an output stream.

 

My biggest obstacle was interpreting the sample code - figuring out how to separate the xml config as input from the xml config that was reading the input.  It makes perfect sense now, but when I was trying to understand the custom tool architecture and input file interpretation simultaneously for the first time I had some trouble.

 

 

Once I had a working tool I went back and forth with the folks at Alteryx and there were some limitations there with getting them the install and sharing attachments. I discovered I could wrap the install into a yxzp file and include instructions and a help file. JP was very helpful with identifying some of the nuances of working with the SDK and offered some suggestions on improving the tool. I needed to incorporate the "UpdateOnly" parameter because the C# code was executing every time a new tool was added to the canvas. I didn't know that the Alteryx Engine had a special feature where it runs the workflow (with no actual records other than metadata) every time a new tool is added.  

 

He also suggested I add some date filtering capability to the tool, allowing people to avoid downloading their entire inbox if they select “Inbox”.  For this I added a configuration element for the user to input a query string and included a link to the documentation to build the query.

 

 

 

Using the Outlook Input Tool

 

You may be tempted to point this sucker to your Inbox right out of the gate, and I don't know what your Inbox looks like, but if it looks anything like some of our testers, I'd advise against that. Play with your drafts folder or deleted items first.

 

You may find copying the search syntax from Outlook into the Query String helpful:

 

copy the query string from outlookcopy the query string from outlook

 

As for me, this is how I've been using the tool. In this example I filter out a specific Excel file and send it through a Dynamic Input tool to see the results. I'll leave it up to you to discover new and interesting ways to consume the files that you no longer have to manually fish out of your inboxes.

 

OutlookInputToolSample.png

 

 

giphy-downsized (2).gifBut wait, there’s more!  Act now and as a bonus you get the added message stream allowing you to perform any number of analytics on your email messages.  And if that isn’t enough, join the two streams together on Message ID for maximum analytical potential!!

 

 

 

 

What's included in the package

 

You'll find an Alteryx *.yxzp file attached to this post. When you open it in Alteryx Designer, you will see installation instructions:

 

Outlook Tools Install instructions.png

 

and a help file

 

Outlook Tools Install help file.png

 

The workflow is a single RunCommand tool that will install the Outlook Input tool. You can find my source code on Git Hub.

 

I hope you find the Outlook Input tool useful. This has been a fun and exciting project and I can't wait to see what creative ways the community finds to use this tool. Use the comments below to let me know your experience working with the tool.

 

UPDATE 8/1/2017:

A new version is available on the gallery: https://gallery.alteryx.com/#!app/Outlook-Tools-Install/597b35c2f499c716ec34a782.

 

Changes:

  • Implemented paging to prevent timeouts through the Exchange Web Services when working with large inboxes and complex filters.  Note: you still may need to adjust throttling settings on your server: https://msdn.microsoft.com/en-us/library/office/jj945066(v=exchg.150).aspx.
  • Updated the installer to remove previously installed versions of the tools so it's not cluttering up your programs list.
Comments
gantaanvesh
8 - Asteroid

Hi @rpaugh @TorbenL, I have come up with the same requirement and I followed the same steps which you have mentioned in the document. Firstly I tried to install on my local machine but I am not able to install the tool in Alteryx. 

 

Then I gave trail in my Alteryx production server somehow it got installed and added the tool in connectors pallet. but then coming to the configuration part again am facing the issues like shown below.

 

( OutlookInputTool (1) The request failed. The remote name could not be resolved: 'anvesh-9113'¶ServiceRequestException¶ at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.BuildEwsHttpWebRequest_)

 

can you please help me to resolve the issue.

 

Note:  In Alteryx server currently we don't have Access for the Internet.

           In local Machine cant able to install the tool.

 

Waiting for your reply  !!

 

Thanks in advance,

Anvesh

rpaugh
11 - Bolide

@gantaanvesh If your server is unable to access the internet then the tool will not work.  If you don't have permission to install the tool on your local machine then you'll need to either have IT install the tool for you, or you can install the new version of the tool located on the gallery here.

rpaugh
11 - Bolide

@jstewart what authentication issues do you have?  Are the services completely locked down or are you simply using a different authentication method than username/password?  I'm guessing it's the latter given that you're embedding security in an Azure app?  Is it Oauth 2.0?

gantaanvesh
8 - Asteroid

Hi @rpaugh, the link you shared for updated tool in the gallery we don't have access to download, but somehow I got installed the tool on my local machine.

Now can you please help me in the configuration part still am getting errors that ( Outlook Input (1) {"message":"unsupported web protocol https://outlook.office365.com","InnerException":null}). By any chance is it possible to contact you through mail ??

Mander
5 - Atom

@rpaugh,

Thanks a lot for creating this tool and continuing to improve it.

 

Could you help me understand this error?

Error: OutlookInputTool (1): The request failed. The remote server returned an error:
(401) Unauthorized. ServiceRequestException 
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)
   at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest& request)
   at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
   at Microsoft.Exchange.WebServices.Data.ExchangeService.FindItems(FolderId parentFolderId, String queryString, ViewBase view)
   at OutlookTools.OutlookEmail.GetItemsFromFolder(ExchangeService service, Object folder, Boolean isRoot)
   at OutlookTools.OutlookEmail.GetItems(Int64 recordLimit)
   at OutlookTools.OutlookInputToolEngine.PI_PushAllRecords(Int64 nRecordLimit)
   at SRC.Alteryx.GenericNetPluginInterface.PI_PushAllRecords(GenericNetPluginInterface* , Int64 nRecordLimit)

 

I determined that I should choose Exchange 2013 using the connection status option in the systray(15.0.1###.####). I also determined the Service URL using Test e-mail auto configuration. The one labelled 'Availability Service URL'.

We are also using Virtual Machines in our company called AppSphere.

 

Is there anything else I can try to get the Tool working for us?

rpaugh
11 - Bolide

@Mander The availability service is for the Availability API for accessing a user's free/busy information.  You need the service URL for the Exchange server itself.  It should be in the format "<server domain>\ews\exchange.asmx".  For example, if you're using Office 365 it's "https://outlook.office365.com/ews/exchange.asmx".  If you're using an on-premise server it will likely be something like "\\<internal company url>\ews\exchange.asmx".

rpaugh
11 - Bolide
Hopefully this attachment comes through. You will need to change the file
extension from ".zip" to ".yxi" then run it.
mhayashi
7 - Meteor

Thanks for sharing!

 

QQ: Has anyone run into issues installing the Outlook+Tools+Install.yxzp on server?

 

On my desktop designer I had no issues running the "Run Command" tool and then restarting Designer. 

On the server however after running the "Run Command" tool and restarting. The OutlookInputTool is not located in Connectors or anywhere else for that matter.

 

any suggestions?

mhayashi
7 - Meteor
Thanks! I was able to fix the server install issue. However, the beta version didn't transfer over in the reply.







______________________

Michael Hayashi
Sr. Staff | Cybersecurity Strategy & Implementation - CPRM
Schwab Cybersecurity Services (SCS)

Tel 602 977 4230
4701 E Francisco Dr, Phoenix, AZ 85044

Charles Schwab & Co., Inc.
NOTICE: All email sent to or from the Charles Schwab corporate email system is subject to archiving, monitoring and/or review by Schwab personnel.
rpaugh
11 - Bolide

@mhayashi if you logged into the server as yourself then it probably installed the tool in your local account's AppData folder rather than the actual location in which Alteryx is installed on the server (or vice versa depending on how Alteryx was installed on your server).  During the installation process you'll have an option to select the installation path, at which point you should locate where the server's actual Alteryx installation is.  

 

Important note: Alteryx is ending the life of the SDK used to build this tool at the end of this year so it may not work in future versions of Alteryx starting next year.  With that in mind, I would recommend forgoing use of this tool in favor of the newer version you can get here.  It's technically still in beta, but so far seems to be functionally solid.  The only piece that doesn't (and probably won't) work is the autodiscover service for Exchange, so you'll have to manually enter your Exchange service URL in order to connect.  A little inconvenient, but actually makes the tool run slightly faster since it doesn't have to navigate your Exchange services looking for the right endpoint.

mhayashi
7 - Meteor

@rpaugh thanks for the install tip, I will give this a try. As far as utilizing the beta version to sustain past the next update from Alteryx, can you please provide the .yxi file?

Google drive is blocked where I work so the download link is failing.

Yanoflies
8 - Asteroid

Thank you so much for this, it's is such a great thing to have.

I had a couple of questions regarding some of the fields that are not being read right:

a. ConversationIndex is returning "System.Byte[]"

b. Flag which is returning "Microsoft.Exchange.WebServices.Data.Flag"

 

There may be more but these are the only two I think would be useful for me -- I'm guessing I need to study up on the Office Exchange EWS API.

rpaugh
11 - Bolide

@Yanoflies are you using the old version of the tool?  If so, I recommend using the new version (js beta).  The old version was written using C#, so to pull the data out of those fields I would have had to code translations of each possible type of field which was not feasible.  The new version is written using javascript, so those fields come over as JSON objects which are much easier to parse the data you need.

Yanoflies
8 - Asteroid

@rpaugh thanks for the prompt response; after reading what's written on the new version page, I understand why those fields return like that.

Unfortunately the js version doesn't seem to like me, I tried it a while back but could not get it to work and neither can I now:

 

image.png

 

Any idea why I'm getting these errors? I'm on 11.7.4.

EDIT:

 

It shows up even if I don't run the workflow: image.png

I tried this on a different machine with the same result :(.

 

EDIT 2:

And just whilst I am here, there doesn't appear to be any sort of "FROM" field available when looking at "SentItems" (both in the old and new js version). I guess it doesn't make logical sense when you think of it at first but for shared mailboxes or in any mailboxes were people are sending on behalf of then it's a pretty crucial piece of information.

 

EDIT 3:

I had some more look at the old version's code on Git and from what I understand if the fields are not available then it just means they are not available in the API and I'm out of luck.

rpaugh
11 - Bolide

@Yanoflies hm...you may have to use version 2018.1 or later for the js tool to work.  I've not had an opportunity to test it on older versions to see if that's the case.  

 

Regarding Edit 2: there is a "From" field if you select a message folder.  For example, when I select "Inbox" I see the field:

 

Alteryx Outlook Input Tool - Field Example.png

 

However, the way the EWS managed API is built you have to specifically tell it which type of object each folder contains in order to get the extra fields - otherwise you get a set of default item fields.  It's possible that I've missed to classify as containing "email messages".  Which folder are you selecting that's not showing a "From" field?  Here's where I'm checking the folder type in the code and associating with the appropriate schema to get the applicable fields:

 

Alteryx Outlook Input Tool - Code Field Example.png

 

Regarding Edit 3:  see my response to Edit 2 above.  All of the fields should be available via the API, it's just a matter of matching the schema to the appropriate Exchange folder to get the extra fields.  I picked the ones to cover the widest use cases.  I had to do the same thing with the js version as well:

 

Alteryx Outlook Input Tool - Code Field Example 2.png

 

 

 

Yanoflies
8 - Asteroid

@rpaugh unfortunately I don't currently have access to anything above 11.7.4 but it's most definitely the fault.

 

The folder I am selecting is "SentItems":

 

image.png

 

+

 

image.png

 

Thank you so much for explaning how it works, this is all out of my comfort zone but I find it so exciting and I will give it a try.

 

rpaugh
11 - Bolide

@Yanoflies it's definitely fixable to add those new fields in, however I don't plan to do that given that the SDK I used to build the old tool is reaching end of life this year.  I will look into adding the extra fields for the js version though.  I know that doesn't help you now, but if you're ever able to upgrade you should have what you need.

Yanoflies
8 - Asteroid

@rpaugh look! I did it! Well I did it for the js version which I can't use haha ...

 

image.png

 

Now let me see if I can sort it out in the old version too.

 

Honestly so grateful for your tool and for so kindly sharing your knowledge around.

 

EDIT:

I think I figured it out for the old version too but I've no idea how to compile it -- I'll try to figure that out tomorrow. Good night!

 

EDIT 2:

 

I am now pretty sure I figured it out. I also managed to compile it with the help of Google: I needed to add the required .dll's to the project's references and it compiled.

 

I lied about sleeping before but I really need to now so I'll test and report back tomorrow.

 

EDIT 3:

Just in case anybody else needed this, I've submitted a pull request on Git to map SentItems to the EmailMessageSchema.

JMoore
8 - Asteroid

great work @Yanoflies! can you show what code you implemented? I will probably dig into the Java version here a bit but so far I have found it meeting my more basic requirements.

JMoore
8 - Asteroid

@rpaugh I can't comment a response on issues in Github but a person there needs to know about the .yxi although you have since included it in the repository it seems, interestingly when running it there is no response to tell you whether it succeeded or completed or not.

rpaugh
11 - Bolide

@JMoore that's actually a little quirk with installing tools via .yxi files.  For whatever reason, Alteryx doesn't inform you the installation's complete.  Typically, I know when it's complete when whatever tool tab I have selected suddenly jumps back to Favorites.  Then I know it's complete.

Yanoflies
8 - Asteroid

@JMoore I made a pull request on the js Git as well, have a look there for what I changed (it's very minor).


Here's the editted C# version being used successfully to group emails sent out from the mailbox by the sender name (among other things).

image.png

 

Off-topic but how the heck do I quote or reply to people here? I've been tagging people using HTML manually but surely there is a better way to do it?!

JMoore
8 - Asteroid

@Yanoflies  I just type @ and then start typing the name and in Chrome it just shows up a list of users to select from. Looks like you got the join nicely configured. and I will check out the pull on github here!

rpaugh
11 - Bolide

@Yanoflies I believe you can't tag people when you're at the Atom level in the community.  Once you post enough and build up enough reputation to hit the next level then you should be able to start tagging people.

JMoore
8 - Asteroid

So I am not upgraded to Alteryx version 2018.4 I am trying to find the area where I need to amend the version value so it will work.

 

Here is the error being thrown:

Error: Outlook Input (1): TypeError: c.Fields is not iterable
at Object.Alteryx.Plugin.PI_PushAllRecords (file:///C:/Users/250413/AppData/Roaming/Alteryx/Tools/Outlook%20Input/Outlook%20InputEngine.html:134:37)
at Object.<anonymous> (file:///C:/Program%20Files/Alteryx/bin/RuntimeData/HtmlAssets/Shared/1/lib/compiled/alteryx/engine/main.js:199:28)
at file:///C:/Users/250413/AppData/Roaming/Alteryx/Tools/Outlook%20Input/Outlook%20InputEngine.html:1:16

rpaugh
11 - Bolide

@JMoore are you working with a new workflow or opening an existing workflow containing this tool?  I've run into issue before where the configuration got confused on existing workflows when major changes were made.  Now that you've upgraded you could also try removing the tool and reinstalling.  If all that fails, try enabling AlteryxCEF DevTools and see if you get any errors in the console that might hint at the issue (or send the errors to me).  Let me know how it goes.

rpaugh
11 - Bolide

Hello to everyone following this article,

 

I will be at Inspire 2019 in Nashville next week.  If anyone here is attending as well would like to meet and troubleshoot any issues in person contact me via the Inspire app.

 

 

Yanoflies
8 - Asteroid

Can anybody tell me more about QueryString? In Outlook if I search "received:yesterday" I only get emails from yesterday, but via this tool I get a mix of emails between yesterday and today. Obviously it looks like it's due to timezones but how could my Exchange timezone be different o.o?

EDIT:

From further testing it looks like the QueryString is working off UTC time whereas I'm in +10 ... I'm trying to think of a way to address that.

JMoore
8 - Asteroid

@Yanoflies I would build out a formula to convert the time and days needed for the UTC time essentialy two days and a time on both to align to your time zone, you also need to determine if today is inside or outside of daylight savings, wikipedia gives a nice set of rules for various time zones which I have used to determine a date and time to convert into UTC for multiple years.

JMoore
8 - Asteroid
@rpaugh I am using it in a new workflow to test it and in the existing workflow, both had the same error. Ok, I will give those steps a try.
Yanoflies
8 - Asteroid

@JMoore the times are correct but what is returned by the QueryString is not.

 

e.g. if I do 'received:today' it will miss out on the first 10 hours of my day.

rpaugh
11 - Bolide

@Yanoflies typically this occurs when the client machine time zone (or date/time format) is set up differently than that of the server machine (your standard Outlook client probably already accounts for this).  However, there is a slight workaround.  Simply change your query string to something like "received:>= yesterday" or "received:>=6/6/2019".  Basically, you can just extend your filter past whatever the time zone adjustment is to get the right messages, then filter out any extras via the standard Alteryx Filter tool after-the-fact.  Just to be sure, you might also check with your IT department to see what time zone your server is on.

Yanoflies
8 - Asteroid

@rpaugh thanks for that. It's what I ended up doing:

received:>=lastweek

Only way I could guarantee getting all of 'yesterday' in a relative manner.

It gives me a little more than I want, but it does the job.

Fuzzpuff
5 - Atom

@rpaugh Been using this tool for the past 5-6 months. Yesterday, I had to update my login password with my company. once I had done so, I updated the password within this tool and am now getting "This account is locked" errors. Spent some time with my IT dept this morning and we seem to have hit an impasse as there aren't any issues with my account and there have been no other security updates. Full error for reference:

 

Error: OutlookInputTool (43): This account is locked. Visit https://outlook.office365.com/owa//XXXX.com to unlock it.

AccountIsLockedException  

At Microsoft.Exchange.WebServices.Data.ExchangeServiceBase.InternalProcessHttpErrorResponse(IEwsHttpWebResponse httpWebResponse, WebException webException, TraceFlags responseHeadersTraceFlag, TraceFlags responseTraceFlag)  

at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverRequest.ProcessWebException(WebException webException) 

at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverRequest.InternalExecute()  

at Microsoft.Exchange.WebServices.Autodiscover.GetUserSettingsRequest.Execute() 

at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.InternalGetUserSettings(List`1 smtpAddresses, List`1 settings, Nullable`1 requestedVersion, Uri& autodiscoverUrl)  

at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.GetSettings[TGetSettingsResponseCollection,TSettingName](List`1 identities, List`1 settings, Nullable`1 requestedVersion, GetSettingsMethod`2 getSettingsMethod, Func`1 getDomainMethod)  

at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.GetUserSettings(List`1 smtpAddresses, List`1 settings)  

at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.InternalGetSoapUserSettings(String smtpAddress, List`1 requestedSettings)  

at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.GetUserSettings(String userSmtpAddress, UserSettingName[] userSettingNames) 

at Microsoft.Exchange.WebServices.Data.ExchangeService.GetAutodiscoverUrl(String emailAddress, ExchangeVersion requestedServerVersion, AutodiscoverRedirectionUrlValidationCallback validateRedirectionUrlCallback)  

at Microsoft.Exchange.WebServices.Data.ExchangeService.AutodiscoverUrl(String emailAddress, AutodiscoverRedirectionUrlValidationCallback validateRedirectionUrlCallback)  

at OutlookTools.OutlookEmail.GetItems(Int64 recordLimit)  

at OutlookTools.OutlookInputToolEngine.PI_PushAllRecords(Int64 nRecordLimit)   at SRC.Alteryx.GenericNetPluginInterface.PI_PushAllRecords(GenericNetPluginInterface* , Int64 nRecordLimit)

Fuzzpuff
5 - Atom

@rpaugh please disregard my previous message. It appears that this was either due to a simple time delay with my updated password or because I had updated my password while working remotely. When I docked at my desk and hard-lined into my company's network this morning, everything ran just fine.

 

Thanks for your work on this amazing tool!

rpaugh
11 - Bolide

@Fuzzpuff great to hear and I'm glad you enjoy it.

icybrybyx88
6 - Meteoroid

@rpaugh and @JMoore was a solution reached for the error?  I'm receiving the exact same error and I am running Alteryx version 2018.4

JMoore
8 - Asteroid

@icybrybyx88 I have not succeeded any a solution for the various versions for the new HTML/Java tool

icybrybyx88
6 - Meteoroid

@JMoore I figured out that you have to select a field first on the left side of designer under the "Select Fields" area and then you need to actually type in something to search for like Body:Asteroid or From:Dan Smith etc

JMoore and icybrybyx88, I was getting the same error messages "c.Fields not iterable" when I use the beta/javascript version. As icybrybyx88 states above, you get this error if I had not selected any fields.

 

I shared that and these two other "tips" with my coworkers and now we are all able to connect:

rpaugh
11 - Bolide

@Data_is_mymiddlename was that after a fresh installation, or did the error come later?  I'm wondering if Alteryx was trying to load an outdated configuration it had saved during a tool upgrade.

@rpaugh, this was after a fresh install. I input my credentials, etc, but did not select any fields from "Selected Fields" and then clicked on another tool. Alteryx immediately gave that error because of the way that Alteryx updates whenever you change a tools configuration (even without running the workflow). Thanks for following up. Let me know if you need anything else.

 

BTW, the tool is great! Keep up the good work.

 

On a side note: I'm working on a macro to further assist with the attachment download process (saving the files to a specific folder and then adding the resulting data as an input), but odd behavior with the dynamic input tool has sidelined me. Trying to find a way to allow for all types of files, but dynamic input doesn't like .xls and possibly others that I haven't tested yet.

rpaugh
11 - Bolide

@Data_is_mymiddlename so did you get the tool to work or are you still stuck on the configuration error?

 

As for the Dynamic Input tool, I believe I've run into .xls issues as well.  .xls is 32-bit and may rely on a driver you don't have installed if you're using Office 64-bit.  When you say all file types, are you referring to accepting them in general (as with the xls issue) or processing multiple file types from a single Outlook Input into the same macro?

@rpaugh, the tool is working great after I got past the configuration issues (essentially needing to select fields, etc. and configure for O365 - which was found in your help file).

 

Regarding the Dynamic Input too, I am using Office365 32-bit but Alteryx is 64-bit. Could that be cause of the driver issue? I heard from a colleague that the .xls issue with Dynamic Input may have something to with the way Sheets are interpreted by the DI tool but I haven't dug too deep into it yet.  This is my first complex encounter the DI tool so any feedback / guidance is appreciated. I'll try to dive into that on the main forums later this week.

 

The "all files types" is just the general reference. It would just be an option for a singular file type (.xlsx, .csv, etc.) with multiple files per Outlook Input... I don't want to get too far ahead of myself. Maybe v2 if v1 sees the light of day.

jessecolucci
5 - Atom

Hi! I apologize in advance if this issue has already been addressed. I believe I'm unable to connect to the outlook exchange due to two-step authentication. How do I proceed?

 

This tool would be huge for me to get working at LEGO 🙂

DanMurphy17
5 - Atom

Hi! I've installed this on the 64 bit version with no issues. I'm trying to help a colleague do the same. It's just not appearing in the connectors list of tools despite having followed the guide. Maybe a very remedial question but help would be appreciated! Thanks 

d208290
5 - Atom

@rpaugh, hoping you can assist with an issue that i'm currently facing.

 

I have been leveraging the tool for months now (it's brilliant, thank you) and a couple of days ago, Alteryx simply could no longer find the plugin. i tried reinstalling but no luck. 

 

I've also tried updating Alteryx to the latest version and that hasn't helped either. Thanks in advance.


2019-07-19_9-11-29.png 

rpaugh
11 - Bolide

@Data_is_mymiddlename my guess is that the 32-bit/64-bit discrepancy is the issue.  If you save (or re-save) the file as .xlsx prior to the Dynamic Input then it should work.  I'm sure there are plenty of other forum posts that could help you resolve that quicker than I could at the moment.

 

@jessecolucci the tool currently does not work with two-step authentication, but it's something I'd like to add.  I'm assuming you're referring to OAuth 2.0?  I'll have to look into and get back to you, but I unfortunately don't have a timeline for that update yet.  I'll keep you posted.

 

@DanMurphy17 which version of the tool are you using?  The old one or the new js one?  If you're using the old one then chances are your colleague is installing the tool to a different directory than Alteryx, and therefore can't find it.

 

@d208290 in case you haven't done this yet, try re-installing the tool (ensuring the correct installation directory is selected) and see if that fixes it.  I know Alteryx is phasing out the toolkit the old Outlook Input tool was built on later this year so there may be an issue there if they've already made changes.  You might also consider installing the new js version and see if that works.  Note: you can use both Outlook tools side-by-side without breaking your existing tool installations and workflows.

Yanoflies
8 - Asteroid

I have another question regarding Query String:

In Outlook I can search for "modified:>lastweek" but not with this tool (.js version) -- why is that? In contrast "received:>lastweek" works in both in Outlook and with the tool.

EDIT:

 

Looks like it's not supported by ExchangeWebService.js since it's not listed in: https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/querystring-queryst...

 

I really need to find a way to only return emails modified recently. The mailboxes I am using this tool with are so big they crash unless I can restrict the amount of emails returned.

 

EDIT 2:

Never mind, looks like I can't use the .js version because it cannot read sub-folders within a shared mailbox. I've tried messing with the hierarchy but I can only ever read emails from the Inbox and not any of the sub-folders below it. I tried messing with the code but I cannot get this fixed.

if (c.IncludeSubFolders == "True") {
                if (c.SubFolderName != "" && c.SubFolderName != null) {
                    return service.FindFolders(Number(c.FolderToSearch), new EwsJS.SearchFilter.ContainsSubstring(EwsJS.FolderSchema.DisplayName, c.SubFolderName), folderView)
                    .then(function (folderResults) {
                        if (c.SkipRootFolderSearch != "True") {
                            folderResults.Folders.push(root);
                        }
                        return bindFolders(folderResults).then(x => x);
                    })



Once the C# SDK is depreciated, will the old C# tool no longer work? Because if it will stop working then I will have big problems ...

rpaugh
11 - Bolide

@Yanoflies I just uploaded what I think is a fix for your issue searching sub-folders in another mailbox.  Unfortunately, I don't have an Outlook/Exchange account to test it out myself so you'll have to install the latest version from the gallery and let me know if it works.

 

Regarding the C# SDK deprecation, I'm not sure if the tool will just stop working or not.  All I know is that they're not maintaining or upgrading it moving forward.  I'll reach out and see if I can get confirmation on what will actually happen.