Using SharePoint Designer 2013 Workflow to copy file via REST on Office 365

This is a bit of trial and error, but works very well at the end, so I want to publish this and share the syntax.


Related References:


I will tackle the next step.  How do you call a POST REST service, with the CopyTo function on SPFile.

The flexibility is that you can easily tweak the urls and essentially allow your workflow to copy files anywhere.


Step 1.  Understand the correct URL


Put this into your browser's address bar (this executes a GET request):


No good.  Need POST.


Step 2.  Make that SharePoint Designer 2013 Workflow


  1. First step, with the POST call, we need to add a Request Header for Accept: application/json; odata=verbose
    Put this in a dictionary variable.

  2. Second step.  Call Web Service!

    You need to set up Request Headers as well.  This has to be done via the Properties, since it's not a link that's shown.  Set this to the dictionary created in the previous step.
    This step is the same as mentioned in Adrian Fiechter's blog.

  3. You should capture the ResponseContent, and add an additional action to log it to History
    The Stage ends.  Go to End of Workflow.


  4. The whole thing, in 3 lines:


Step 3.  Run it.



Here's me starting the workflow on the top1.png file.



The top1.png is copied to top2.png!  Interestingly, it's copied the Call Workflow "workflow status" column.  Both links (which is a lookup field) go to the same workflow.



This is the workflow history. 

Notice that the CopyTo method returned void (null) in this case.  Should there be an error, you'll see it logged here.


That's all!  Hope you find these steps useful.