diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..940794e60 --- /dev/null +++ b/.gitignore @@ -0,0 +1,288 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ +**/Properties/launchSettings.json + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Typescript v1 declaration files +typings/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush +.cr/ + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..a2c95fc15 --- /dev/null +++ b/LICENSE @@ -0,0 +1,395 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/LICENSE-CODE b/LICENSE-CODE new file mode 100644 index 000000000..b17b032a4 --- /dev/null +++ b/LICENSE-CODE @@ -0,0 +1,17 @@ +The MIT License (MIT) +Copyright (c) Microsoft Corporation + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT +NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 000000000..7ec5e9723 --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ + +# Contributing +This project welcomes contributions and suggestions. Most contributions require you to agree to a +Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us +the rights to use your contribution. For details, visit https://cla.microsoft.com. + +When you submit a pull request, a CLA-bot will automatically determine whether you need to provide +a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions +provided by the bot. You will only need to do this once across all repos using our CLA. + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). +For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or +contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. + +# Legal Notices +Microsoft and any contributors grant you a license to the Microsoft documentation and other content +in this repository under the [Creative Commons Attribution 4.0 International Public License](https://creativecommons.org/licenses/by/4.0/legalcode), +see the [LICENSE](LICENSE.md) file, and grant you a license to any code in the repository under the [MIT License](https://opensource.org/licenses/MIT), see the +[LICENSE-CODE](LICENSE-CODE.md) file. + +Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation +may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. +The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. +Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653. + +Privacy information can be found at https://privacy.microsoft.com/en-us/ + +Microsoft and any contributors reserve all others rights, whether under their respective copyrights, patents, +or trademarks, whether by implication, estoppel or otherwise. + diff --git a/ThirdPartyNotices b/ThirdPartyNotices new file mode 100644 index 000000000..a0bd09d68 --- /dev/null +++ b/ThirdPartyNotices @@ -0,0 +1,15 @@ +##Legal Notices +Microsoft and any contributors grant you a license to the Microsoft documentation and other content +in this repository under the [Creative Commons Attribution 4.0 International Public License](https://creativecommons.org/licenses/by/4.0/legalcode), +see the [LICENSE](LICENSE) file, and grant you a license to any code in the repository under the [MIT License](https://opensource.org/licenses/MIT), see the +[LICENSE-CODE](LICENSE-CODE) file. + +Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation +may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. +The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. +Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653. + +Privacy information can be found at https://privacy.microsoft.com/en-us/ + +Microsoft and any contributors reserve all others rights, whether under their respective copyrights, patents, +or trademarks, whether by implication, estoppel or otherwise. \ No newline at end of file diff --git a/flow-docs/TOC.md b/flow-docs/TOC.md new file mode 100644 index 000000000..54d37a7e0 --- /dev/null +++ b/flow-docs/TOC.md @@ -0,0 +1,67 @@ +# Get started +## [Get started](getting-started.md) +## [Sign up](sign-up-sign-in.md) +## [Create a flow from a template](get-started-logic-template.md) +## [Create a flow from scratch](get-started-logic-flow.md) +## [Create a team flow](create-team-flows.md) +## [Overview of environments](environments-overview-maker.md) +## [Frequently asked questions](frequently-asked-questions.md) +# Build a flow +## [Add an action](multi-step-logic-flow.md) +## [Add a condition](add-a-condition.md) +## [Run a flow on a schedule](run-tasks-on-a-schedule.md) +## [Trigger a flow with email](email-triggers.md) +## [Process a list of items](apply-to-each.md) +## [Create a flow with Dynamics 365](connection-dynamics365.md) +## [Add data to the Common Data Service](common-data-model-intro.md) +## [Watch a flow](see-a-flow-run.md) +## [Publish a template](publish-a-template.md) +## [Troubleshoot a flow](fix-flow-failures.md) +# Create approval flows +## [Single approvals](modern-approvals.md) +## [Sequential approvals](sequential-modern-approvals.md) +## [Parallel approvals](parallel-modern-approvals.md) +## [Integrated approvals](common-data-model-approve.md) +## [Use the mobile app](.md) +## [Create a flow](mobile-create-flow.md) +## [Create a button flow](introduction-to-button-flows.md) +## [Create a button flow with trigger tokens](introduction-to-button-trigger-tokens.md) +## [Create a button flow with user input](button-flow-with-user-input-tokens.md) +## [Share a button](share-buttons.md) +## [Monitor flow activity](mobile-monitor-activity.md) +## [Manage your flows](mobile-manage-flows.md) +# Use physical devices +## [Use a Flic](flic-button-flows.md) +## [Use a bttn](bttn-button-flows.md) +# Connections +## [Available connections](https://go.microsoft.com/fwlink/?LinkId=832211&clcid=0x409) +## [Manage connections](add-manage-connections.md) +## [Manage gateways](gateway-manage.md) +## [Understand gateways](gateway-reference.md) +# Develop: enterprise developers +## [Microsoft Flow for enterprise developers](dev-enterprise-intro.md) +## [Register and use custom connectors](register-custom-api.md) +## [Describe a custom connector with Postman](postman-collection.md) +## [OpenAPI extensions for custom connectors](customapi-how-to-swagger.md) +## [Use Azure Active Directory with a custom connector](customapi-azure-resource-manager-tutorial.md) +## [Build a custom connector for a Web API](customapi-web-api-tutorial.md) +## [Use a webhook to trigger a flow](customapi-webhooks.md) +# Develop: partners and ISVs +## [Microsoft Flow for Microsoft partners and ISVs](dev-isv-partner-intro.md) +## [Overview of certifying API connectors](api-connector-overview.md) +## [Develop API connectors for certification](api-connector-dev.md) +## [Submit API connectors for certification](api-connector-submission.md) +## [FAQ for certifying API connectors](api-connector-faq.md) +## [Integrate with websites and other technologies](embed-flow-dev.md) +## [Let customers test drive your flows](dev-appsource-test-drive.md) +# Administration +## [Flows in your organization Q&A](organization-q-and-a.md) +## [Pricing](billing-questions.md) +## [Introduction to the admin center](introduction-to-the-admin-center.md) +## [Administer environments](environments-overview-admin.md) +## [Set a policy to help prevent data loss](prevent-data-loss.md) +## [Introduction to data groups](introduction-to-data-groups.md) +# Reference +## [Regions overview](regions-overview.md) +## [Limits and configuration](limits-and-config.md) +## [Release notes](release-notes.md) \ No newline at end of file diff --git a/flow-docs/add-a-condition.md b/flow-docs/add-a-condition.md new file mode 100644 index 000000000..71e4920fd --- /dev/null +++ b/flow-docs/add-a-condition.md @@ -0,0 +1,48 @@ +--- +title: Add a condition to a flow | Microsoft Docs +description: Specify that a flow performs one or more tasks only if a particular condition is true. +services: '' +suite: flow +documentationcenter: na +author: stepsic-microsoft-com +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 10/22/2016 +ms.author: stepsic + +--- +# Add a condition to a flow +Specify that a flow performs one or more tasks only if a particular condition is true. For example, specify that you'll get an email only if a tweet that contains a keyword is retweeted at least 10 times. + +**Prerequisites** + +* [Create a flow](get-started-logic-template.md) from a template - this tutorial will [use this template](https://flow.microsoft.com/galleries/public/templates/e78571e5c70e4806a18eeacba5a897c8/) as the example + +## Add a condition +1. In [flow.microsoft.com](https://flow.microsoft.com), select **My Flows** in the top navigation bar. +2. In the list of flows, select a flow that you have created. This tutorial uses an example with a Twitter trigger and a SharePoint action. +3. Under the last action, select the **New step** button. +4. Select **Add a condition**. + + ![Condition button](./media/add-a-condition/add-condition.png) +5. Select an empty area in **Object name**, and select **Add dynamic content** to open the dynamic content menu. +6. Select the **Retweet count** parameter to add it to the box. +7. In the **Relationship** box, select **is greater than or equal to**. +8. In the **Value** box, type **10**. + + ![The OBJECT NAME box with a parameter in it](./media/add-a-condition/specify-condition.png) +9. Click on the header of action you want inside of condition (such as **Create item**) and drag it underneath the text that reads **IF YES**. When you release the cursor, the action should move into that box. + + ![Drag action](./media/add-a-condition/drag-action.png) +10. Save the flow. + +## Edit in advanced mode +You can also select the **Edit in advanced mode** link to write more advanced conditions. You can use any expression from the *Workflow definition language* here. [Learn more about](https://msdn.microsoft.com/library/azure/mt643789.aspx) what functions are available. + diff --git a/flow-docs/add-manage-connections.md b/flow-docs/add-manage-connections.md new file mode 100644 index 000000000..0a4f5a43c --- /dev/null +++ b/flow-docs/add-manage-connections.md @@ -0,0 +1,94 @@ +--- +title: Learn to connect to your data using connections and on-premises data gateways | Microsoft Docs +description: Add or manage connections to SharePoint, SQL Server, OneDrive for Business, Salesforce, Office 365, OneDrive, Dropbox, Twitter, Google Drive, and more +services: '' +suite: flow +documentationcenter: na +author: stepsic-microsoft-com +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 02/15/2017 +ms.author: stepsic + +--- +# Manage connections in Microsoft Flow +If you create a connection in Microsoft Flow, you can easily access your data while building a flow. Microsoft Flow includes commonly used connections, including SharePoint, SQL Server, Office 365, OneDrive for Business, Salesforce, Excel, Dropbox, Twitter, and more. Connections are shared with PowerApps, so when you create a connection in one product, the connection shows up in the other. + +For example, you can use a connection to perform these tasks: + +* Update a SharePoint list. +* Get data from an Excel file in your OneDrive for Business or Dropbox account. +* Send email in Office 365. +* Send a tweet. + +You can create a connection in multiple scenarios, such as these: + +* Creating a [flow from a template](get-started-logic-template.md) +* Creating a [flow from blank](get-started-logic-flow.md) or updating an existing flow +* Creating a connection in the [Microsoft Flow website][1] directly + +This topic shows you how to manage connections in the [Microsoft Flow website][1]. + +## Add a connection +1. In the [Microsoft Flow website][1], sign in with your work or organization account. +2. Near the upper-right corner, select the gear icon, and then select **Connections**. + + ![Select connections](./media/add-manage-connections/connections-menu.png) +3. Select **Create connection**. +4. In the list of **Available connections**, select the connection that you want to set up, such as SharePoint. +5. Select the **Create connection** button, and then enter your credentials to set up the connection. + +When the connection is set up, it's listed in **My connections**. + +## Connect to your data through an on-premises data gateway +As of this writing, SQL Server and SharePoint Server support the on-premises data gateway. To create a connection that uses a gateway: + +1. Follow the steps earlier in this topic to add a connection. +2. In the list of **Available connections**, select **SQL Server**, and then select the **Connect via on-premise data gateway** check box. + + ![Select gateway](./media/add-manage-connections/select-gateway.png) + + > [!IMPORTANT] + > Microsoft SharePoint data gateways support HTTP traffic but not HTTPS traffic. + > + > +3. Provide the connection's credentials, and then select the gateway that you want to use. + + For more information, see [Manage gateways](gateway-manage.md) and [Understand gateways](gateway-reference.md). + + When the connection is set up, it's listed in **My connections**. + +## Delete a connection +1. Go to the **My connections** page, and then select the trash-can icon for the connection you want to delete. + + ![Delete connection](./media/add-manage-connections/delete-connection.png) +2. Select **OK** to confirm that you would like to delete the connection. + + ![Confirm deletion](./media/add-manage-connections/delete-confirmation.png) + +When you delete a connection, it's removed from both PowerApps and Microsoft Flow. + +## Update a connection +You can update a connection that isn't working because your account details or your password changed. + +1. On the **My connections** page, select the **Verify password** link for the connection that you want to update. + + ![Verify password](./media/add-manage-connections/verify-password.png) +2. When prompted, update your connection with new credentials. + +When you update a connection, it's updated for both PowerApps and Microsoft Flow. + +## Troubleshoot a connection +Depending on your organization's policies, you might need to use the same account for signing in to Microsoft Flow and creating a connection to SharePoint, Office 365 or OneDrive for Business. + +For example, you might sign in to Microsoft Flow with *yourname@outlook.com* but be blocked when you try to connect to SharePoint with *yourname@contoso.com*. You can instead sign in to Microsoft Flow with *yourname@contoso.com* and you'll be able to connect to SharePoint. + + +[1]: https://flow.microsoft.com diff --git a/flow-docs/api-connector-dev.md b/flow-docs/api-connector-dev.md new file mode 100644 index 000000000..b14789ad3 --- /dev/null +++ b/flow-docs/api-connector-dev.md @@ -0,0 +1,62 @@ +--- +title: Develop an API connector | Microsoft Docs +description: Describe your API, specify authentication type, build triggers and actions, and test. +services: '' +suite: flow +documentationcenter: na +author: asavaritayal +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 05/06/2017 +ms.author: astay + +--- +# Develop an API connector (Microsoft Flow) +Building a connector involves multiple steps. To get started - in [Microsoft Flow](https://flow.microsoft.com/), click or tap the **Settings** button (the gear icon) at the upper right of the page. Then click or tap **Custom Connectors**. + +![Finding API connectors](./media/api-connectors-dev/finding-custom-apis.png) + +## Describe your API +API connectors are described using the [OpenAPI standard](https://swagger.io/) for defining the interface of an HTTP API. You can start building with an existing OpenAPI file, or you can import a [Postman Collection](https://www.getpostman.com/docs/collections), which auto-generates the OpenAPI file for you. + +![Define your API diagram](./media/api-connectors-dev/build-your-api-updated.png) + +If you start from either of these API descriptions, the metadata fields in the wizard are auto-populated. You can edit these at any time. + +## Build security +Pick the authentication type supported by your service, and provide additional details to enable identity to flow appropriately between your service and any clients. + +![Security Diagram](./media/api-connectors-dev/security.png) + +[Learn more](register-custom-api.md) about the connector security. + +## Build triggers and actions +1. To build the triggers and actions for your connector, switch to the **Definition** tab. + + ![Definition Diagram](./media/api-connectors-dev/definition.png) +2. Using the wizard, you can add new operations or edit the schema and response for existing ones. The **General** properties for each operation enable you to control the end-user experience for your connector. Learn more about the different types of operations using the links below: + + * [Triggers](customapi-webhooks.md) (not visible in PowerApps) + * [Actions](register-custom-api.md) + + To implement advanced functionality for Microsoft Flow, refer to [OpenAPI extensions for API connectors](https://flow.microsoft.com/documentation/customapi-how-to-swagger/). +3. Finally, click or tap **Create connector** to register the API connector. + +For additional features not available in the wizard, please contact [condevhelp@microsoft.com](mailto:condevhelp@microsoft.com). + +## Test the connector +Prior to submission, test your API connector in one or more ways: + +* Using the API connector [Testing wizard](https://flow.microsoft.com/blog/new-updates-custom-api/), you can call each operation to verify its functionality and the response schema. +* In the designer for Microsoft Flow, you can visually build flows using your API connector. This method of testing gives you visibility into the user interface functionality and features of your connector. +* In the PowerApps Studio, you can call each operation using the formula bar, and bind the response to controls on your screen. + +This topic provides an overview; for more information, see [Register and use a custom connector](register-custom-api.md). + diff --git a/flow-docs/api-connector-faq.md b/flow-docs/api-connector-faq.md new file mode 100644 index 000000000..12332e64c --- /dev/null +++ b/flow-docs/api-connector-faq.md @@ -0,0 +1,56 @@ +--- +title: API connector FAQ | Microsoft Docs +description: Find answers to questions about requirements, triggers, and other areas. +services: '' +suite: flow +documentationcenter: na +author: asavaritayal +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 05/06/2017 +ms.author: astay + +--- +# API connector FAQ (Microsoft Flow) +## Requirements +**Q:** If I am not an ISV, can I still build a connector? + +**A:** To release a connector publicly, we require that you either own the underlying service or present explicit rights to use the API. + +**Q:** Can I build a connector without REST APIs? + +**A:** No. In order to build an API connector, you are required to support stable HTTP REST APIs for your service. + +**Q:** What are the supported authentication types? + +**A:** We support the following standards of authentication: + +* OAuth2.0 (includes Azure Active Directory) +* API Key +* Basic Authentication + +## Triggers +**Q:** Can I build triggers without webhooks? + +**A:** API connectors for Microsoft Flow and Logic Apps allow you to build webhook-based triggers only. If you have a request for other forms of implementation, please contact [condevhelp@microsoft.com](mailto:condevhelp@microsoft.com) along with more details about your API. + +## Miscellaneous +**Q:** My APIs use a dynamic host. How do I implement this in the OpenAPI? + +**A:** The API connector feature doesn't support dynamic hosts. Please use a static host for development and testing purposes. During submission, talk to your Microsoft contact regarding the dynamic implementation. + +**Q:** Do you support Postman Collection V2? + +**A:** No, Postman V2 is currently not supported. + +**Q:** Do you support OpenAPI 3.0? + +**A:** No, OpenAPI 2.0 is currently the only supported version. + diff --git a/flow-docs/api-connector-overview.md b/flow-docs/api-connector-overview.md new file mode 100644 index 000000000..bbee9c283 --- /dev/null +++ b/flow-docs/api-connector-overview.md @@ -0,0 +1,50 @@ +--- +title: API connector overview | Microsoft Docs +description: ISVs and SaaS service owners can build connectors and have them certified by Microsoft. +services: '' +suite: flow +documentationcenter: na +author: asavaritayal +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 05/06/2017 +ms.author: astay + +--- +# API connector overview (Microsoft Flow) +An **API connector** is an OpenAPI (Swagger) based wrapper around a REST API that allows the underlying service to talk to [Microsoft Flow](https://flow.microsoft.com), [PowerApps](https://powerapps.microsoft.com), and [Logic Apps](https://docs.microsoft.com/azure/logic-apps/). It provides a way for users to connect their accounts and leverage a set of pre-built **triggers** and **actions** to build their apps and workflows. + +As an **Independent software vendor (ISV)** or **SaaS service owner**, you can build connectors to enable a wide range of business and productivity scenarios for your users. A connector helps you to go beyond a definite set of integrations, and increase the reach, discoverability, and usage of your service. + +## Requirements +To build and submit a connector, your service must meet the following requirements: + +* Business user scenario that fits well with Microsoft Flow, PowerApps, and Logic Apps +* Publicly available service with stable REST APIs + +## Build your connector +The first step to building an API Connector is to build a fully functional custom connector. A custom connector operates exactly like an API connector, but it is limited in availability to its author and specific users within the author's tenant. + +The process to build a connector involves multiple steps: + +![API connector authoring steps](./media/api-connectors-overview/authoring-steps.png) + +[Learn more](api-connector-dev.md) about how to develop an API connector. + +## Submit for certification +After you've built a connector, you submit it for certification. As part of our third party certification process, Microsoft reviews the connector before publishing. + +This process validates the functionality of your connector in Microsoft Flow and PowerApps, and checks for technical and content compliance. + +[Learn more](api-connector-submission.md) about the process to submit your connector for certification and publishing. + +## Get support +For onboarding and development support, please email [condevhelp@microsoft.com](mailto:condevhelp@microsoft.com). This account is actively monitored and managed. Developer queries and incidents will quickly find their way to the appropriate team. + diff --git a/flow-docs/api-connector-submission.md b/flow-docs/api-connector-submission.md new file mode 100644 index 000000000..13144bf31 --- /dev/null +++ b/flow-docs/api-connector-submission.md @@ -0,0 +1,56 @@ +--- +title: Submit for certification as an API Connector | Microsoft Docs +description: By certifying a connector, it becomes available to all users of Microsoft Flow, PowerApps and Logic Apps. +services: '' +suite: flow +documentationcenter: na +author: asavaritayal +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 05/06/2017 +ms.author: astay + +--- +# Submit for certification as an API Connector (Microsoft Flow) +As part of our third party certification process, we review your connector before publishing. By certifying a connector, it becomes available to all users of Microsoft Flow, PowerApps, and Logic Apps. Following are the criteria and steps for certification. + +## Criteria +| Capability | Details | Required or Recommended | +| --- | --- | --- | +| Software as a Service (SaaS) app for business |Business user scenario that fits well with Microsoft Flow, PowerApps, and Logic Apps |Required | +| Authentication Type |Your API must support OAuth2, API key, or Basic authentication |Required | +| Support |You must provide a support contact where customers can find help |Required | +| Availability / Uptime |Your app should have an uptime of at least 99.9% |Recommended | + +## Submitting your connector +Certify your connector for Microsoft Flow, PowerApps, and Logic Apps in three simple steps: + +1. **Nomination** + + * [Submit a nomination](https://go.microsoft.com/fwlink/?linkid=848754) + * You will receive a mutual Non-Disclosure Agreement and Partner Agreement. The signed contracts are required in order to proceed. + * We'll check if your app meets the criteria. Once approved, we'll notify you along with instructions for onboarding. +2. **Review** + + Submit the following information to your nomination contact for review: + + * OpenAPI file that describes your API + * icon.png file (~160px logo inside a 230px square, white on a colored background is preferred) + * Brand color in hex (matching the colored background in the icon file) + * A test account for validation + * A support contact + + If additional information is required, we'll contact you with more details. +3. **Publishing** + + After we validate connector functionality and content, we will stage the connector for deployment across all products and regions. + + By default, all connectors are published as "premium". If your app is built on Azure, you can apply to have your connector listed as a “standard” connector available to all users of Office 365 Enterprise plans. Ask your nomination contact for more details. + diff --git a/flow-docs/apply-to-each.md b/flow-docs/apply-to-each.md new file mode 100644 index 000000000..bd7b597cf --- /dev/null +++ b/flow-docs/apply-to-each.md @@ -0,0 +1,171 @@ +--- +title: Use the apply to each action to loop through an array of items. | Microsoft Docs +description: Use Microsoft Flow to loop through an array of items to check multiple conditions and take actions based on those conditions. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 03/16/2017 +ms.author: deonhe + +--- +# Use the apply to each action in Microsoft Flow to process a list of items periodically +Many triggers can immediately start a flow based on an event such as when a new email arrives in your inbox. These triggers are great, but sometimes you want to run a flow that queries a data source on a predefined schedule, taking certain actions based on the properties of the items in the data source. To do this, your flow can be started on a schedule (such as once per day) and use a loop action such as **Apply to each** to process a list of items. For example, you could use **Apply to each** to update records from a database or list of items from Microsoft SharePoint. + +In this walk-through, we'll create a flow that runs every 15 minutes and does the following: + +1. Gets the last 10 unread messages in your Office 365 Outlook Inbox. +2. Checks each of the 10 messages to confirm if any has **meet now** in the subject. +3. Checks if the email is from your boss or was sent with high importance. +4. Sends a push notification and marks as read any email that has **meet now** in the subject and is either from your boss or was sent with high importance. + +This diagram shows the details of the flow we'll create in this walk-through: + +![overview of the flow being built](./media/apply-to-each/foreach-flow-visio.png) + +## Prerequisites +Here are the requirements for successfully performing the steps in this walk-through: + +* An account that's registered to use [Microsoft Flow](https://flow.microsoft.com). +* An Office 365 Outlook account. +* The Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows). +* Connections to Office 365 Outlook and the push notification service. + +## Create a flow +1. Sign into [Microsoft Flow](https://flow.microsoft.com): +2. Select the **My flows** tab, and then create a flow from a blank: + + ![create from blank](./media/apply-to-each/foreach-1.png) +3. Enter "schedule" into the search box to search for all services and triggers that are related to scheduling. +4. Select the **Schedule - Recurrence** trigger to indicate that your flow will run on a schedule that you'll provide next: + + ![schedule recurrence action](./media/apply-to-each/foreach-2.png) +5. Set the schedule to run every 15 minutes: + + ![schedule runs](./media/apply-to-each/foreach-3.png) +6. Select **+ New step**, **Add an action**, and then type **outlook** into the search box to search for all actions related to Microsoft Outlook. +7. Select the **Office 365 Outlook - Get emails** action: + + ![select get emails action](./media/apply-to-each/foreach-4.png) +8. This will open the **Get emails** card. Configure the **Get emails** card to select the top 10 unread emails from the Inbox folder. Don't include attachments because they won't be used in the flow: + + ![configure email card](./media/apply-to-each/foreach-5.png) + + > [!NOTE] + > So far, you've created a simple flow that gets some emails from your inbox. These emails will be returned in an array; the **Apply to each** action requires an array, so this is exactly what's needed. + > + > + +## Add actions and conditions +1. Select **+ New step**, **More**, and then **Add an apply to each** action: + + ![select apply to each](./media/apply-to-each/foreach-6.png) +2. Insert the **Body** token into the **Select an output from previous steps** box on the **Apply to each** card. This pulls in the body of the emails to be used in the **Apply to each** action: + + ![add body token](./media/apply-to-each/foreach-7.png) +3. Select **Add a condition**: + + ![add condition](./media/apply-to-each/foreach-8.png) +4. Configure the **Condition** card to search the subject of each email for the words "meet now": + + * Insert the **Subject** token into the **Object Name** box. + * Select **contains** in the **Relationship** list. + * Enter **meet now** into the **Value** box. + + ![configure condition](./media/apply-to-each/foreach-subject-condition.png) +5. Select **More**, and then select **Add a condition** from the **IF YES, DO NOTHING** branch. This opens the **Condition 2** card; configure that card like this: + + * Insert the **Importance** token into the **Object Name** box. + * Select **is equal to** in the **Relationship** list. + * Enter **High** into the **Value** box. + + ![add condition](./media/apply-to-each/foreach-importance-condition.png) +6. Select **Add an action** under the **IF YES, DO NOTHING** section. This will open the **Choose an action** card, where you'll define what should happen if the search condition (the **meet now** email was sent with high importance) is true: + + ![add action](./media/apply-to-each/foreach-9.png) +7. Search for **notification**, and then select the **Notifications - Send me a mobile notification** action: + + ![seach and select notification](./media/apply-to-each/foreach-10.png) +8. On the **Send me a mobile notification** card, provide the details for the push notification that will be sent if the subject of an email contains "meet now", and then select **Add an action**: + + ![configure notification](./media/apply-to-each/foreach-11.png) +9. Enter **read** as the search term, and then select the **Office 365 Outlook - Mark as read** action. This will mark each email as read after the push notification is sent: + + ![add mark as read action](./media/apply-to-each/foreach-12.png) +10. Add the **Message Id** token to the **Message Id** box of the **Mark as read** card. You may need to select **See more** to find the **Message Id** token. This indicates the Id of the message that will be marked as read: + + ![add message id](./media/apply-to-each/foreach-13.png) +11. Going back to the **Condition 2** card, on the **IF NO, DO NOTHING** branch: + + * Select **Add an action**, and then type **get manager** into the search box. + * Select the **Office 365 Users - Get manager** action from the search results list. + * Enter your *full* email address into the **User** box of the **Get Manager** card. + + ![add and configure get manager action](./media/apply-to-each/foreach-get-manager.png) +12. Select **More**, and then select **Add a condition** from the **IF NO** branch. This opens the **Condition 3** card; configure the card to check if the email sender's email address (the From token) is the same as your boss' email address (the Email token): + + * Insert the **From** token into the **Object Name** box. + * Select **contains** in the **Relationship** list. + * Enter **Email** token into the **Value** box. + + ![configure search condition](./media/apply-to-each/foreach-condition3-card.png) +13. Select **Add an action** under the **IF YES, DO NOTHING** section of the **Condition 3** card. This will open the **IF YES** card, where you'll define what should happen if the search condition (the email was sent from your boss) is true: + + ![configure condition](./media/apply-to-each/foreah-condition3-add-action.png) +14. Search for **notification**, and then select the **Notifications - Send me a mobile notification** action: + + ![search for notification action](./media/apply-to-each/foreach-10.png) +15. On the **Send me a mobile notification 2** card, provide the details for the push notification that will be sent if the email is from your boss, and then select **Add an action**: + + ![configure notification card](./media/apply-to-each/foreach-boss-notification.png) +16. Add the **Office 365 Outlook - Mark as read** action. This will mark each email as read after the push notification is sent: + + ![add mark as read action](./media/apply-to-each/foreach-12.png) +17. Add the **Message Id** token to the **Mark as read 2** card. You may need to select **See more** to find the **Message Id** token. This indicates the Id of the message that will be marked as read: + + ![configure mark as read action](./media/apply-to-each/foreach-mark-as-read2.png) +18. Name your flow, and then create it: + + ![give your flow a name and save it](./media/apply-to-each/foreach-14.png) + +If you followed along, your flow should look similar to this diagram: + +![overview of the flow created](./media/apply-to-each/foreach-flow-finished.png) + +## Run the flow +1. Send yourself a high-importance email that includes **meet now** in the subject (or have someone in your organization send you such an email). +2. Confirm the email is in your inbox and it's unread. +3. Sign into Microsoft Flow, select **My flows**, and then select **Run now**: + + ![run now](./media/apply-to-each/foreach-run-1.png) +4. Select **Run flow** to confirm you really want to run the flow: + + ![confirm run](./media/apply-to-each/foreach-run-2.png) +5. After a few moments you should see the results of the successful run: + + ![run results](./media/apply-to-each/foreach-run-3.png) + +## View results of the run +Now that you've run the flow successfully, you should receive the push notification on your mobile device. + +1. Open the Microsoft Flow app on your mobile device, and then select the **Activity** tab. You'll see the push notification about the meeting: + + ![select the activity tab](./media/apply-to-each/foreach-notification-1.png) +2. To see the full contents of the notification, you may have to select the notification. You'll see the full notification, similar to this: + + ![notification details](./media/apply-to-each/foreach-notification-2.png) + + > [!NOTE] + > If you don't receive the push notification, confirm that your mobile device has a working data connection. + > + > + diff --git a/flow-docs/billing-questions.md b/flow-docs/billing-questions.md new file mode 100644 index 000000000..8d3423c92 --- /dev/null +++ b/flow-docs/billing-questions.md @@ -0,0 +1,76 @@ +--- +title: Billing and metering questions | Microsoft Docs +description: Answers to frequently asked questions regarding billing and metering in Microsoft Flow +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: aftowen +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 10/21/2016 +ms.author: deonhe + +--- +# Billing and metering questions +This article answers frequently asked questions regarding billing and metering in Microsoft Flow. + +## Where can I find out what pricing plans are available? +See the [pricing page](https://flow.microsoft.com/pricing/). + +## Where can I find out what my plan is? +See the [pricing page](https://flow.microsoft.com/pricing/). + +## How do I switch plans? +In the top navigation menu, click or tap **Learn**, and then click or tap **Pricing**. + +![Learn > Pricing](./media/billing-questions/learn-pricing.png) + +## How do I know how much I've used? +Click or tap **Activity** to show logs of your runs, along with notifications and failures. + +![Activity link](./media/billing-questions/activity-link.png) + +If you're on a free plan or a trial plan, click or tap the gear icon in the top navigation bar to show your current usage against your plan. + +![Settings button](./media/billing-questions/settings.png) + +If you're not on a free plan or a trial plan, runs are pooled across all users in your organization. We're working on features to expose available quota and usage across an organization. + +## What happens if my usage exceeds the limits? +Microsoft Flow may start to throttle runs. + +## Where can I find more information regarding the usage limits? +On the [pricing page](https://flow.microsoft.com/pricing/), see the **FAQ** section. + +## What happens if I try to execute runs too frequently? +Your plan determines how often your flows run. For example, your flows may run every 15 minutes if you're on the free plan. If a flow is triggered less than 15 minutes after it ran most recently, it's queued until the 15 minutes have elapsed. Checks for new data don't count as runs. + +## What counts as a run? +Whenever a flow is triggered, whether by an automatic trigger or by manually starting it, this is considered a run. + +## Are there differences between Microsoft Accounts and work or school accounts for billing? +Yes. If you sign in with a Microsoft Account (such as an account that ends in @outlook.com or @gmail.com), you can use only the free plan. To take advantage of the features of the paid plan, sign in with a work or school email ID. + +## I'm trying to upgrade, but I'm told my account isn't eligible. +To upgrade, use a work or school account, or create an Office 365 trial by following the instructions in this [Power BI article](https://powerbi.microsoft.com/documentation/powerbi-admin-signing-up-for-power-bi-with-a-new-office-365-trial/). + +## Why did I run out of runs when my flow only ran a few times? +Certain flows may run more frequently than you expect. For example, you might create a flow that sends you a push notification whenever your manager sends you an email. That flow must run every time you get an email (from anyone) because the flow must check whether the email came from your manager. This action counts as a run. + +You can work around this issue by putting all the filtering you need into the trigger. In the example above, expand the **Advanced Options** menu, and specify your manager's email address in the **From** field. + +## Other limits and caveats +* Each account may have as many as: + * 50 flows + * 15 Custom Connectors + * 20 connections per API and 100 connections total. +* You can install a gateway only in the default environment. +* Certain external connectors, such as Twitter, implement connection throttling to control quality of service. When throttling is in effect, your flows will fail. You can review details of this throttling by viewing the run that failed in the flow's run history. + diff --git a/flow-docs/breadcrumb/toc.yml b/flow-docs/breadcrumb/toc.yml new file mode 100644 index 000000000..1b67ed0f4 --- /dev/null +++ b/flow-docs/breadcrumb/toc.yml @@ -0,0 +1,7 @@ +- name: Docs + href: / + homepage: / + items: + - name: Flow + tocHref: /flow/ + topicHref: /flow/index \ No newline at end of file diff --git a/flow-docs/bttn-button-flows.md b/flow-docs/bttn-button-flows.md new file mode 100644 index 000000000..4bc17f860 --- /dev/null +++ b/flow-docs/bttn-button-flows.md @@ -0,0 +1,120 @@ +--- +title: Start flows with bttns | Microsoft Docs +description: Learn how to start your flows with a bttn +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 05/30/2017 +ms.author: deonhe + +--- +# Run your flows with physical buttons (bttns) from The Button Corporation (Preview) +Trigger your flows by pressing a bttn (a physical button made by [The Button Corporation](https://my.bt.tn/)). For example, you can press a bttn that triggers a flow to perform these tasks: + +* contacts your helpdesk with location information +* sends an email to your team +* blocks your calendar +* reorders supplies + +> [!IMPORTANT] +> You must [register](https://my.bt.tn/) your bttn before you can use it in a flow. +> +> [!TIP] +> Configure all bttn properties such as name, location, and email address on the [bttn website](https://my.bt.tn/) before you create your flow. +> +> + +You can also trigger a flow by using a [Flic physical button](flic-button-flows.md). + +## Prerequisites +* Access to [Microsoft Flow](https://flow.microsoft.com). +* At least one [registered bttn](https://my.bt.tn/). + +## Create a flow that's triggered from a bttn +In this walkthrough, we use a helpdesk template to create a flow that you can trigger with a single press of a [bttn](https://my.bt.tn/). When the flow runs, it generates a support request and then sends it to the helpdesk. The support request provides the helpdesk with the location of the room where help is needed. This walkthrough demonstrates how to create this flow from a template, but you can use the blank template, which gives you full control over all aspects of your flow. + +You can use any of these templates to quickly create flows for your bttn and connect to Zendesk, Google, and SharePoint, among others: + +![bttn templates](./media/bttn-button-flows/bttn-templates.png) + +Tip: For the purposes of this walkthrough, give your bttn a name that represents a conference room in a typical office building. + +The settings for your bttn should resemble this example (from the bttn website): + +![bttn templates](./media/bttn-button-flows/bttn-config.png) + +Now that you've registered and configured your bttn, let's get started creating our flow. + +### Sign in and select a template +1. Sign into [Microsoft Flow](https://flow.microsoft.com). + + ![sign in](./media/bttn-button-flows/sign-into-flow.png) + + Note: As an alternative, you can create flows in the Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows). +2. Enter **bttn** into the search box, and then select the search icon. + + ![search](./media/bttn-button-flows/bttn-search-template.png) + + After you select the search icon, all templates that you can use with bttns appear. +3. Select the **Use Bttn to call technical support for meeting room** template. + + ![support template](./media/bttn-button-flows/bttn-select-template.png) + +### Authorize Microsoft Flow to connect to your bttn +1. If prompted, sign into the bttn and the Office 365 Outlook services, which will enable the **Continue** button. + + ![credentials](./media/bttn-button-flows/bttn-provide-credentials.png) +2. When you sign into the bttn service, authorize Microsoft Flow to use your bttns. + + **Important**: If you don't authorize Microsoft Flow to use your bttns, you can't see or connect to them from Microsoft Flow. + + ![authorize](./media/bttn-button-flows/authorize-bttn.png) +3. After you sign into both services, select **Continue**. + + ![Continue](./media/bttn-button-flows/continue.png) + +### Select the bttn that triggers the flow +1. In the **When a bttn is pressed** card, open the list of bttn IDs, and then select the bttn that you want to use. + + ![select bttn](./media/bttn-button-flows/bttn-id.png) + + Your flow should now resemble this example. + + ![overview of flow](./media/bttn-button-flows/bttn-done.png) +2. Give your flow a name, and then select **Create flow** to save it. + + ![save flow](./media/bttn-button-flows/save.png) + +## Test your flow and confirm results +1. Press the button on your bttn. +2. View your flow's run history to confirm that it ran successfully. + + You can check run history on the Microsoft Flow website or on your mobile device. + + Note: The run status is set to **running** until someone selects **Acknowledge** in the support-request email. +3. You can also confirm that the email was sent to the support team. + + If you've followed along, the support email looks similar to this example: + + ![](./media/bttn-button-flows/support-request-email.png) + +## Troubleshooting +* If your flow wasn't triggered, sign into The Button Corporation's site and confirm whether the button activity (presses) are being recorded. +* You can also drill into the run activity on the Microsoft Flow site and check for error messages. + +## More information +* [Share button flows](share-buttons.md). +* Learn to use [button trigger tokens](introduction-to-button-trigger-tokens.md) to send current data when your button flows run. +* [Install the Microsoft Flow app for Android](https://aka.ms/flowmobiledocsandroid). +* [Install the Microsoft Flow app for iOS](https://aka.ms/flowmobiledocsios). + diff --git a/flow-docs/button-flow-with-user-input-tokens.md b/flow-docs/button-flow-with-user-input-tokens.md new file mode 100644 index 000000000..ce213f6b2 --- /dev/null +++ b/flow-docs/button-flow-with-user-input-tokens.md @@ -0,0 +1,120 @@ +--- +title: Learn how to automate repetitive tasks with button flows that take user input | Microsoft Docs +description: Microsoft Flow makes it easy automate repetitive tasks. Your flows can even take user input when running a repetitive task. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 02/15/2017 +ms.author: deonhe + +--- +# Introducing button flows with user input +Create a button flow to run routine tasks by simply tapping a button. Customize your flow by allowing the user to provide specific details that will be used when the flow runs. This topic walks you through creating a button flow that takes input from the user and then running the button flow, highlighting how to provide the user input. + +You can create a button flow in the Microsoft Flow website or the mobile app for Microsoft Flow. For this topic, you'll use the website. + +### Prerequisites +* An account on the Microsoft Flow website. + +## Open the template +1. Sign in to the [Microsoft Flow website](https://flow.microsoft.com), enter **Visual Studio** in the search box, and then click or tap the search icon to find all templates that relate to Visual Studio: + + ![](./media/button-flow-with-user-input-tokens/1.png) +2. Select the **Open a Priority 2 Bug in Visual Studio** template: + + ![](./media/button-flow-with-user-input-tokens/2.png) +3. Select **Use this template** button: + + ![](./media/button-flow-with-user-input-tokens/3.png) + + This template uses the Visual Studio Team Services (VSTS) and the Push notification services. You'll need to sign into these services if you don't have a connection to either of them. The **Sign in** button will appear only if you need to sign into a service. +4. After you sign into all required services, select the **Continue** button: + + ![](./media/button-flow-with-user-input-tokens/4.png) +5. (optional) Change the name of the flow by typing a name of your choice into the box at the top of the portal: + + ![](./media/button-flow-with-user-input-tokens/5.png) + +## Customize the user input +1. In the trigger card, select **Edit**: + + ![](./media/button-flow-with-user-input-tokens/6.png) +2. Select the **+** icon to expand the page so that you can add custom input fields: + + ![](./media/button-flow-with-user-input-tokens/7.png) +3. Enter the **Input title** and **Input description** for each custom field that you want to make available when someone runs your flow. + + In this example, you'll create two custom input fields (**Bug repro steps** and **Bug severity**) so that anyone who uses this flow can enter the steps to reproduce the bug and rate the bug's severity: + + ![](./media/button-flow-with-user-input-tokens/8.png) + +## Customize the bug +1. Tap the **Create a new work item** card's title bar: + + ![](./media/button-flow-with-user-input-tokens/9.png) +2. Make the selections that are appropriate for your VSTS environment, and then select **Edit**: + + For example, connect to myinstance.visualstudio.com by typing **myinstance**. + + ![](./media/button-flow-with-user-input-tokens/10.png) +3. Select **Show advanced options** to reveal the other fields for this card: + + ![](./media/button-flow-with-user-input-tokens/11.png) +4. Place the cursor before the **Bug title** token, and then enter "Severity: " into the **Title** text field. +5. With the cursor still in the title text field, select the **Bug severity** token, and then enter " -- ". +6. In the **Description** text field, place your cursor just after the **Bug description** token, and then press Enter to start a new line. +7. Place your cursor on the new line, and then select the **Bug Repro steps** token: + + ![](./media/button-flow-with-user-input-tokens/12.png) + +## Customize the push notification +1. Tap the title bar on the **Send a push notification** card to expand it. +2. In the list of dynamic content tokens, select **See more**, and then add the **URL** token in the **Link** text field. +3. In the **Link label** text field, add the **Id** token: + + ![](./media/button-flow-with-user-input-tokens/13.png) +4. Tap **Create flow** on the menu to create your flow: + ![](./media/button-flow-with-user-input-tokens/14.png) + +## Run your flow +In this walk-through, you'll use the mobile app for Microsoft Flow to run the button flow you just created. You'll provide all the user input that's needed to create a bug with a title, a description, repro steps, and a severity level. + +1. In the mobile app for Microsoft Flow, tap the **Buttons** tab, and then tap the **Create bug report with steps** button. + + ![](./media/button-flow-with-user-input-tokens/runmt1.png) +2. Enter the title for the bug you are reporting, and then tap **Next**. For example: + + ![](./media/button-flow-with-user-input-tokens/runmt2.png) +3. Enter the description of the bug you are reporting, and then tap **Next**. For example: + + ![](./media/button-flow-with-user-input-tokens/runmt3.png) +4. Enter the steps to reproduce the bug you are reporting, and then tap **Next**. For example: + + ![](./media/button-flow-with-user-input-tokens/runmt3-1.png) +5. Enter the severity of the bug you are reporting, and then tap **Done**: + ![](./media/button-flow-with-user-input-tokens/runmt3-2.png) + + The flow runs. +6. (optional) Tap the **Activity** tab to show the results. + + ![](./media/button-flow-with-user-input-tokens/runmt5.png) +7. (optional) Show the detailed results of the flow's run by tapping the **Create a new work item** step. + + ![](./media/button-flow-with-user-input-tokens/runmt6.png) + +## Next steps +* [Share button flows](share-buttons.md) +* [Learn about flows](guided-learning/learning-introducing-flow.md) +* [Learn about button flows](introduction-to-button-flows.md) +* [Learn about button flows with trigger tokens](introduction-to-button-trigger-tokens.md) + diff --git a/flow-docs/common-data-model-approve.md b/flow-docs/common-data-model-approve.md new file mode 100644 index 000000000..7590aec05 --- /dev/null +++ b/flow-docs/common-data-model-approve.md @@ -0,0 +1,323 @@ +--- +title: Build an approval loop with the Common Data Service | Microsoft Docs +description: Create an entity, a flow, and an app that work together so that reviewers can approve or reject files added to Dropbox. +services: '' +suite: flow +documentationcenter: na +author: stepsic-microsoft-com +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 10/22/2016 +ms.author: stepsic + +--- +# Build an approval loop by using Microsoft Flow and the Microsoft Common Data Service +The Common Data Service can give you a way to build flows that have information stored in a database independent of a flow. The best example of this is with approvals. If you store the status of the approval in an entity, your flow can work on top of it. + +In this example, you'll create an approval process that starts when a user adds a file to Dropbox. When the file is added, information about it appears in an app, where a reviewer can approve or reject the change. When the reviewer approves or rejects the change, notification mail is sent, and rejected files are deleted from Dropbox. + +By following the steps in this section, you'll build: + +* a **custom entity** that will contain information about each file added to Dropbox and whether the file's status is approved, rejected, or pending. +* a **flow** that adds information to the custom entity when a file is added to Dropbox, sends mail when the file is approved or rejected, and deletes rejected files. These steps demonstrate how to build such a flow from scratch, but you can create a similar flow from a template. +* an **app** in which a reviewer can approve or reject files added to Dropbox. You'll use PowerApps to generate this app automatically based on the fields in the custom entity. + +**Prerequisites** + +* Sign up for [Microsoft Flow](sign-up-sign-in.md) and [PowerApps](https://powerapps.microsoft.com/en-us/tutorials/signup-for-powerapps/). +* Create connections to Dropbox and Office 365 Outlook, as [Manage your connections](https://powerapps.microsoft.com/tutorials/add-manage-connections/) describes. + +## Build the entity +1. Sign in to [powerapps.com](https://web.powerapps.com). +2. If the left navigation bar doesn't appear by default, click or tap the icon with three horizontal lines in the upper-left corner. + + ![Open left navigation bar](./media/common-data-model-approve/hamburger-icon.png) +3. In the left navigation bar, click or tap **Manage**, and then click or tap **Entities**. + + ![Manage entities](./media/common-data-model-approve/manage-entities.png) +4. If prompted, click or tap **Create my database**. + + ![Create database](./media/common-data-model-approve/create-database.png) +5. Near the upper-right corner, click or tap **New entity**. + + ![Create entity](./media/common-data-model-approve/new-entity.png) + + If your browser window isn't maximized, this button might appear in a different place. +6. Under **Entity name**, specify a name that doesn't contain spaces and that no other entity in your database has. + + To follow this example exactly, specify **ReviewDropboxFiles**. + + ![Specify entity name](./media/common-data-model-approve/entity-name.png) +7. Under **Display name**, specify a friendly name. + + ![Specify display name](./media/common-data-model-approve/display-name.png) +8. Click or tap **Next**. + + ![Next button](./media/common-data-model-approve/next-button.png) + +## Add fields to the entity +1. Near the upper-right corner, click or tap **Add field**. + + ![Add field](./media/common-data-model-approve/add-field.png) +2. In the blank row that appears at the bottom of the list of fields, set the properties of an **Approver** field. (As you set these properties, you can switch to the next column by pressing Tab.) + + * In the **Display Name** column, type **Approver**. + * In the **Name** column, type **ApproverEmail**. + * In the **Type** column, click or tap the **Email** option. + * In the **Required** column, select the checkbox. + + ![Approver field](./media/common-data-model-approve/approver-field.png) +3. In the next row, set the properties of a **Status** field: + + * In the **Display Name** column, type **Status**. + * In the **Name** column, type **Status**. + * In the **Type** column, click or tap the **Text** option. + * In the **Properties** column, leave the default value. + * In the **Required** column, select the checkbox. + + ![Status field](./media/common-data-model-approve/status-field.png) +4. In the next row, set the properties of a **FileID** field: + + * In the **Display Name** column, type **File identifier**. + * In the **Name** column, type **FileID**. + * In the **Type** column, click or tap the **Text** option. + * In the **Properties** column, leave the default value. + * In the **Unique** column, select the checkbox. + * In the **Required** column, select the checkbox. + + ![FileID field](./media/common-data-model-approve/fileid-field.png) +5. Near the right edge, click or tap the ellipsis (...) for the **FileID** field, and then click or tap **Set as Title field**. + + ![Set title field](./media/common-data-model-approve/set-title-field.png) +6. Near the lower-left corner, click or tap **Create**. + + ![Create an entity](./media/common-data-model-approve/create-button.png) +7. (optional) When the list of entities reappears, maximize your browser window if it isn't already maximized, and then click or tap the **Type** column header. The list is sorted with the custom entities, such as the one you just created, appearing at the top. + +## Sign in and create a flow +1. Open the [Microsoft Flow portal](https://flow.microsoft.com). +2. Maximize your browser window if it isn't already maximized, and then click or tap **Sign in** near the upper-right corner. + + ![Sign-in button for Microsoft Flow](./media/common-data-model-approve/signin-flow.png) +3. In the top right menu you select the environment that you created the database in powerapps.com. + + **Note**: if you do not select the same environment then you will not see your entity. +4. Near the upper-left corner, click or tap **My flows**. + + ![My flows button](./media/common-data-model-approve/myflows-button.png) +5. Near the upper-right corner, click or tap **Create new flow**. + + ![Create new flow button](./media/common-data-model-approve/create-flow.png) + +## Start when a file is added +1. In the box that contains **Search for more triggers**, type or paste **Dropbox**, and then click or tap **Dropbox - when a file is created**. + + ![Create trigger](./media/common-data-model-approve/create-trigger.png) +2. Under **Folder**, click or tap the folder icon, and then browse to the folder where files will be added. + + ![Choose folder](./media/common-data-model-approve/folder-icon.png) + +## Add data to the entity +1. Click or tap **New step**, and then click or tap **Add an action**. + + ![Add an action](./media/common-data-model-approve/add-action.png) +2. In the box that contains **Search for more actions**, type or paste **Common Data Service**, and then click or tap **Common Data Service - Create object**. + + ![Create an object in the Common Data Service](./media/common-data-model-approve/cdm-create-object.png) +3. Under **The entity**, type or paste **Review**, and then click or tap **Review Dropbox files**. + + ![Choose the entity](./media/common-data-model-approve/choose-entity-flow.png) +4. Under **Title**, click or tap in the box, and then click or tap **File name** in the list of parameter tokens to add that token to the field. + + ![Add File name token](./media/common-data-model-approve/add-filename-token.png) +5. Under **Approver**, type or paste the email address of the person who will review the files. + + **Note**: To make testing the flow easier, specify your own address. You can change it later, when the flow is ready for actual use. + + ![Add approver](./media/common-data-model-approve/add-approver.png) +6. Under **Status**, type or paste **Pending**. + + ![Add default status](./media/common-data-model-approve/add-default-status.png) +7. Under **File Identifier**, click or tap in the box, and then click or tap **File identifier** in the list of parameter tokens to add that token to the field. + + ![Add File identifier token](./media/common-data-model-approve/add-file-identifier.png) + +## Check whether the file has been reviewed +1. Under the **Create object** action, click or tap **New step**, click or tap **More**, and then click or tap **Add a do until**. + + ![Add do until](./media/common-data-model-approve/add-do-until.png) +2. In the upper-left corner of the **Do until** action, click or tap in the box that contains **Choose a value**. + + ![Choose a value](./media/common-data-model-approve/choose-value.png) + + **Note**: If your browser window isn't maximized, click or tap in the upper box that contains **Choose a value**. +3. Under **Outputs from Create object**, click or tap **Status** to add that parameter token to the field. + + ![Add Status token](./media/common-data-model-approve/add-status.png) +4. Open the list near the center of the **Do until** action, and then click or tap **is not equal to**. + + ![Specify is not equal to](./media/common-data-model-approve/is-not-equal.png) +5. In the upper-right corner of the **Do until** action, type or paste **Pending** in the box that contains **Choose a value**. + + ![Specify status to watch](./media/common-data-model-approve/do-until-not-pending.png) + + **Note**: If your browser window isn't maximized, click or tap in the lower box that contains **Choose a value**. +6. Near the bottom of the **Do until** action, click or tap **Add an action**. + + ![Add action inside a do until](./media/common-data-model-approve/add-action-in-dountil.png) +7. In the box that contains **Search for more actions**, type **Common**, and then click or tap **Common Data Service - Get object**. + + ![Get an object](./media/common-data-model-approve/get-object.png) +8. Under **The namespace**, click or tap your database. +9. Under **The entity**, type or paste **Review**, and then click or tap **Review Dropbox files**. + + ![Choose entity](./media/common-data-model-approve/choose-entity-flow.png) +10. Under **Object id**, click or tap in the box, and then click or tap the **File identifier** parameter token to add it to the field. + + ![Add object identifier](./media/common-data-model-approve/add-object-id.png) + +## Check whether the item has been approved +1. Under the **Do-Until** action, click or tap **New step**, and then click or tap **Add a condition**. + + ![Add condition](./media/common-data-model-approve/add-condition.png) +2. In the upper-left corner of the condition, click or tap in the box that contains **Choose a value**. + + ![Upper left corner of condition](./media/common-data-model-approve/condition-upper-left.png) + + **Note**: If your browser window isn't maximized, click or tap in the upper box that contains **Choose a value**. +3. Under **Outputs from Get object**, click or tap the **Status** parameter token to add it to the field. + + ![Add status to condition](./media/common-data-model-approve/add-status-to-condition.png) +4. In the upper-right corner of the condition, type or paste **Approved** in the box that contains **Choose a value**. + + ![Verify whether the status is set to approved](./media/common-data-model-approve/status-equals-approved.png) + + **Note**: If your browser window isn't maximized, type or paste **Approved** in the lower box that contains **Choose a value**. + +## Send notification mail +1. Under **If yes, do nothing**, click or tap **Add an action**. + + ![If yes, add an action](./media/common-data-model-approve/if-yes-action.png) +2. In the box that contains **Search for more actions**, type or paste **send mail**, and then click or tap **Office 365 Outlook - Send an email**. + + ![If yes, send mail](./media/common-data-model-approve/if-yes-send-mail.png) +3. Under **To**, type or paste the address of the person whom you want to notify when an item is accepted. + + **Note**: To make testing the flow easier, specify your own address. You can change it when the flow is ready for actual use. + + ![Approval recipient](./media/common-data-model-approve/approval-recipient.png) +4. Under **Subject**, click or tap in the box, and then click or tap the **File name** parameter token to add it to the field. + + ![Specify the file name as the email subject](./media/common-data-model-approve/subject-is-file-name.png) +5. Under **Body**, type or paste **The item has been approved.** + + ![Body of approval mail](./media/common-data-model-approve/approval-body.png) +6. Under **If no, do nothing**, repeat steps 1-5 in this procedure except specify the body of the email message as **The item has been rejected.** + + ![Body of rejection mail](./media/common-data-model-approve/rejection-body.png) + +## Delete rejected files +1. Under the fields for the rejection mail, click or tap **Add an action**. + + ![Add delete action](./media/common-data-model-approve/add-delete-action.png) +2. In the box that contains **Search for more actions**, type or paste **Dropbox**, and then click or tap **Dropbox - Delete file**. + + ![Delete file from Dropbox](./media/common-data-model-approve/dropbox-delete-file.png) +3. Under **File**, click or tap in the box, and then click or tap the **File identifier** token parameter to add it to the field. + + ![Identify file to delete](./media/common-data-model-approve/identify-file-delete.png) + +## Save the flow +1. At the top of the screen, type or paste a name for the flow that you're creating, and then click or tap **Create Flow**. + + ![Save flow](./media/common-data-model-approve/save-flow.png) +2. Click or tap **Close** and then click or tap **Done**. +3. In Dropbox, add at least two files to the folder that you specified: one to test approval and one to test rejection. + +## Build the app +1. Sign in to [powerapps.com](https://web.powerapps.com), and then click or tap **New app** near the bottom of the left navigation bar. + + ![Create an app in a browser](./media/common-data-model-approve/new-app-button.png) +2. In the dialog box that appears, click or tap the option to open either PowerApps Studio for Windows or PowerApps Studio for the web. +3. If you opened PowerApps Studio for Windows, click or tap **New** in the left navigation bar. +4. Under **Create an app from your data**, click or tap **Phone layout** in the **Common Data Service** tile. + + ![Create app](./media/common-data-model-approve/afd-cdm.png) +5. In the **Search** box, type or paste **Review**. + + ![Search for an entity](./media/common-data-model-approve/search-entities.png) +6. Under **Choose an entity**, click or tap **Review Dropbox Files**. + + ![Choose an entity](./media/common-data-model-approve/choose-entity.png) +7. Near the lower-right corner, click or tap **Connect**. + + ![Connect button](./media/common-data-model-approve/connect-button.png) +8. If the opening screen of intro tour appears, take the tour to get familiar with PowerApps (or click or tap **Skip**). + + ![Intro tour](./media/common-data-model-approve/quick-tour.png) + + You can always take the tour later by clicking or tapping the question-mark icon near the upper-left corner and then clicking or tapping **Take the intro tour**. +9. (optional) Near the bottom of the screen, drag the slider to increase the zoom so the app is easier to see. + + ![Zoom control](./media/common-data-model-approve/zoom-control.png) + +## Customize the app +1. In the right navigation bar, click or tap the layout that includes a header and a description. + + ![Connect button](./media/common-data-model-approve/choose-layout.png) +2. On the **BrowseScreen**, click or tap just under the search bar to select the larger text-box control. + + ![Select header](./media/common-data-model-approve/select-header.png) +3. In the right-hand pane, open the lower list by clicking or tapping its down arrow. + + ![Open dropdown](./media/common-data-model-approve/open-dropdown.png) +4. In the lower list, click or tap **Title** so show the file name of the added files. + + ![Set heading data](./media/common-data-model-approve/set-heading.png) +5. In the right-hand pane, open the upper list, and then click or tap **Status** to show the status of each file. + + ![Set body data](./media/common-data-model-approve/set-body.png) + +## Test the overall solution +1. In PowerApps, open Preview mode by clicking or tapping the play button near the upper-left corner. + + ![Open Preview mode](./media/common-data-model-approve/open-preview.png) +2. For the first file in the list, click or tap the arrow to show details about that file. + + ![Open Details screen](./media/common-data-model-approve/open-details.png) +3. In the upper-right corner, click or tap the pencil icon to change details about the file. + + ![Open Edit screen](./media/common-data-model-approve/edit-record.png) +4. In the **Status** box, type or paste **Approved**. + + ![Approve a file](./media/common-data-model-approve/change-status.png) +5. In the upper-right corner, click or tap the checkmark icon to save your changes and return to the details screen. + + ![Save changes](./media/common-data-model-approve/save-record.png) + + In a few minutes, you'll receive email stating that the file was approved. +6. In the upper-right corner, click or tap the back button to return to the browse screen. + + ![Return to browse screen](./media/common-data-model-approve/back-arrow.png) +7. For the other file in the list, click or tap the arrow to show details about that file. + + ![Open Details screen](./media/common-data-model-approve/open-details.png) +8. In the upper-right corner, click or tap the pencil icon to change details about the file. + + ![Open Edit screen](./media/common-data-model-approve/edit-record.png) +9. In the **Status** box, type or paste **Rejected** (or anything except **Approved**, including **Aproved** or **Approoved**). + + ![Reject file](./media/common-data-model-approve/reject-file.png) +10. In the upper-right corner, click or tap the checkmark icon to save your changes and return to the details screen. + + ![Save changes](./media/common-data-model-approve/save-record.png) + + In a few minutes, you'll receive email stating that the file was rejected, and the file will be deleted from Dropbox. + diff --git a/flow-docs/common-data-model-intro.md b/flow-docs/common-data-model-intro.md new file mode 100644 index 000000000..1f84baca2 --- /dev/null +++ b/flow-docs/common-data-model-intro.md @@ -0,0 +1,91 @@ +--- +title: Common Data Service | Microsoft Docs +description: Create a flow to import data, export data, or build approvals with the Common Data Service. +services: '' +suite: flow +documentationcenter: na +author: stepsic-microsoft-com +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 10/22/2016 +ms.author: stepsic + +--- +# Create a flow that uses the Common Data Service +Improve operational efficiency with a unified view of business data by creating flow that uses the [Common Data Service](https://powerapps.microsoft.com/tutorials/data-platform-intro/). Deploy this secure business database that comprises well-formed standard business entities (such as Sales, Purchase, Customer Service, and Productivity) in your organization. Store organizational data in one or more [custom entities](https://powerapps.microsoft.com/tutorials/data-platform-create-entity/), which offer several benefits over external data sources such as Microsoft Excel and Salesforce. + +For example, leverage the Common Data Service within Microsoft Flow in these key ways: + +* Create a flow to import data, export data, or take action on top of data (such as sending a notification). Note that this approach isn't a full synchronization service; it simply allows you to move data in or out on a per-entity basis. + + For detailed steps, see the procedures later in this topic. +* Instead of [creating an approval loop through email](wait-for-approvals.md), create a flow that stores approval state in an entity, and build a custom app in which users can approve or reject items. + + For detailed steps, see [Build an approval loop with the Common Data Service](common-data-model-approve.md). + +**Prerequisites** + +* Sign up for [Microsoft Flow](https://flow.microsoft.com) and [PowerApps](https://web.powerapps.com). + + If you have trouble, verify whether [Microsoft Flow](sign-up-sign-in.md) and [PowerApps](https://powerapps.microsoft.com/en-us/tutorials/signup-for-powerapps/) supports the type of account that you have and your organization hasn't blocked signup. +* If you haven't used the Common Data Service before, open the **Entities** tab of [powerapps.com](https://web.powerapps.com/#/entities), and then click or tap **Create my database**. + +## Sign in to your Environment +1. Open the [Microsoft Flow portal](https://flow.microsoft.com), and then click or tap **Sign in** in the upper-right corner. + + **Note**: you might need to open the top-left menu to show the **Sign in** button. + + ![Sign in](./media/common-data-model-intro/signin-flow.png) +2. In the top right menu you select the environment that you created the database in powerapps.com. + + **Note**: if you do not select the same environment then you will not see your entities. + + ![Select environment](./media/common-data-model-intro/select-environment.png) + +## Open a template +1. In the **Search templates** box at the top of the screen, type or paste **common**, and then press Enter. + + ![Search for templates](./media/common-data-model-intro/template-search.png) +2. In the list of templates, click or tap the template that imports data from the source you want into the entity (or *object*) that you want. + + For example, click or tap the template that copies contact information from Dynamics 365 into the Common Data Service. + + ![Choose a template](./media/common-data-model-intro/choose-template.png) +3. Click or tap **Use this template**. + + ![Use template](./media/common-data-model-intro/use-template.png) +4. If you haven't already created a connection from Microsoft Flow to Dynamics 365, click or tap **Sign in**, and then provide your credentials if prompted. + + ![Sign in to Dynamics 365](./media/common-data-model-intro/dynamics-signin.png) +5. Click or tap **Continue**. + + ![Confirm accounts](./media/common-data-model-intro/confirm-accounts.png) + +## Build your flow +1. In the first card, specify the event that will trigger the flow. + + For example, you're building a flow that will copy new contacts from an instance of Dynamics 365 to the Common Data Service. Under **When a record is created**, specify the instance by clicking or tapping the down arrow and then clicking or tapping an option in the list that appears. + + ![Specify instance of Dynamics 365](./media/common-data-model-intro/specify-instance.png) +2. (optional) Near the top of the screen, specify a different name for the flow that you're creating. + + **Note**: If your browser window isn't maximized, the UI might look slightly different. + + ![Name flow](./media/common-data-model-intro/name-flow.png) +3. Click or tap **Create flow**. + + **Note**: If your browser window isn't maximized, only the checkmark may appear. + + ![Create flow](./media/common-data-model-intro/create-flow.png) + +Now, whenever that object is created in the source system, it will be imported into the Common Data Service. If you can't find a template that does what you need, you can [build a flow from scratch](get-started-logic-flow.md) that operates on top of the Common Data Service. + +You can take actions on changes in the database. For example, you can send notification mail whenever data changes. + diff --git a/flow-docs/connection-dynamics365.md b/flow-docs/connection-dynamics365.md new file mode 100644 index 000000000..523aa3812 --- /dev/null +++ b/flow-docs/connection-dynamics365.md @@ -0,0 +1,150 @@ +--- +title: Create a flow with Dynamics 365 (online) | Microsoft Docs +description: Create useful workflows by using a Dynamics 365 connection and Microsoft Flow +services: '' +suite: flow +documentationcenter: na +author: Mattp123 +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 02/06/2017 +ms.author: matp + +--- +# Create a flow by using Dynamics 365 (online) +By using a Dynamics 365 connector, you can create flows that initiate when an event occurs in Dynamics 365, or some other service, which then performs an action in Dynamics 365, or some other service. + +In Microsoft Flow, you can set up automated workflows between your favorite apps and services to synchronize files, get notifications, collect data, and more. For more information, see [Get started with Microsoft Flow](getting-started.md). + +## Create a flow from a template +You can create a flow using one of the many templates available, such as these examples: + +* When an object is created in Dynamics 365, create a list item in SharePoint. +* Create Dynamics 365 lead records from an Excel table. +* Copy Dynamics 365 accounts to customers in Dynamics 365 for Operations. + +To create a flow from a template, follow these steps. + +1. Sign in to the [Microsoft Flow website](https://flow.microsoft.com/). +2. Click or tap **Services**, and then click or tap **Dynamics 365**. +3. Several templates are available. To get started, select the template that you want. + +## Create a task from a lead +If a template isn’t available for what you need, create a flow from scratch. This walkthrough shows you how to create a task in Dynamics 365 whenever a lead is created in Dynamics 365. + +1. Sign in to the [Microsoft Flow website](https://flow.microsoft.com/). +2. Click or tap **My flows**, and then click or tap **Create from blank**. +3. In the list of flow triggers, click or tap **Dynamics 365 - When a record is created**. +4. If prompted, sign in to Dynamics 365. +5. Under **Organization Name**, select the Dynamics 365 instance where you want the flow to listen. +6. Under **Entity Name**, select the entity that you want to listen to, which will act as a trigger initiating the flow. + + For this walkthrough, select **Leads**. + + ![Flow details](./media/connection-dynamics365/flow-details.png) +7. Click or tap **New step**, and then click or tap **Add an action**. +8. Click or tap **Dynamics 365 – Create a new record**. +9. Under **Organization Name**, select the Dynamics 365 instance where you want the flow to create the record. Notice that it doesn’t have to be the same instance where the event is triggered from. +10. Under **Entity Name**, select the entity that will create a record when the event occurs. + + For this walkthrough, select **Tasks**. +11. A **Subject** box appears. When you click or tap it, a dynamic content pane appears where you can select either of these fields. + + * **Last Name**. If you select this field, the last name of the lead will be inserted in the **Subject** field of the task when it's created. + * **Topic**. If you select this field, the **Topic** field for the lead will be inserted in the **Subject** field of the task when it's created. + + For this walkthrough, select **Topic**. + + ![Flow add topic](./media/connection-dynamics365/flow-addtopic.png) + + > **Tip:** On the dynamic content pane, click or tap **See more** to display more fields that are associated with the entity. For example, you can also populate the **Subject** field of the task with the **Company Name**, **Customer**, **Description**, or **Email** field of the lead. + > + > +12. Click or tap **Create flow**. + +## Create a Wunderlist task from a Dynamics 365 task +This walkthrough shows you how to create a task in [Wunderlist](http://www.wunderlist.com) whenever a task is created in Dynamics 365. Wunderlist is an Internet-based service that you can use to create to-do lists, add reminders, or track errands. + +1. Sign in to the [Microsoft Flow website](https://flow.microsoft.com/). +2. Click or tap **My flows**, and then click or tap **Create from blank**. +3. In the list of flow triggers, click or tap **Dynamics 365 - When a record is created**. +4. Under **Organization Name**, select the Dynamics 365 instance where you want the flow to listen. +5. Under **Entity Name**, select the entity that you want to listen to, which will act as a trigger to initiate the flow. + + For this walkthrough, select **Tasks**. +6. Click or tap **New step**, and then click or tap **Add an action**. +7. Type *create a task*, and then click or tap **Wunderlist – Create a task**. +8. Under **List ID**, select **inbox**. +9. Under **Title**, select **Subject** in the dynamic content pane. +10. Click or tap **Create flow**. + +## Specify advanced options +When you add a step to a flow, you can click or tap **Show advanced options** to add a filter or order by query that controls how the data is filtered in the flow. + +For example, you can use a filter query to retrieve only active contacts, and you can order them by last name. To do this, enter the OData filter query **statuscode eq 1** and select **Last Name** from the dynamic content pane. For more information about filter and order by queries, see [MSDN: $filter](https://msdn.microsoft.com/library/gg309461.aspx#Anchor_1) and [MSDN: $orderby](https://msdn.microsoft.com/library/gg309461.aspx#Anchor_2). + + ![Flow orderby query](./media/connection-dynamics365/flow-orderby-query.png) + +### Best practices when using advanced options +When you add a value to a field, you must match the field type whether you type a value or select one from the dynamic content pane. + +| Field type | How to use | Where to find | Name | Data type | +| --- | --- | --- | --- | --- | +| Text fields |Text fields require a single line of text or dynamic content that is a text type field. Examples include the **Category** and **Sub-Category** fields. |**Settings** > **Customizations** > **Customize the System** > **Entities** > **Task** > **Fields** |**category** |**Single Line of Text** | +| Integer fields |Some fields require integer or dynamic content that is an integer type field. Examples include **Percent Complete** and **Duration**. |**Settings** > **Customizations** > **Customize the System** > **Entities** > **Task** > **Fields** |**percentcomplete** |**Whole Number** | +| Date fields |Some fields require a date entered in mm/dd/yyyy format or dynamic content that is a date type field. Examples include **Created On**, **Start Date**, **Actual Start**, **Last on Hold Time**, **Actual End**, and **Due Date**. |**Settings** > **Customizations** > **Customize the System** > **Entities** > **Task** > **Fields** |**createdon** |**Date and Time** | +| Fields that require both a record ID and lookup type |Some fields that reference another entity record require both the record ID and the lookup type. |**Settings** > **Customizations** > **Customize the System** > **Entities** > **Account** > **Fields** |**accountid** |**Primary Key** | + +### More examples of fields that require both a record ID and lookup type +Expanding on the previous table, here are more examples of fields that don't work with values selected from the dynamic content list. Instead, these fields require both a record ID and lookup type entered into the fields in PowerApps. + +* **Owner** and **Owner Type**. + + * The **Owner** field must be a valid user or team record ID. + * The **Owner Type** must be either **systemusers** or **teams**. +* **Customer** and **Customer Type**. + + * The **Customer** field must be a valid account or contact record ID. + * The **Customer Type** must be either **accounts** or **contacts**. +* **Regarding** and **Regarding Type**. + + * The **Regarding** field must be a valid record ID, such as an account or contact record ID. + * The **Regarding Type** must be the lookup type for the record, such as **accounts** or **contacts**. + +This example adds an account record that corresponds to the record ID, adding it to the **Regarding** field of the task. + + ![Flow recordId and type account](./media/connection-dynamics365/flow-recordid-account.png) + +This example also assigns the task to a specific user based on the user's record ID. + + ![Flow recordId and type user](./media/connection-dynamics365/flow-recordid-user.png) + +To find a record's ID, see [Find the record ID](#find-the-record-id) later in this topic. + +> **Important:** Fields shouldn't contain a value if they have a description of "For internal use only." These fields include **Traversed path**, **Additional Parameters**, and **Time Zone Rule Version Number.** +> +> + +## Find the record's ID +1. In the Dynamics 365 web application, open a record, such as an account record. +2. On the actions toolbar, click or tap **Pop Out** + ![popout record](./media/connection-dynamics365/popout.png) (or click or tap **EMAIL A LINK** to copy the full URL to your default email program). + + In the address bar of the web browser, the URL contains the record ID between the %7b and %7d encoding characters. + + ![RecordId](./media/connection-dynamics365/recordid.png) + +## Related topics +[Troubleshooting a flow](fix-flow-failures.md) + +[Flow in your organization Q&A](organization-q-and-a.md) + +[Frequently asked questions](frequently-asked-questions.md) + diff --git a/flow-docs/create-team-flows.md b/flow-docs/create-team-flows.md new file mode 100644 index 000000000..9f8d01339 --- /dev/null +++ b/flow-docs/create-team-flows.md @@ -0,0 +1,94 @@ +--- +title: Learn how to add other owners to a flow and create team flows | Microsoft Docs +description: Microsoft Flow makes it easy automate repetitive tasks. You can add users or groups as owners and collaborate with them to design and manage flows. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 04/21/2017 +ms.author: deonhe + +--- +# Create team flows +Create a team flow by adding others in your organization as owners. All owners of a team flow can perform these actions: + +* View the flow's history (that is, each run). +* Manage the properties of the flow (for example, start or stop the flow, add owners or update credentials for a connection). +* Edit the definition of the flow (for example, add or remove an action or condition). +* Add and remove other owners (but not the flow's creator). +* Delete the flow. + +If you're the creator or an owner of a team flow, you'll find it listed on the **Team flows** tab on [Microsoft Flow](https://flow.microsoft.com). + +![team flows tab](./media/create-team-flows/addowner5.png) + +> [!NOTE] +> Shared connections can be used **only** in the flow in which they were created. +> +> + +Owners can use services in a flow but can't modify the credentials for a connection that another owner created. + +## Prerequisites +You must have a [paid Microsoft Flow plan](https://flow.microsoft.com/pricing/) to create a team flow. Additionally, you must be the creator or owner to add/remove owners from a team flow. + +## Create a team flow +Follow these steps to create a team flow or to add more owners to a team flow. + +1. Sign into the [Microsoft Flow](https://flow.microsoft.com), and then select **My flows**. +2. Select the people icon for the flow that you want to modify: + + ![team icon](./media/create-team-flows/addowner1.png) +3. Enter the name, email address, or group name for the person or group that you want to add as an owner: + + ![search for the user](./media/create-team-flows/addowner2.png) +4. In the list that appears, select the user whom you want to make an owner: + + ![select the user](./media/create-team-flows/addowner3.png) + + The user or group you've selected becomes an owner of the flow: + + ![new owner](./media/create-team-flows/addowner4.png) + + Congratulations — your team flow has been created! + +## Remove an owner +> [!IMPORTANT] +> When you remove an owner whose credentials are used to access Microsoft Flow services, you should update the credentials for those connections so that the flow continues to run properly. +> +> + +1. Select the people icon for the flow that you want to modify: + + ![select people icon](./media/create-team-flows/removeowner1.png) +2. Select the **Delete** icon for the owner that you want to remove: + + ![select delete](./media/create-team-flows/removeowner2.png) +3. On the confirmation dialog box, select **Remove this owner**: + + ![confirm removal](./media/create-team-flows/removeowner3.png) +4. Congratulations — the user or group that you removed is no longer listed as an owner of the flow: + + ![user removed](./media/create-team-flows/removeowner4.png) + +## Embedded and other connections +Connections used in a flow fall into two categories: + +* **Embedded** — These connections are used in the flow. +* **Other** — These connections have been defined for a flow but aren't used in it. + +If you stop using a connection in a flow, that connection appears in the **Other** connections list, where it remains until an owner includes it in the flow again. + +The list of connections appears under the list of owners in a flow's properties: + +![embedded connections](./media/create-team-flows/embeddedconnections.png) + diff --git a/flow-docs/customapi-azure-resource-manager-tutorial.md b/flow-docs/customapi-azure-resource-manager-tutorial.md new file mode 100644 index 000000000..ebcd30f1e --- /dev/null +++ b/flow-docs/customapi-azure-resource-manager-tutorial.md @@ -0,0 +1,121 @@ +--- +title: Use Azure Active Directory with a custom connector | Microsoft Docs +description: Learn how to create a custom connector for Azure Resource Manager, with Azure Active Directory authentication. +services: '' +suite: flow +documentationcenter: '' +author: msftman +manager: anneta +editor: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 05/03/2016 +ms.author: deonhe + +--- +# Use Azure Active Directory with a custom connector in Microsoft Flow +Azure Resource Manager (ARM) enables you to manage the components of a solution on Azure - components like databases, virtual machines, and web apps. This tutorial demonstrates how to enable authentication in Azure Active Directory, register one of the ARM APIs as a custom connector, and then connect to it in Microsoft Flow. This would be useful if you want to manage Azure resources as part of a flow. For more information about ARM, see [Azure Resource Manager Overview](https://docs.microsoft.com/azure/azure-resource-manager/resource-group-overview). + +## Prerequisites +* An [Azure subscription](https://azure.microsoft.com/free/). +* A [Microsoft Flow account](https://flow.microsoft.com). +* The [sample OpenAPI file](http://pwrappssamples.blob.core.windows.net/samples/AzureResourceManager.json) used in this tutorial. + +## Enable authentication in Azure Active Directory +First, we need to create an Azure Active Directory (AAD) application that will perform the authentication when calling the ARM API endpoint. + +1. Sign in to the [Azure portal](https://portal.azure.com). If you have more than one Azure Active Directory tenant, make sure you're logged into the correct directory by looking at your username in the upper-right corner. + + ![User Name](./media/customapi-azure-resource-manager-tutorial/current-user.png) +2. On the left-hand menu, click **More services**. In the **Filter** textbox, type **Azure Active Directory**, and then click **Azure Active Directory**. + + ![Azure Active Directory](./media/customapi-azure-resource-manager-tutorial/azureaad.png) + + The Azure Active Directory blade opens. +3. In the menu on the Azure Active Directory blade, click **App registrations**. + + ![App registrations](./media/customapi-azure-resource-manager-tutorial/azureapplication.png) +4. In the list of registered applications, click **Add**. + + ![Add button](./media/customapi-azure-resource-manager-tutorial/add-app-btn.png) +5. Type a name for your application, leave **Web app / API** selected, and then for **Sign-on URL** type `https://login.windows.net`. Click **Create**. + + ![New app form](./media/customapi-azure-resource-manager-tutorial/newapplication.png) +6. Click the new application in the list. + + ![New app in list](./media/customapi-azure-resource-manager-tutorial/newapplication2.png) + + The Registered app blade opens. Make a note of the **Application ID**. We'll need it later. +7. The Settings blade should have opened, as well. If it didn't, click the **Settings** button. + + ![Settings button](./media/customapi-azure-resource-manager-tutorial/settings-btn.png) +8. In the Settings blade, click **Reply URLs**. In the list of URLs, add `https://msmanaged-na.consent.azure-apim.net/redirect` and click **Save**. + + ![Reply URLs](./media/customapi-azure-resource-manager-tutorial/reply-urls.png) +9. Back on the Settings blade, click **Required permissions**. On the Required permissions blade, click **Add**. + + ![Required permissions](./media/customapi-azure-resource-manager-tutorial/permissions.png) + + The Add API access blade opens. +10. Click **Select an API**. In the blade that opens, click the option for the Azure Service Management API and click **Select**. + + ![Select an API](./media/customapi-azure-resource-manager-tutorial/permissions2.png) +11. Click **Select permissions**. Under *Delegated permissions*, click **Access Azure Service Management as organization users**, and then click **Select**. + + ![Delegated permissions](./media/customapi-azure-resource-manager-tutorial/permissions3.png) +12. On the Add API access blade, click **Done**. +13. Back on the Settings blade, click **Keys**. In the Keys blade, type a description for your key, select an expiration period, and then click **Save**. Your new key will be displayed. Make note of the key value, as we will need that later, too. You may now close the Azure portal. + + ![Create a key](./media/customapi-azure-resource-manager-tutorial/configurekeys.png) + +## Add the connection in Microsoft Flow +Now that the AAD application is configured, let's add the custom connector. + +1. In the [Microsoft Flow web app](https://flow.microsoft.com/), click the **Settings** button at the upper right of the page (it looks like a gear). Then click **custom connectors**. + + ![Find custom connectors](./media/customapi-azure-resource-manager-tutorial/finding-custom-apis.png) +2. Click **Create custom connector**. + + You will be prompted for the properties of your API. + + | Property | Description | + | --- | --- | + | Name |At the top of the page, click **Untitled** and give your flow a name. | + | OpenAPI file |Browse to the [sample ARM OpenAPI file](http://pwrappssamples.blob.core.windows.net/samples/AzureResourceManager.json). | + | Upload API icon |Cick **Upload icon** to select an image file for the icon. Any PNG or JPG image less than 1 MB in size will work. | + | Description |Type a description of your custom connector (optional). | + + ![Create custom connector](./media/customapi-azure-resource-manager-tutorial/create-custom-api.png) + + Select **Continue**. +3. On the next screen, because the OpenAPI file uses our AAD application for authentication, we need to give Flow some information about our application. Under **Client id**, type the AAD **Application ID** you noted earlier. For client secret, use the **key**. And finally, for **Resource URL**, type `https://management.core.windows.net/`. + + > [!IMPORTANT] + > Be sure to include the Resource URL exactly as written above, including the trailing slash. + > + > + + ![OAuth settings](./media/customapi-azure-resource-manager-tutorial/oauth-settings.png) + + After entering security information, click the check mark (**✓**) next to the flow name at the top of the page to create the custom connector. +4. Your custom connector is now displayed under **custom connectors**. + + ![Available APIs](./media/customapi-azure-resource-manager-tutorial/list-custom-apis.png) +5. Now that the custom connector is registered, you must create a connection to the custom connector so it can be used in your apps and flows. Click the **+** to the right of the name of your custom connector and then complete complete the sign-on screen. + +> [!NOTE] +> The sample OpenAPI does not define the full set of ARM operations and currently only contains the [List all subscriptions](https://msdn.microsoft.com/library/azure/dn790531.aspx) operation. You can edit this OpenAPI or create another OpenAPI file using the [online OpenAPI editor](http://editor.swagger.io/). +> +> This process can be used to access any RESTful API authenticated using AAD. +> +> + +## Next steps +For more detailed information about how to create a flow, see [Start to build with Microsoft Flow](get-started-logic-flow.md). + +To ask questions or make comments about custom connectors, [join our community](https://aka.ms/flow-community). + diff --git a/flow-docs/customapi-how-to-swagger.md b/flow-docs/customapi-how-to-swagger.md new file mode 100644 index 000000000..b4800b231 --- /dev/null +++ b/flow-docs/customapi-how-to-swagger.md @@ -0,0 +1,220 @@ +--- +title: OpenAPI extensions for custom connectors in Microsoft Flow | Microsoft Docs +description: View the schema extensions required by OpenAPI to work with Microsoft Flow +services: '' +suite: flow +documentationcenter: '' +author: sunaysv +manager: anneta +editor: sunaysv + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 04/11/2017 +ms.author: sunayv + +--- +# OpenAPI extensions for custom connectors in Microsoft Flow +## Introduction +To use custom connectors in Microsoft Flow, you must provide an OpenAPI definition, which is a language-agnostic machine-readable document describing the API's operations and parameters. In addition to the out-of-the-box OpenAPI specification, there are some extensions available when creating a custom connector for Microsoft Flow: summary, x-ms-summary, description, x-ms-visibility, x-ms-dynamic-values, and x-ms-dynamic-schema. + +## summary +Title of the operation. Example - 'When a task is created" or "Create new lead'. + +Applies to: + +* Operations + +![summary-annotation](./media/customapi-how-to-swagger/figure_1.png) + +It is recommended that you use **sentence case** for the summary of your operations. + +## x-ms-summary +Title of the entity. Example - 'Task Name', 'Due Date', etc. + +Applies to: + +* Parameters +* Response Schema + +![x-ms-summary-annotation](./media/customapi-how-to-swagger/figure_2.png) + +It is recommended that you use **title case** in x-ms-summary. + +## description +A verbose explanation of the operation's functionality or an entity's format and function. Example - 'This operation triggers when a task is added to your project'. + +Applies to: + +* Operations +* Parameters +* Response Schema + +![description-annotation](./media/customapi-how-to-swagger/figure_3.jpg) + +It is recommended that you use **sentence case** in the description. + +## x-ms-visibility +Determines the user facing visibility of the entity. The possible values are **important**, **advanced** and **internal**. + +Operations and parameters marked **important** will be always be shown to the user first. +Operations and parameters marked **advanced** will be hidden under the advanced menu. +Operations and parameters marked **internal** will be completely hidden from the user. + +> [!NOTE] +> If a parameter is marked **internal** and **required**, a default value **MUST** be provided for this parameter. +> +> + +Applies to: + +* Operations +* Parameters +* Schemas + +![visibility-annotation](./media/customapi-how-to-swagger/figure_4.jpg) + +## x-ms-dynamic-values +Enables populating a dropdown for collecting input parameters to an operation. + +Applies to: + +* Parameters + +![dynamic-values](./media/customapi-how-to-swagger/figure_5.png) + +#### Usage: +Annotate a parameter by using the x-ms-dynamic-values object within the parameter definition. + +> [!NOTE] +> See sample [Swagger](https://procsi.blob.core.windows.net/blog-images/sampleDynamicSwagger.json) for more details. Custom connector UI also supports configuring dropdowns. +> +> + +#### Properties: +* `operationID` [Required] - Specifies the operation to invoke to populate the dropdown +* `value-path` [Required] - A path string in the object inside "value-collection" that refers to the value for the parameter, if value-collection is not specified, the response is evaluated as an array +* `value-title` [Optional] - A path string in the object inside "value-collection" that refers to a description for the value, if value-collection is not specified, the response is evaluated as an array +* `value-collection` [Optional] - A path string that evaluates to an array of objects in the response payload +* `parameters` [Optional] - Object whose properties specify the input parameters required to invoke a dynamic-values operation + +Example: + +```json + "x-ms-dynamic-values": { + "operationId": "PopulateDropdown", + "value-path": "name", + "value-title": "properties/displayName", + "value-collection": "value", + "parameters": { + "staticParameter": "", + "dynamicParameter": { + "parameter": "" + } + } + } +``` + +Sample code from OpenAPI: + +```json +"/api/lists/{listID-dynamic}": { + "get": { + "description": "Get items from a single list - uses dynamic Values and outputs dynamic-schema", + "summary": "Get's items from the selected list ", + "operationId": "GetListItems", + "parameters": [ + { + "name": "listID-dynamic", + "type": "string", + "in": "path", + "description": "Select List you want outputs from", + "required": true, + "x-ms-summary": "Select List", + "x-ms-dynamic-values": { + "operationId": "GetLists", + "value-path": "id", + "value-title": "name" + } + } + ] +``` + +## x-ms-dynamic-schema +This is a hint to the flow designer that the schema for this parameter or response is dynamic in nature. It can invoke an operation as defined by the value of this field, and discover the schema dynamically. It can then display an appropriate UI to take inputs from the user or display available fields. + +Applies to: + +* Parameters +* Response + +Notice how the input form changes based on the dropdown selection + +![dynamic-schema-request](./media/customapi-how-to-swagger/figure_6.png) + +Notice how the outputs change based on the dropdown selection + +![dynamic-schema-response](./media/customapi-how-to-swagger/figure_7.png) + +#### Usage: +Annotate a request parameter or a response body with the x-ms-dynamic-schema object. + +> [!NOTE] +> See sample [Swagger](https://procsi.blob.core.windows.net/blog-images/sampleDynamicSwagger.json) for more details +> +> + +#### Properties: +* `operationID` [Required] - Specifies the operation to invoke to fetch the schema +* `parameters` [Required] - Object whose properties specify the input parameters required to invoke a dynamic-schema operation +* `value-path` [Optional] - A path string that refers to the property holding the schema, if not specified, the response is assumed to contain the schema in the properties of the root object + +Sample code for dynamic parameters: + +```json + { + "name": "dynamicListSchema", + "in": "body", + "description": "Dynamic Schema of items in selected list", + "schema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetListSchema", + "parameters": { + "listID": { + "parameter": "listID-dynamic" + } + }, + "value-path": "items" + } + } + } +``` + +Sample code for dynamic response: + +```json +"DynamicResponseGetListSchema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetListSchema", + "parameters": { + "listID": { + "parameter": "listID-dynamic" + } + }, + "value-path": "items" + } + } +``` + +## Next steps +[Register a custom connector](register-custom-api.md). + +[Use an ASP.NET Web API](customapi-web-api-tutorial.md). + +[Register an Azure Resource Manager API](customapi-azure-resource-manager-tutorial.md). + diff --git a/flow-docs/customapi-web-api-tutorial.md b/flow-docs/customapi-web-api-tutorial.md new file mode 100644 index 000000000..a4b64058b --- /dev/null +++ b/flow-docs/customapi-web-api-tutorial.md @@ -0,0 +1,136 @@ +--- +title: Build a custom connector for a Web API | Microsoft Docs +description: Learn how to create an ASP.NET Web API with Azure Active Directory authentication in Microsoft Flow. +services: '' +suite: flow +documentationcenter: '' +author: sunaysv +manager: anneta +editor: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 12/06/2016 +ms.author: sunayv + +--- +# Build a custom connector for a Web API in Microsoft Flow +This tutorial shows you how to start bulding an ASP.NET Web API, host it on Azure Web Apps, enable Azure Active Directory authentication, and then register the ASP.NET Web API in Microsoft Flow. After the API is registered, you can connect to it and call it from your flow. + +## Prerequisites +* An [Azure subscription](https://azure.microsoft.com/free/). +* A [PowerApps account](https://powerapps.microsoft.com). +* [Visual Studio](https://www.visualstudio.com/vs/) 2013 or higher. + +## Create an ASP.NET Web API and deploy it to Azure +1. In Visual Studio, click **File** > **New Project** to create a new C# ASP.NET web application. + + ![New Web App](./media/customapi-web-api-tutorial/newwebapp.png) +2. Select the **Web API** template. Leave **Host in the cloud** checked. Click **Change Authentication**. + + ![New Web Project Template](./media/customapi-web-api-tutorial/new-web-api.png) +3. Select **No Authentication**, and then click **OK**. + + ![No Authentication](./media/customapi-web-api-tutorial/noauth.png) +4. Click **OK** on the **New ASP.NET Project** dialog. The Configure Microsoft Azure Web App dialog appears. + + ![Configure Microsoft Azure Web App](./media/customapi-web-api-tutorial/azure-publishing.png)] + + Select your Azure account, type a **Web App name** (or leave the default), and select your Azure **Subscription**. Select or create an **App Service plan** (a collection of Web Apps within your subscription). Select or create a **Resource group** (a grouping of Azure resources within your subscription). Select the region where the Web App should be deployed. If required for your Web API, select or create an Azure **Database server**. Finally, click **OK**. +5. Create your Web API. + + > [!NOTE] + > If you don't already have code ready for a Web API, try the tutorial [Getting Started with ASP.NET Web API 2 (C#)](http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api). + > + > +6. To connect our Web API to PowerApps, we'll need a [Swagger](http://swagger.io/) file that describes its operations. You could write an OpenAPI of our own using the [online editor](http://editor.swagger.io/), but for this tutorial, you'll use an open-source tool named [Swashbuckle](https://github.com/domaindrivendev/Swashbuckle/blob/master/README.md). Install the Swashbuckle Nuget package in your Visual Studio project by clicking **Tools** > **NuGet Package Manager** > **Package Manager Console**, and then, in the Package Manager Console, type the command `Install-Package Swashbuckle`. + + ![Install-Package Swashbuckle](./media/customapi-web-api-tutorial/swashbuckle-console.png) + + > [!TIP] + > When you run your Web API application after installing Swashbuckle, an OpenAPI file will now be generated at the URL `http:///swagger/docs/v1`. A generated user interface is also available at `http:///swagger`. + > + > +7. When your Web API is ready, publish it to Azure. To publish from Visual Studio, right-click on the web project in Solution Explorer, click **Publish...**, and then follow the prompts in the Publish dialog. +8. Retrieve the OpenAPI JSON by navigating to `https:///swagger/docs/v1`. Save the content as a JSON file. Depending on your browser, you may need to copy and paste the text into an empty text file. + + > [!IMPORTANT] + > An OpenAPI document with duplicate operation IDs is invalid. If you are using the sample C# template, the operation ID `Values_Get` is repeated twice. You can correct this by changing one instance to `Value_Get` and re-publishing. + > + > You can also download a [sample OpenAPI](http://pwrappssamples.blob.core.windows.net/samples/webAPI.json) from this tutorial. Be sure to remove the comments (starting with `//`) before using it. + > + > + +## Set up Azure Active Directory authentication +You will now create two Azure Active Directory (AAD) applications in Azure. For an example of how to do this, see the [Azure Resource Manager tutorial](customapi-azure-resource-manager-tutorial.md#enable-authentication-in-azure-active-directory). + +> [!IMPORTANT] +> Both apps must be in the same directory. +> +> + +### First AAD application: Securing the Web API +The first AAD application is used to secure the Web API. Name it **webAPI**. Follow the above linked tutorial steps (just the section titled "Enable authentication in Azure Active Directory") with the following values: + +* Sign-on URL: `https://login.windows.net` +* Reply URL: `https:///.auth/login/aad/callback` +* There is no need for a client key. +* There is no need to delegate any permissions. +* **Important!** Note the application ID. You will need it later. + +### Second AAD application: Securing the custom connector and delegated access +The second AAD application is used to secure the custom connector registration and acquire delegated access to the Web API protected by the first application. Name this one **webAPI-customAPI** . + +* Sign-on URL: `https://login.windows.net` +* Reply URL: `https://msmanaged-na.consent.azure-apim.net/redirect` +* Add permissions to have delegated access to Web API. +* You need the application ID of this application later as well, so note it. +* Generate a client key and store is somewhere safe. We need this key later. + +## Add authentication to your Azure Web App +1. Sign in to the [Azure portal](https://portal.azure.com) and then find your Web App that you deployed in the first section. +2. Click **Settings**, and then select **Authentication / Authorization**. +3. Turn on **App Service Authentication** and then select **Azure Active Directory**. On the next blade, select **Express**. +4. Click **Select Existing AD App**, and select the **webAPI** AAD application you created earlier. + +You should now be able to use AAD to authenticate your web application. + +## Add the custom connector to Microsoft Flow +1. Modify your OpenAPI to add the `securityDefintions` object and AAD authentication used for the Web App. The section of your OpenAPI with the **host** property should look like this: + +```javascript +// File header should be above here... + +"host": "", +"schemes": [ + "https" //Make sure this is https! +], +"securityDefinitions": { + "AAD": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://login.windows.net/common/oauth2/authorize", + "tokenUrl" : "https://login.windows.net/common/oauth2/token", + "scopes": {} + } +}, + +// The rest of the OpenAPI follows... +``` + +1. Browse to [Microsoft Flow](https://flow.powerapps.com), and add a custom connector as described in [Register and use custom connectors in Microsoft Flow](register-custom-api.md). +2. Once you have uploaded your OpenAPI, the wizard auto-detects that you are using AAD authentication for your Web API. +3. Configure the AAD authentication for the custom connector. + + * **Client ID**: *Client ID of webAPI-CustomAPI* + * **Secret**: *Client key of webAPI-CustomAPI* + * **Login URL**: `https://login.windows.net` + * **ResourceUri**: *Client ID of webAPI* +4. Click **Create** and creating a connection to the custom connector. + +## Next Steps +Walk through the [Azure Resource Manager custom connector tutorial](customapi-azure-resource-manager-tutorial.md). + diff --git a/flow-docs/customapi-webhooks.md b/flow-docs/customapi-webhooks.md new file mode 100644 index 000000000..30fe8b1cd --- /dev/null +++ b/flow-docs/customapi-webhooks.md @@ -0,0 +1,257 @@ +--- +title: Use webhooks with Microsoft Flow | Microsoft Docs +description: Learn how to create flows that interact with webhooks in Microsoft Flow +services: '' +suite: flow +documentationcenter: '' +author: msftman +manager: anneta +editor: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 05/08/2017 +ms.author: deonhe + +--- +# Use webhooks with Microsoft Flow +[Webhooks](http://www.webhooks.org/) are simple HTTP callbacks used to provide event notifications. Microsoft Flow allows you to use webhooks to trigger flows. This tutorial demonstrates how to create a flow triggered by a webhook. + +> [!NOTE] +> We will use GitHub as an example of a service that can send notifications via webhooks, but the techniques demonstrated here can be extended to any service that uses webhooks. +> +> + +## Prerequisites +To complete the tutorial, you will need: + +* Basic understanding of [webhooks](http://www.webhooks.org/). +* Basic understanding of the [OpenAPI Specification](http://swagger.io/specification/) (Swagger). +* A [GitHub](https://www.github.com) account. +* The [sample OpenAPI JSON file](http://pwrappssamples.blob.core.windows.net/samples/githubWebhookSample.json) for this tutorial. +* Alternatively you can also use the [triggers UI](customapi-webhooks.md#creating-webhook-triggers-from-the-ui) to define webhook triggers, in case you don’t want to hand write the OpenAPI file. + +## The OpenAPI file +Webhooks are implemented in Microsoft Flow as a type of [custom connector](register-custom-api.md), so we'll need to provide an OpenAPI JSON file to define the shape of our webhook. The OpenAPI contains three definitions critical to making the webhook work: + +1. Creating the webhook +2. Defining the incoming hook request from the API (in this case, GitHub) +3. Deleting the webhook + +### Creating the webhook +The webhook is created on the GitHub side by an HTTP POST to `/repos/{owner}/{repo}/hooks`. Microsoft Flow will need to post to this URL when a new flow is created using the trigger defined in the OpenAPI, or whenever the trigger is modified. In the sample below, the `post` property contains the schema of the request that will be posted to GitHub. + +```json +"/repos/{owner}/{repo}/hooks": { + "x-ms-notification-content": { + "description": "Details for Webhook", + "schema": { + "$ref": "#/definitions/WebhookPushResponse" + } + }, + "post": { + "description": "Creates a Github webhook", + "summary": "Triggers when a PUSH event occurs", + "operationId": "webhook-trigger", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "owner", + "in": "path", + "description": "Name of the owner of targetted repository", + "required": true, + "type": "string" + }, + { + "name": "repo", + "in": "path", + "description": "Name of the repository", + "required": true, + "type": "string" + }, + { + "name": "Request body of webhook", + "in": "body", + "description": "This is the request body of the Webhook", + "schema": { + "$ref": "#/definitions/WebhookRequestBody" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/WebhookCreationResponse" + } + } + } + } +}, +``` + +> [!IMPORTANT] +> The `"x-ms-trigger": "single"` property is a schema extension that tells Microsoft Flow to display this webhook in the list of available triggers in the flow designer, so be sure to include it. +> +> + +### Defining the incoming hook request from the API +The shape of the incoming hook request (the notification from GitHub to Microsoft Flow) is defined in the custom `x-ms-notification-content` property, as shown in the sample above. It doesn't need to contain the entire contents of the request, just the portions you want to use in your flows. + +### Deleting the webhook +It's very important to include a definition in the OpenAPI that tells Microsoft Flow how to delete the webhook. Microsoft Flow will try to delete the webhook every time you update the trigger in your flow, or when you delete your flow. + +```json +"/repos/{owner}/{repo}/hooks/{hook_Id}": { + "delete": { + "description": "Deletes a Github webhook", + "operationId": "DeleteTrigger", + "parameters": [ + { + "name": "owner", + "in": "path", + "description": "Name of the owner of targetted repository", + "required": true, + "type": "string" + }, + { + "name": "repo", + "in": "path", + "description": "Name of the repository", + "required": true, + "type": "string" + }, + { + "name": "hook_Id", + "in": "path", + "description": "ID of the Hook being deleted", + "required": true, + "type": "string" + } + ] + } +}, +``` + +> [!IMPORTANT] +> In order for Microsoft Flow to be able to delete a webhook, the API **must** include a `Location` HTTP header in the 201 response at the time the webhook is created. The `Location` header should contain the path to the webhook that will be used with the HTTP DELETE. For example, the `Location` included with GitHub's response follows this format: `https://api.github.com/repos///hooks/`. +> +> + +## Authentication +The API sending the webhook request to Microsoft Flow will usually have some form of authentication, and GitHub is no exception. Several types of authentication are supported. For this tutorial, we'll use GitHub's personal access tokens. + +1. Navigate to [GitHub](https://www.github.com) and sign in if you haven't already. +2. In the upper right, click your **profile picture**, and then, in the menu, click **Settings**. + + ![Settings](./media/customapi-webhooks/github-settings.png) +3. In the menu on the left, under **Developer settings**, click **Personal access tokens**. + + ![Personal access tokens](./media/customapi-webhooks/personal-access-tokens.png) +4. Click the **Generate new token** button. + + ![Generate new token](./media/customapi-webhooks/generate-new-token.png) +5. In the **Token description** box, enter a description. +6. Select the **admin:repo_hook** checkbox. + + ![admin:repo_hook](./media/customapi-webhooks/repo-hook.png) +7. Click the **Generate token** button. +8. Make note of your new token. + + ![New token](./media/customapi-webhooks/new-token.png) + + > [!IMPORTANT] + > You won't be able to access this token again. You should copy and paste it somewhere like Notepad to use later in the tutorial. + > + > + +## Adding the webhook to Microsoft Flow +Now we've got everything we need to add the webhook to Microsoft Flow as a custom connector. + +1. Navigate to the [Microsoft Flow web portal](https://flow.microsoft.com) and sign in if you haven't already. +2. Click the **settings** icon, and then click **Custom Connectors**. + + ![custom connectors](./media/customapi-webhooks/custom-apis.png) +3. Click the **Create custom connector** button. +4. Click the file folder icon in the **Import OpenAPI** box and then select the sample OpenAPI file. +5. Click **Upload icon** in the **General information** section and then select an image file to use as an icon. +6. Click **Continue**. + + ![Import OpenAPI](./media/customapi-webhooks/import-swagger.png) +7. On the next screen, we'll configure security settings. Under **Authentication type**, select **Basic authentication**. +8. In the **Basic authentication** section, for the label fields, enter the text **User name** and **Password**. Note that these are only labels that will be displayed when the trigger is used in a flow. + + ![Basic auth](./media/customapi-webhooks/basic-auth.png) +9. At the top of the page, give your flow a name and click **Create connector**. + + ![Create API](./media/customapi-webhooks/create-api.png) + +The new custom connector should now appear in the list on the custom connectors page. + +## Creating webhook triggers from the UI +1. After uploading / creating your baseline OpenAPI file, navigate to the **Definition** tab of the custom connector wizard. +2. In the left hand pane, click **+ New trigger**, and fill out the description of your trigger. In this example, we are creating a trigger that fires when a pull request is made to a repository. + + ![Create Trigger-1](./media/customapi-webhooks/create-new-trigger-1.png) +3. Next, define the request to create the webhook trigger. You can do this by importing a sample *create webhook trigger* request. See the [Github API reference](https://developer.github.com/v3/repos/hooks/#create-a-hook) for creating a webhook. +4. Microsoft Flow automatically adds standard ```content-type``` and security headers, so we don’t need to define those while importing from a sample. + + ![Create Trigger-2](./media/customapi-webhooks/create-new-trigger-2.png) +5. After importing the create webhook request, next we will define the webhook response by importing from a sample response. See the [Github API reference](https://developer.github.com/v3/activity/events/types/#pullrequestevent) for a pull request event. + + **Note**: You don’t have to paste in the full response. Only the fields that you need should be defined. + For this example, we are extracting only the PR url and information of the user who made the PR. + + ![Create Trigger-3](./media/customapi-webhooks/create-new-trigger-3.png) +6. The final step is to select a parameter in the webhook creation request, in the value of which Microsoft Flow should populate a callback URL for Github to populate. For us this is the url property in the ```config``` object. + + ![Create Trigger-4](./media/customapi-webhooks/create-new-trigger-4.png) + +## Using the webhook as a trigger +Now that we've got everything configured, we can use the webhook in a flow. Let's create a flow that will send a push notification to the Microsoft Flow mobile app whenever our GitHub repo receives a git push. + +1. In the [Microsoft Flow web portal](https://flow.microsoft.com), at the top of the page, click **My flows**. +2. Click **Create from blank**. +3. In the designer for Microsoft Flow, search for the custom connector we registered earlier. + + ![New trigger](./media/customapi-webhooks/new-trigger.png) + + Click on the item in the list to use it as a trigger. +4. Since this is the first time we've used this custom connector, we have to connect to it. For **Connection name**, enter a descriptive name. For **User name**, use your GitHub username. For **Password**, use the **personal access token** you created earlier. + + ![New connection](./media/customapi-webhooks/new-connection.png) + + Click **Create**. +5. Now we need to give Microsoft Flow information about the repo we want to monitor. You might recognize the fields from the **WebhookRequestBody** object in the OpenAPI file. For **owner** and **repo**, enter the owner and repo name of a GitHub repo you want to monitor. + + ![Repo info](./media/customapi-webhooks/repo-info.png) + + > [!IMPORTANT] + > In this example, I'm using the repository for [Visual Studio Code](https://code.visualstudio.com). You should use a repo that your account has rights to. The easiest way to do this would be to use your own repo. + > + > +6. Click **+ New step**, and then click **Add an action**. +7. Search for and select the **Push notification** action. + + ![Push notification](./media/customapi-webhooks/push-notification.png) +8. Enter some text in the the **Text** field. Note that the **WebhookPushResponse** object in the OpenAPI file defines the list of parameters you can use. + + ![Push notification details](./media/customapi-webhooks/push-details.png) +9. At the top of the page, give the flow a name and click **Create flow**. + + ![Flow name](./media/customapi-webhooks/flow-name.png) + +## Verification and troubleshooting +To verify everything is set up correctly, click **My flows**, and then click the **information icon** next to the new flow to view the run history. You should already see at least one "Succeeded" run from the webhook creation. This indicates that the webhook was created successfully on the GitHub side. If the run failed, you can drill into the run details to see why it failed. If the failure was due to a "404 Not Found" response, it's likely your GitHub account doesn't have the correct permissions to create a webhook on the repo you used. + +## Summary +If everything is correctly configured, you will now receive push notifications in the Microsoft Flow mobile app whenever a git push occurs on the GitHub repository you selected. Using the process above, you can use any webhook-capable service as a trigger in your flows. + +## Next steps +* [Register a custom connector](register-custom-api.md). +* [Use an ASP.NET Web API](customapi-web-api-tutorial.md). +* [Register an Azure Resource Manager API](customapi-azure-resource-manager-tutorial.md). + diff --git a/flow-docs/dev-appsource-test-drive.md b/flow-docs/dev-appsource-test-drive.md new file mode 100644 index 000000000..2f7381a74 --- /dev/null +++ b/flow-docs/dev-appsource-test-drive.md @@ -0,0 +1,35 @@ +--- +title: Let customers test drive your flows on AppSource | Microsoft Docs +description: Use AppSource to share apps with customers, and generate leads for your business. +services: '' +suite: flow +documentationcenter: na +author: linhtranms +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 05/09/2017 +ms.author: litran + +--- +# Let customers test drive your flows on AppSource +Do you want to show off how your app integrates with Microsoft Flow? We now Test Drive solutions on [AppSource.com](https://appsource.microsoft.com) as a way for you to share Microsoft Flow integration with customers, and generate leads for your business. + +## What is a Test Drive solution? +A Test Drive solution enables your customers to try out a real app without installing any applications. Customers just sign into AppSource.com using their Azure Active Directory (AAD) account and run the app in a web browser. Without Test Drive, customers can only read about your app or watch a video that describes it. With Test Drive, customers get a better idea of what your solution is and what functionality your app has. And they have the experience of actually using the app. Customers won't be able to look under the hood to see how your app is built, so your intellectual property is protected. We collect and share lead information with you to help you grow your business. + +## How do I build a Test Drive solution? +Building an app for a Test Drive solution is just like building any app, but you need to use a data source that the user can be granted access to as a read-only user. Using a data source that's already set up will mean there is zero friction for them to try it out. The full solution that you ultimately distribute to customers will include writable data, but read-only data works well for a Test Drive solution. + +### Embed flow into your product +Once you have a data source that you can grant the user read-only access to, you can embed Microsoft Flow into your application. [Read more about embedding here](embed-flow-dev.md). You will likely want to use the search functionality to highlight templates that are unique to your application. For example, if your application creates data in Dynamics 365, you can highlight a Dynamics 365 template that pulls data and then sends an email to the user. + +## How do I list my Test Drive solution on AppSource.com? +Now that your app is ready, it's time to publish it to AppSource.com. In order to start this process, please complete the [application form](https://flow.microsoft.com/partners/get-listed/) on flow.microsoft.com. Once you apply you will receive an email with instructions on how to submit your app to be published on AppSource.com. + diff --git a/flow-docs/dev-enterprise-intro.md b/flow-docs/dev-enterprise-intro.md new file mode 100644 index 000000000..3c4fba976 --- /dev/null +++ b/flow-docs/dev-enterprise-intro.md @@ -0,0 +1,32 @@ +--- +title: Microsoft Flow for enterprise developers | Microsoft Docs +description: An introduction for enterprise developers to developing for Microsoft Flow. +services: '' +suite: flow +documentationcenter: na +author: mgblythe +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 05/01/2017 +ms.author: mblythe + +--- +# Microsoft Flow for enterprise developers +As an enterprise developer, empower your organization to build robust tailored solutions on Microsoft Flow. Use custom connectors that connect to your data and web services; embed apps in your organization's websites; and work with data in the Common Data Service. + +## Build custom connectors +Develop custom connectors to connect to your organization's data and web services through Microsoft Flow. [Learn more](register-custom-api.md) + +## Build Azure Functions +Craft Azure Functions to extend apps with custom server-side logic. [Learn more](https://powerapps.microsoft.com/blog/using-azure-functions-in-powerapps/) + +## Embed apps +Embed Microsoft Flow directly into your website experiences to create integrated solutions, surfacing workflows or processes where people in your organization already do their work. [Learn more](embed-flow-dev.md) + diff --git a/flow-docs/dev-isv-partner-intro.md b/flow-docs/dev-isv-partner-intro.md new file mode 100644 index 000000000..f404292d1 --- /dev/null +++ b/flow-docs/dev-isv-partner-intro.md @@ -0,0 +1,40 @@ +--- +title: Microsoft Flow for ISVs and Microsoft partners | Microsoft Docs +description: An introduction for ISVs and Microsoft partners to leveraging Microsoft Flow. +services: '' +suite: flow +documentationcenter: na +author: mgblythe +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 05/01/2017 +ms.author: mblythe + +--- +# Microsoft Flow for ISVs and Microsoft partners +As a Microsoft partner or ISV, you can accelerate customer adoption by extending your products to integrate with your customers' data and business processes. Build connectors that enable your customers to connect to your products through Microsoft Flow. You can generate new leads for your business by building apps and publishing them to AppSource for new customers to test-drive. + +## Build an API connector +Bring your product into the Microsoft cloud by building a connector that enables Microsoft Flow to talk to your service. [Learn more](api-connector-overview.md) + +## Publish templates +Once you have a connector, you should publish templates that demonstrate how to use your service. These templates will serve as examples that users can use to learn and then extend to their own unique workflows. [Learn more](publish-a-template.md) + +## Embed the flow experience in your website or app +Next, you can embed Microsoft Flow from within your app to enable deep, in-context integration between your app and all the other services that Microsoft Flow supports. For example, you can: + +* Browse all of the templates that relate to your service and let users select a template +* Manage the flows that users have related to your app + +Follow [this tutorial](embed-flow-dev.md) for more information about how to embed Microsoft Flow within an app. + +## List your solution on AppSource +Generate new leads for your business by building an app and publishing it to AppSource for new customers to test-drive. [Learn more](dev-appsource-test-drive.md) + diff --git a/flow-docs/docfx.json b/flow-docs/docfx.json new file mode 100644 index 000000000..1e13b3cbc --- /dev/null +++ b/flow-docs/docfx.json @@ -0,0 +1,40 @@ +{ + "build": { + "content": [ + { + "files": [ + "**/*.md", + "**/*.yml" + ], + "exclude": [ + "**/obj/**", + "**/includes/**", + "README.md", + "LICENSE", + "LICENSE-CODE", + "ThirdPartyNotices" + ] + } + ], + "resource": [ + { + "files": [ + "**/*.png", + "**/*.jpg" + ], + "exclude": [ + "**/obj/**", + "**/includes/**" + ] + } + ], + "overwrite": [], + "externalReference": [], + "globalMetadata": { + "breadcrumb_path": "~/breadcrumb/toc.yml" + }, + "fileMetadata": {}, + "template": [], + "dest": "flow-content" + } +} \ No newline at end of file diff --git a/flow-docs/email-triggers.md b/flow-docs/email-triggers.md new file mode 100644 index 000000000..085fd6c98 --- /dev/null +++ b/flow-docs/email-triggers.md @@ -0,0 +1,127 @@ +--- +title: Run flows based on email properties. | Microsoft Docs +description: Start a flow based on properties such as the subject, from address, or the recipient of an email. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 06/08/2017 +ms.author: deonhe + +--- +# Trigger a flow based on email properties +Use the **When a new email arrives** trigger to create a flow that runs when one or more of these email properties match criteria you provide: + +| Property | When to use | +| --- | --- | +| Folder |Trigger a flow whenever emails arrive into a specific folder. This property can be useful if you have rules that route emails to different folders. | +| To |Trigger a flow based on the address to which an email was sent. This property can be useful if you receive email that was sent to different email addresses in the same inbox. | +| From |Trigger a flow based on the sender's email address. | +| Importance |Trigger a flow based on the importance with which emails were sent. Email can be sent with high, normal, or low importance. | +| Has Attachment |Trigger a flow based on the presence of attachments on incoming emails. | +| Subject Filter |Search for the presence of specific words in the subject of an email. Your flow then runs *actions* based on the results of your search. | + +> [!IMPORTANT] +> Each [Microsoft Flow plan](https://flow.microsoft.com/pricing/) includes a run quota. Always check properties in the flow's trigger when possible, doing so avoids using your run quota unnecessarily. If you check a property in a condition, each run counts against your plan's run quota, even if the filter condition you defined isn't met. For example, if you check an email's *from* address in a condition, each run counts against your plan's run quota, even if it's not *from* the address that interests you. +> +> + +In the walk-throughs below, we check all properties in the **When a new email arrives** trigger. You can learn more by visiting the [frequently asked billing questions](billing-questions.md#what-counts-as-a-run) and the [pricing](https://ms.flow.microsoft.com/pricing/) page. + +## Prerequisites +* An account with access to [Microsoft Flow](https://flow.microsoft.com). +* An Office 365 Outlook account. +* The Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows). +* Connections to Office 365 Outlook and the push notification service. + +## Trigger a flow based on an email's subject +In this walkthrough, we create a flow that sends a push notification to your mobile phone if the subject of any new email has the word "lottery" in it. Your flow then marks any such email as *read*. + +Note: While this walkthrough sends a push notification, you're free to use any other action that suits your workflow needs. For example, you could store the email contents in another repository such as Google Sheets or a Microsoft Excel file stored on Dropbox. + +Ok, let's get started: + +[!INCLUDE [sign-in-use-blank-select-email-trigger-and-inbox-folder](includes/sign-in-use-blank-select-email-trigger-and-inbox-folder.md)] + +1. In the **Subject Filter** box, enter the text that your flow uses to filter incoming emails. + + In this example I'm interested in any email that has the word "lottery" in the subject. + + ![advanced options](./media/email-triggers/email-triggers-subject-text.png) + +[!INCLUDE [add-mobile-notification-action](includes/add-mobile-notification-action.md)] + +1. Enter the details for the mobile notification you'd like to receive when an email that matches the **Subject Filter** you specified earlier arrives. + + ![notification details](./media/email-triggers/email-triggers-4.png) + +[!INCLUDE [add-mark-as-read-action](includes/add-mark-as-read-action.md)] + +1. Give your flow a name, and then save it by selecting **Create flow** at the top of the page. + + ![save flow](./media/email-triggers/email-triggers-subject-notification.png) + +Congratulations, you receive a push notification each time you receive an email that contains the word "lottery" in the subject. + +## Trigger a flow based on an email's sender +In this walkthrough, we create a flow that sends a push notification to your mobile phone if any new email arrives from a specific sender (email address). The flow also marks any such email as *read*. + +[!INCLUDE [sign-in-use-blank-select-email-trigger-and-inbox-folder](includes/sign-in-use-blank-select-email-trigger-and-inbox-folder.md)] + +1. Enter the email address of the sender into **From**. + + Your flow takes action on any emails sent from this address. + + ![email property](./media/email-triggers/email-triggers-from.png) + +[!INCLUDE [add-mobile-notification-action](includes/add-mobile-notification-action.md)] + +1. Enter the details for the mobile notification you'd like to receive whenever a message arrives from the email address you entered earlier. + + ![notification details](./media/email-triggers/email-triggers-sender-notification.png) + +[!INCLUDE [add-mark-as-read-action](includes/add-mark-as-read-action.md)] + +1. Give your flow a name, and then save it by selecting **Create flow** at the top of the page. + + ![save flow](./media/email-triggers/email-triggers-sender-5.png) + +## Trigger a flow when emails arrive in a specific folder +If you have rules that route email to different folders based on certain properties, such as the address, you may want this type of flow. + +Let's get started: + +> [!NOTE] +> If you don't already have a rule that routes email to a folder other than your inbox, create such a rule and confirm it works by sending a test email. +> +> + +[!INCLUDE [sign-in-use-blank-select-email-trigger-and-specific-folder](includes/sign-in-use-blank-select-email-trigger-and-specific-folder.md)] + +1. Select the folder to which you've created the rule to route specific emails. To display all email folders, first select the **Show Picker** icon, which is located on the right side of the **Folder** box on the **When a new email arrives** card. + + ![select folder](./media/email-triggers/email-triggers-2.png) + +[!INCLUDE [add-mobile-notification-action](includes/add-mobile-notification-action.md)] + +1. Enter the details for the mobile notification you'd like to receive when an email arrives into the folder you've selected earlier. If you haven't already, enter the credentials for the notifications service. + + ![notification details](./media/email-triggers/email-triggers-folder-notification.png) + +[!INCLUDE [add-mark-as-read-action](includes/add-mark-as-read-action.md)] + +1. Give your flow a name, and then save it by selecting **Create flow** at the top of the page. + + ![save flow](./media/email-triggers/email-triggers-7.png) + +Test the flow by sending an email that gets routed to the folder you selected earlier in this walkthrough. + diff --git a/flow-docs/embed-flow-dev.md b/flow-docs/embed-flow-dev.md new file mode 100644 index 000000000..d9057bae5 --- /dev/null +++ b/flow-docs/embed-flow-dev.md @@ -0,0 +1,154 @@ +--- +title: Integrate Microsoft Flow with websites and apps | Microsoft Docs +description: Embed the Microsoft Flow experiences into your website or app. +services: '' +suite: flow +documentationcenter: na +author: bbarath +manager: erikre +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 05/09/2017 +ms.author: barathb + +--- +# Integrate Microsoft Flow with websites and apps +Embed Microsoft Flow right into your app or website to give users a simple way to automate their personal or professional tasks. + +To create flows, users will need either a **Microsoft Account** or a work or school account in **Azure Active Directory**. Microsoft Flow doesn't support, for example, a whitelabel solution that supports whatever identity your system uses (unless it already uses Microsoft Accounts or AAD). + +## Prerequisites +* [Build a custom connector](register-custom-api.md) that connects your service to Microsoft Flow. +* [Create and publish one or more templates](publish-a-template.md) that use your API. + +## Show templates for your scenarios +To start, add this code to show the flow templates directly in your website: + +``` + +``` + +**Note**: We added a line break so the code displays better on the page. + +| Parameter | Description | +| --- | --- | +| locale |The four-letter language and region code for the template view. For example, `en-us` represents American English, and `de-de` represents German. | +| search term |The search term for the templates that you want to show in the view. For example, search `wunderlist` to show templates for Wunderlist. | +| number of templates |The number of templates that you want to show in the view. | +| destination |The page that opens when users click the template. Specify `details` to show the details about the template, or specify `new` to open the Microsoft Flow designer. | +| parameters.{name} |Additional context to pass into the flow. | + +If the destination parameter is `new`, Microsoft Flow opens when users click a template, and they can create a flow in the designer. See the next section if you want to have the full experience work from inside of the app. + +### Passing additional parameters to the flow +If the user is in a certain context in your website or app, you might want to pass that context to the flow. For example, a user might open a template for *Notify me when an item is added to a list* while looking at a certain list in Wunderlist. By following these steps, you can pass in the list ID as a *parameter* to the flow: + +1. Define the parameter in the flow template before you publish it. A parameter looks like `@{parameters('parameter_name')}`. +2. Pass the parameter in the iframe src. For example, add `¶meters.listName={the name of the list}` if you have a parameter called **listName**. + +### Full sample +To show the top four templates about Wunderlist in German and to start the user with **myCoolList**: + +``` + +``` + +## Embed the management of flows +Use the authenticated Flow SDK to allow users to create and manage flows directly from your website or app (instead of navigating to the Microsoft Flow portal). You'll need to sign the user in to Microsoft Account or Azure Active Directory to use the authenticated SDK. + +> [!NOTE] +> All users who use Microsoft Flow in your application will be Microsoft Flow users. There is no way to hide the Microsoft Flow branding. +> +> + +### Include the JavaScript for the authenticated SDK +Include the SDK in your HTML code by following this example. You may also download, minify, and package the SDK with your product. + +``` + +``` + +### Create a container to contain the view +Add an HTML div: + +``` +
+``` + +We recommend that you style this container so that it appears with appropriate dimensions in your experience: + +``` + + + +``` + +Note that the iframe won't render properly below 320 pixels in width and won't fill content above 1200 pixels in width. Any height should work. + +### Authentication against the SDK +For listing flows that the user has already authored and also to create flows from templates, provide an authToken from AAD. + +``` + +``` + +You can find the `environmentId` by making the following api call, which returns the list of environments user has access to: + +``` +GET https://management.azure.com/providers/Microsoft.ProcessSimple/environments +?api-version=2016-11-01 +``` + +This returns a JSON response with list of environments, from which you can pick any environment. You can look for the default user enviroment by checking the property `properties.isDefault=true`. + +In this example, `requestParam` is defined as: + +``` +export interface IRpcRequestParam { + callInfo: IRpcCallInfo, + data?: any; +} +``` + +Next, the `widgetDoneCallback` is a callback function that needs to be called once the host has the token. This is done because token acquisition is likely an async process. The parameters that need to be passed in when calling this function are `(errorResult: any, successResult: any)`. The successResult will depend on the callback type. For `GetAccessToken` the type is: + +``` +export interface IGetAccessTokenResult { + token: string; +} +``` diff --git a/flow-docs/environments-overview-admin.md b/flow-docs/environments-overview-admin.md new file mode 100644 index 000000000..8658b2247 --- /dev/null +++ b/flow-docs/environments-overview-admin.md @@ -0,0 +1,141 @@ +--- +title: Environment overview for Administrators | Microsoft Docs +description: Using, creating, and managing environments in Microsoft Flow +services: '' +suite: flow +documentationcenter: na +author: sunaysv +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 10/27/2016 +ms.author: sunayv + +--- +# Using environments within Microsoft Flow +## Benefits +Environments are new feature in Microsoft Flow, and include the following benefits: + +* **Data locality**: Environments can be created in different regions, and are bound to that geographic location. When you create a flow in an environment, that flow is routed to all datacenters in that geographic location. This also provides a performance benefit. + + If your users are in Europe, then create and use the environment in the Europe region. If your users are in the United States, then create and use the environment in the U.S. + + If you delete the environment, then all flows within that environment are also deleted. This applies to any items you create in that environment, including connections, gateways, PowerApps, and more. +* **Data loss prevention**: As an Administrator, your don't want flows that get data from an internal location (such as *OneDrive for Business*), and then post that data publicly (such as to *Twitter*). Using data loss prevention, you control which services can be used in a business data-only policy. + + For example, you can add the *SharePoint* and *OneDrive for Business* services to a business data-only policy. Any flows created in this environment can use these *SharePoint* and *OneDrive for Business* services. Only services you add are available. + + > [!NOTE] + > Data loss prevention is available with some license skus, including the P2 license. + > + +* **Isolation boundary for all resources**: Any flows, gateways, connections, custom connectors, and so on reside in that specific environment. They do not exist in any other environments. +* **Common Data Service**: You want to create a flow that inserts data somewhere. Your options are: + + * Insert data into an Excel file, and store the Excel file in a cloud storage account, such as OneDrive. + * Create your own SQL Database, and store your data in it. + * Use the Common Data Service to store your data. + + Every environment can have zero or one database storage for your flows in the Common Data Service. Access to the Common Data Service depends on the license you purchase; it is not included with the Free license. + +## Limitations +Although, environments provide many benefits, they also introduce new limitations. The fact that environments are an isolation boundary means that you can never have resources that reference other resources *across* environments. For example, it's impossible to create a custom connector in one environment and create a flow that uses both that custom connector and a gateway in a different environment. + +Thus, it is important that environments are only created when necessary. Creating too many environments will make it very difficult for users across your organization to share resources. + +## Use the default environment +The **Default** environment is available for every user, and is shared by all users. Every user can create flows in this environment. + +> [!TIP] +> If you're a Preview user, all existing flows reside in the default environment. A *Preview user* is someone who was using Microsoft Flow before its release to General Availability (GA). +> +> + +## Use the administrator center +Administrators use the administrator center to create environments, add users to these environments, and other similar tasks. There are two ways to open the administrator center: + +#### Option 1: Select Settings +1. Sign in to [flow.microsoft.com](https://flow.microsoft.com). +2. Select the Settings gear, and choose **Administrator Center** from the list: + ![Settings and Administrator Portal](./media/environments-overview-admin/settings.png) +3. The administrator center opens. + +#### Option 2: Open admin.flow.microsoft.com +Go to [admin.flow.microsoft.com](https://admin.flow.microsoft.com), and sign-in with your work account. The administrator center opens. + +## Create an environment +1. In the [Microsoft Flow admin center](https://admin.flow.microsoft.com), select **Environments**. Any existing environments are displayed: + ![](./media/environments-overview-admin/environments-list.png) +2. Select **New environment**. Enter the following info: + + | Property | Description | + | --- | --- | + | Environment Name |Enter the name of your environment, such as `Human Resources`, or `Europe flows`. | + | Region |Choose the location to host your environment. For the best performance, use a region closest to your users. For example, if your flow users are in London, then choose the Europe region. If your flow users are in New York, then choose the United States region. | +3. Select **Create an environment**. Your new environment is listed. + +Next, add users to the environment. + +## Manage your existing environments +1. In the [Microsoft Flow admin center](https://admin.flow.microsoft.com), select **Environments**: + ![](./media/environments-overview-admin/select-environments.png) +2. Select an environment to open its properties. +3. **Details** show additional information about the environment, including who created the environment, its geographic location, and other properties: + ![](./media/environments-overview-admin/open-environment.png) +4. Select **Security**. In **Environment roles**, there are two options: **Admin** and **Maker**: + + ![](./media/environments-overview-admin/environment-roles.png) + + A **Maker** can create new resources in an environment, such as flows, data connections, and gateways. + + > [!NOTE] + > A user does not need to be a **Maker** to *edit* resources in an environment, only to create *net-new* resources. Each resource creator can determine who can edit that resource, and can grant edit permissions to users who are not environment Makers. + > + + + An **Admin** can create data loss prevention policies, and also complete administrative tasks, such as create environments, add users to an environment, and assign admin/maker privileges. + + 1. Select the **Environment Maker** role, and then select **Users**: + ![](./media/environments-overview-admin/add-environment-maker.png) + 2. Enter a name, email address, or user group that you'd like to give the Maker role. As you start typing, intellisense starts listing the user/groups that match your text. + 3. Select **Save** to complete adding users. +5. Within **Security**, select **User Roles**: + ![](./media/environments-overview-admin/security-user-roles.png) + + Any existing roles are listed, including the options to edit or delete the role. + + Select **New role** to create a new role. +6. Within **Security**, select **Permission Sets**: + ![](./media/environments-overview-admin/security-permission-set.png) + + Any existing permission sets are listed, including the options to edit or delete the role. + + Select **New permission set** to create a new one. +7. In **Database**, you can choose to create a database to store your data. This database is part of the Common Data Service. + +## Commonly asked questions +##### Can I migrate a Microsoft Flow in my U.S. environment, to a Europe environment? +No, flows cannot be moved between environments. Recreate the flow in the different environment. + +##### Which license includes the Common Data Service? +Only Microsoft PowerApps Plan 2 includes rights to create databases with the Common Data Service. However, all paid plans (Microsoft Flow plans 1 and 2, and Microsoft PowerApps plans 1 and 2) have the rights to use the Common Data Service. + +[Flow pricing](https://flow.microsoft.com/pricing/) can help you choose a plan that rights for you. + +[Billing questions](billing-questions.md) also helps navigate some of the common questions we've received. + +##### Can the Common Data Service be used outside of an environment? +No. The Common Data Service requires an environment. [Read more](common-data-model-intro.md) about it. + +##### What regions include Microsoft Flow? +Microsoft Flow supports most of the regions that Office 365 supports, see [the regions overview](regions-overview.md) for more details. + +##### What is needed to create my own custom environment? +All users with the Microsoft Flow Plan 2 license can create their own environments, in addition to the default environment. All Microsoft Flow users, including Office 365 and Free, can use the environments created by Plan 2 administrators, but they cannot create their own environments. + diff --git a/flow-docs/environments-overview-maker.md b/flow-docs/environments-overview-maker.md new file mode 100644 index 000000000..efd3c943a --- /dev/null +++ b/flow-docs/environments-overview-maker.md @@ -0,0 +1,79 @@ +--- +title: Switching environments when creating a Microsoft Flow | Microsoft Docs +description: How a maker uses different environments when creating a Microsoft Flow +services: '' +suite: flow +documentationcenter: na +author: sunaysv +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 10/27/2016 +ms.author: sunayv + +--- +# Choosing an environment +With Microsoft Flow, you can work in different environments, and easily switch among them. The scope of this article covers the following topics on environment: + +* Background of what environments provide +* Switching environments +* How to create a flow in the right environment + +## Environments overview +Environments provide an isolation boundary for your flows, connections, gateways, and other resources. When you create a flow, you choose which environment to host the flow, and the resources used by that flow. You can use different environments for different scenarios. + +Some examples: + +* You are creating a flow that uses a connection to the Microsoft Common Data Service. In this scenario, the flow and the Common Data Service reside in the same environment. This ensures all the data is isolated within that environment (isolation boundary). +* You are creating a flow for your Human Resources department. You want to ensure that only users in your Human Resources department have access to the flow. For example, you don't want your Sales group to use the flow. In this scenario, you can use a separate environment, which only the HR users have permissions, to host the flow, and any resources the flow uses, including gateways or connections. +* There are users in Europe that use a flow to show SharePoint data. In this scenario, create an environment in Europe that hosts the flow, and the SharePoint connection. This Europe environment gives the European users the best performance, as all resources are local to Europe (data locality). + +Environments are created by Microsoft Flow administrators. These administrators also control who has access to the different environments. + +This topic shows you how to navigate between different environments. For details on how you can create and manage them, see [administer environments](environments-overview-admin.md). + +## Switching environments +Microsoft Flow makes it pretty easy to switch between environments. When you do switch, you are seeing all the items in that specific environment; you are not seeing items in any other environment. + +Here's an example. + +You create a flow named *NewEmployee* in the *Human Resources* environment. In [flow.microsoft.com](http://flow.microsoft.com), you open the *Sales* environment. The *NewEmployee* flow is not listed. To see the *NewEmployee* flow, open the *Human Resources* environment. Remember, this applies to any items you create in the environment, including connections, gateways, PowerApps, and more. + +1. Open [flow.microsoft.com](http://flow.microsoft.com). +2. In the top right corner, you see your name, and the environment you're in: + ![](./media/environments-overview-maker/default-environment.png) + + In the image, notice the notifications. These notifications are specific to the flow in this default environment. +3. Select your name. In the drop-down list, all the environments available to you are listed. Your current environment is checked: + ![](./media/environments-overview-maker/all-environments.png) +4. To switch to another environment, select that environment in the list: + ![](./media/environments-overview-maker/select-europe.png) +5. Microsoft Flow automatically switches to the new environment: + ![](./media/environments-overview-maker/europe-environment.png) + + In the image, notice there are no notifications. The new Europe environment has no notifications. + +## Create flows in the right environment +Before you create a flow, always make sure you select the environment you want to flow to be in. Otherwise, you will have delete and recreate the flow in the correct environment. + +Consider the following factors when choosing which environment to create your flows in: + +* Gateways are created in the Default environment. Gateways cannot be created in other environments, so if you want to connect to On-premises data you'll need to use the Default environment. +* Flows can only use connections, and other resources within the same environment. They cannot use resources in other environment. For example, you are creating a flow that uses a custom connector. This custom connector must be in the same environment as the flow. +* The Microsoft Common Data Service database is always tied to exactly one environment. That means if you ever want to work with the Common Data Service data you must select the same environment that the database is in. +* You will see all environments that you can edit resources in. This does not mean you can create new resources in all environments, however. Thus, in some environments you may be unable to create new flows. You need to ask the administrator to add you as a **Maker** to that environment, or, pick a different environment to create the flow in (you will always be able to create flows in the default environment). + +## What you did +Using these steps, you switch between environments that you have permissions to use. Now, go start creating your flows. + +## Next steps +[Create a flow from a template](get-started-logic-template.md) +[Create a flow](get-started-logic-flow.md) +[Environment overview for Administrators](environments-overview-admin.md) + diff --git a/flow-docs/fix-flow-failures.md b/flow-docs/fix-flow-failures.md new file mode 100644 index 000000000..3ebc37684 --- /dev/null +++ b/flow-docs/fix-flow-failures.md @@ -0,0 +1,50 @@ +--- +title: Troubleshooting a flow | Microsoft Docs +description: Resolve some of the most common reasons why flows fail +services: '' +suite: flow +documentationcenter: na +author: stepsic-microsoft-com +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 01/17/2017 +ms.author: stepsic + +--- +# Troubleshooting a flow +## Identify the error +Before you can fix a flow, you must identify why it failed. Click or tap the notifications icon at the top of the web portal (or open the **Activity** tab in the mobile app), and then click or tap your flow in the list that appears. + +![Notifications](./media/fix-flow-failures/notifications-toolbar.png) + +Details about the flow appear, and at least one step shows a red exclamation icon. Open that step, and review the error message. + +![Error message](./media/fix-flow-failures/flow-run-failure.png) + +## Authentication failures +In many cases, flows fail because of an authentication error. If you have this type of error, the error message contains **Unauthorized** or an error code of **401** or **403** appears. You can usually fix an authentication error by updating the connection: + +1. At the top of the web portal, click or tap the gear icon to open the **Settings** menu, and then click or tap **Connections**. +2. Scroll to the connection for which you saw the **Unauthorized** error message. +3. Next to the connection, click or tap the **Verify password** link in the message about the connection not being authenticated. +4. Verify your credentials by following the instructions that appear, return to your flow-run failure, and then click or tap **Resubmit**. + + The flow should now run as expected. + +## Action configuration +Flows also fail if a setting in an action of the flow doesn't function as expected. In this case, the error message contains **Bad request** or **Not found**, or an error code of **400** or **404** appears. + +The error message should specify how to correct the failure. You'll need to click or tap the **Edit** button and then correct the problem inside the flow definition. Save the updated flow, and then click or tap **Resubmit** to try the run again with the updated configuration. + +## Other failures +If the error code **500** or **502** appears, the failure is temporary or transient. Click or tap **Resubmit** to try the flow again. + +If you encounter some other problem, [please ask our community](https://go.microsoft.com/fwlink/?LinkID=787467) because others may have encountered a similar problem. + diff --git a/flow-docs/flic-button-flows.md b/flow-docs/flic-button-flows.md new file mode 100644 index 000000000..cca1c5e1b --- /dev/null +++ b/flow-docs/flic-button-flows.md @@ -0,0 +1,141 @@ +--- +title: Start flows with Flic buttons | Microsoft Docs +description: Easily start button flows with physical buttons from Flic by Shortcut Labs. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 05/19/2017 +ms.author: deonhe + +--- +# Run your flows by pressing a Flic smart button (Preview) +Trigger your flows by pressing a physical button, known as a Flic, from Shortcut Labs. For example, press a Flic to track your working hours, block your calendar, count visitors at an event, or save geographical locations. + +> [!IMPORTANT] +> Configure all Flic properties by using Flic's mobile app for [Android](https://play.google.com/store/apps/details?id=io.flic.app) or [iOS](https://itunes.apple.com/us/app/flic-app/id977593793?ls=1&mt=8) before you create your flow. +> +> + +## Prerequisites +To use Flics with Microsoft Flow, you must have: + +* Access to [Microsoft Flow](https://flow.microsoft.com). +* Downloaded Flic's [Android](https://play.google.com/store/apps/details?id=io.flic.app) or [iOS](https://itunes.apple.com/us/app/flic-app/id977593793?ls=1&mt=8) mobile app, and used it to pair one or more Flics. + +## Configure Flic properties +Use Flic's mobile app to program the Flic's events. The events are: + +* click (one quick press) +* double-click (two quick presses) +* hold (one long press) + +This screenshot shows a sample of what your Flic configuration process might be like: + +![configure Flics](./media/flic-button-flows/configure-flic-actions.png) + +After you've linked a Flic event to Microsoft Flow, you can then select that Flic as a trigger for your flows. You select triggers later in this walkthrough. + +## Create a flow that's triggered by a Flic +In this walkthrough, we use a Flic to run a flow that records the time a consultant spends at each client. The consultant presses the Flic once upon arrival, and then presses it again, just before departure from the client. Each press of the Flic starts a run of the flow to which it's connected. The flow saves the current time in Google Sheets, and then sends an email notification. The email contains details about the flow run. + +Note: Be sure you've used the Flic mobile app to pair, and configure at least one **click** action to trigger Microsoft Flow. In this screenshot, I've configured the **click** action to trigger Microsoft Flow. Later in this walkthrough we configure our flow to trigger when the Flic is pressed once (clicked). + + ![flic config](./media/flic-button-flows/flic-configured-for-flow.png) + +Let's get started creating our flow. + +### Start with a template +1. Sign into [Microsoft Flow](https://flow.microsoft.com). + + ![sign in](./media/flic-button-flows/sign-into-flow.png) +2. Enter **flic** into the search box, and then select the search icon. + + ![search flic](./media/flic-button-flows/search-flic.png) +3. Select the **Track your working hours with Flic smart button** template. + + ![select template](./media/flic-button-flows/flic-templates.png) + +### Create a spreadsheet in Google Sheets +1. Review the template's details and note that this template requires a spreadsheet in Google Sheets. + + ![review template details](./media/flic-button-flows/flic-template-details.png) +2. In Google Sheets, create a spreadsheet that contains a sheet with columns named **ClickType** and **TimeStamp**. + + Tip: You name columns in Google Sheets by entering the column name at the top of the column. So, your sheet should appear like this screenshot: + + ![Google Sheet](./media/flic-button-flows/flic-google-sheet.png) + + Note: You use this sheet later in this walkthrough. + +### Add the Flic trigger to your flow +1. Sign in to the template's services, and then select **Continue**. + + **Continue** is enabled after you sign into all required services for the template. + + ![provide credentials](./media/flic-button-flows/flic-template-services-sign-in.png) +2. Enter **flic** into the search box, and then select the **Flic - When a Flic is pressed** trigger. + + ![search for flic trigger](./media/flic-button-flows/flic-search-trigger.png) +3. Select the Flic you want to use from the **Flic button** list on the **Flic - When a Flic is pressed** card. +4. Select **click** from the **Events** list to indicate that you want to trigger the flow when the Flic is pressed once. + + ![select flic action](./media/flic-button-flows/select-flic.png) + + Optionally, you can select **any** to indicate that each Flic event (click, double-click, or hold) triggers the flow. + + **Double-click** indicates that the flow triggers when the Flic is quickly pressed two times. **Hold** indicates that a long press on the Flic triggers the flow. + + You're free to create other flows and trigger them using the other events in the **Events** list. For example, you can use the **double-click** event to record the time you leave a client. + +### Configure the sheet + On the **Insert row** card: + +1. Select the spreadsheet you created earlier from the **File** list. +2. Select the sheet from the **Worksheet** list. + + Note: Two additional boxes appear on the **Insert row** card after you select the sheet. These boxes represent the two columns in the sheet you created earlier. +3. Select the **ClickType** box, and then select the **Click type** token. +4. Select the **Timestamp** box, and then select the **Click time** token. + + ![configure Google Sheets data](./media/flic-button-flows/flick-insert-row-card.png) + +### Confirm the email settings are correct +1. Confirm the **Send me an email notification** card looks like this screenshot. + + ![confirm email notification](./media/flic-button-flows/email-settings.png) + +### Save your flow and test it +1. Give your flow a name, and then save it. + + ![save your flow](./media/flic-button-flows/save.png) + +If you've followed along, pressing the Flic once triggers the flow. The flow then records the click type and the current time in the sheet and then sends an email to you. + +1. Press your Flic once. +2. Open your worksheet in Google Sheets. You should see the **ClickType** and the **Timestamp** columns populated with the "click" and the time, respectively. + + ![see run results](./media/flic-button-flows/flic-google-sheet-after-run.png) +3. You can also see the results of the run from the Microsoft Flow website or from the Microsoft Flow mobile app. Here's a screenshot of my test run. + + ![save your flow](./media/flic-button-flows/flic-test-run-results-portal.png) +4. Here's what the body of the notification email that I received from the run of the flow looks like. + + ![save your flow](./media/flic-button-flows/flic-email-body.png) + +For extra credit, consider extending the flow to automatically record your location (latitude and longitude) when the Flic is pressed. + +## More information +* [Share button flows](share-buttons.md). +* Learn to use [button trigger tokens](introduction-to-button-trigger-tokens.md) to send current data when your button flows are executed. +* Install the Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows). + diff --git a/flow-docs/frequently-asked-questions.md b/flow-docs/frequently-asked-questions.md new file mode 100644 index 000000000..b9acff283 --- /dev/null +++ b/flow-docs/frequently-asked-questions.md @@ -0,0 +1,119 @@ +--- +title: Frequently asked questions | Microsoft Docs +description: Answers to several common questions about Microsoft Flow +services: '' +suite: flow +documentationcenter: na +author: stepsic-microsoft-com +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 03/15/2017 +ms.author: stepsic + +--- +# Frequently asked questions +## Audience and strategy +### What is Microsoft Flow? +Microsoft Flow is a cloud-based service that makes it practical and simple for line-of-business users to build workflows that automate time-consuming business tasks and processes across applications and services. + +### Who is the intended audience for Microsoft Flow? +Microsoft Flow has two distinct audiences: + +* Line-of-business “Citizen Integrators” in enterprise organizations who partner with IT to move responsibility for business solutions closer to the business itself. +* IT decision makers who want to empower line-of-business partners to create their own solutions so IT professionals and integration specialists can focus their expertise on more advanced integration tools, such as Azure Logic Apps. + +### How do Microsoft Flow and Logic Apps relate to each other? +Microsoft Flow provides features that help line-of-business users create automated workflows. Logic Apps is an Azure service that provides the same great features of Microsoft Flow, plus features such as integration with Azure Resource Manager and the Azure Portal, PowerShell and xPlat CLI, Visual Studio, and additional connectors. [Learn more about Logic Apps](https://azure.microsoft.com/services/app-service/logic/). + +### How does Microsoft Flow fit in Microsoft’s overall business application platform strategy? +Microsoft Flow is part of a powerful and adaptable business application platform that includes PowerApps, the Common Data Service, Dynamics 365, and Office 365. This platform allows our customers, our partners, and our ISV partners to create purpose-built solutions for their own companies, their industry, for functional roles or even for specific geographies. Line-of-business users, who understand their business needs best, can now easily analyze, compose, and streamline data and processes. Professional developers can easily extend the automation, analytics and apps line-of-business to leverage Azure services like Functions, App Service, and Logic Apps. API connectors, gateways and the Microsoft Common Data Service make it possible to get more value out of services or data already in use, either in the cloud or on-premises. + +## Functionality +### What do I need to use Microsoft Flow? +To use Microsoft Flow, all you need is a web browser and an email address. + +### What browsers does Microsoft Flow support? +Microsoft Flow supports Microsoft Edge and the current versions of Chrome and Safari. + +### Which email addresses are supported? +Microsoft Flow supports email addresses that end with anything except .gov and .mil. + +### Is Microsoft Flow available on-premises? +Microsoft Flow is a public cloud service only. However, you can securely connect to your own on-premises services through the on-premises data gateway. + +### What services can Microsoft Flow connect to? +Microsoft Flow connects to more than 100 data sources out of the box, and we’re adding more all the time. Some examples of data sources and services include the following: + +* SharePoint +* Dynamics 365 +* OneDrive +* OneDrive for Business +* Google Drive +* Google Sheets +* Trello +* Twitter +* Box +* Facebook +* SalesForce.com +* Mailchimp +* Customer APIs + +You can find a full list of available connectors [here](https://go.microsoft.com/fwlink/?LinkId=832211). + +You can access data sources in your own IT infrastructure through the [on-premises data gateway](gateway-manage.md). + +### What are templates? +Templates are pre-built flows for popular and common scenarios. Using a template only requires you to have access to the services in the template and to fill out any required settings. + +### What data sources will I be able to connect to? +You can connect to more than 100 standard services from Microsoft and third parties, such Office 365, Twitter, SharePoint, OneDrive, Dropbox, SQL Server, and more. You can also connect to premium services such as Salesforce and the Common Data Service for PowerApps. + +### How do I connect to a REST API in my flow? +You can connect to any REST API that uses JSON and supports at least one of more than 10 authentication methods by creating [a custom connector](register-custom-api.md). + +### How do I connect to SQL Server and other on-premises data sources? +You can connect to services on your local network using the [on-premises data gateway](gateway-manage.md). + +### Can I share the flows I create? +You can share flows in either of these ways: + +* You can add co-workers or groups in your organization as owners on your flows, so they can also edit and manage the flow. +* For flows that can be run manually, you can also grant other people or groups in your organization permission to just run the flow. + +### How many flows can I have? +Microsoft Flow comes with up to 50 flows. If you need more, you can request them. + +### Where do I get started with Microsoft Flow? +Get started with the following resources: + +* [Blog](https://flow.microsoft.com) +* [YouTube channel](https://youtube.com/playlist?list=PL8nfc9haGeb55I9wL9QnWyHp3ctU2_ThF) +* [Topic](getting-started.md) +* [Community](http://powerusers.microsoft.com) + +### What operating systems does the mobile app for Microsoft Flow support? +The Microsoft Flow mobile app is available on [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows). + +### What regions and languages does Microsoft Flow support? +Microsoft Flow is available in 42 languages and [six regions](regions-overview.md). + +### How does Microsoft Flow compare to SharePoint Designer 2013? +Microsoft Flow is the successor to SharePoint Designer for many common business scenarios such as approvals, document review, and onboarding/offboarding. It will be the default tool for building business automation in SharePoint moving forward. + +### How does Microsoft Flow ensure that corporate data isn't accidentally released to social media services? +Administrators can create [data loss prevention policies](prevent-data-loss.md) to ensure that only sanctioned services are used in Microsoft Flow. + +## Licensing +### Will Microsoft Flow still have a free or trial option? +Yes. You can use our free offering, which has limited user rights, or you can sign up for a free 90-day trial of Microsoft Flow. You can activate your subscription at any time during your trial. + +### What pricing plans do you offer? +Microsoft Flow offers both free and paid service levels. [Learn more about pricing](billing-questions.md). + diff --git a/flow-docs/gateway-manage.md b/flow-docs/gateway-manage.md new file mode 100644 index 000000000..a67a3bda8 --- /dev/null +++ b/flow-docs/gateway-manage.md @@ -0,0 +1,67 @@ +--- +title: Learn to manage on-premises data gateways | Microsoft Docs +description: View and install an on-premises data gateway in Microsoft Flow +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 02/15/2017 +ms.author: deonhe + +--- +# Manage an on-premises data gateway in Microsoft Flow +Install and manage an on-premises data gateway to securely integrate a variety of cloud-based apps with your on-premises data and apps through Microsoft Flow. + +With a gateway, you can connect to on-premises data over these connections: + +* SharePoint +* SQL Server +* Oracle +* Informix +* Filesystem +* DB2 + +> [!IMPORTANT] +> Microsoft SharePoint data gateways support HTTP traffic, but not HTTPS traffic. +> +> + +## Prerequisites +* The user name and password that you used to [sign up](sign-up-sign-in.md) for Microsoft Flow. +* Administrative permissions on a gateway. + + You have these permissions by default for each gateway that you install, and an administrator of another gateway can grant you these permissions for that gateway. +* A license that supports gateways. For more information, see the “Connectivity” section of the [pricing page](https://flow.microsoft.com/pricing/). +* You can create a gateway and an on-premises connection only in your [default environment](environments-overview-maker.md). + +## View your gateways +In the upper-right corner of the [Microsoft Flow website](https://flow.microsoft.com), click or tap the gear icon, and then click or tap **Gateways**. + +![Gateway under manage][1] + +**Note**: If you created or were given access to a gateway in PowerApps, that gateway appears in the **My gateways** list in Microsoft Flow. + +## Install a gateway +1. Download the [gateway-installation wizard](http://go.microsoft.com/fwlink/?LinkID=820580&clcid=0x409). + + You can also download this wizard by clicking or tapping the gear icon in the upper-right corner of the [Microsoft Flow website](https://flow.microsoft.com), clicking or tapping **Gateways**, and then clicking or tapping **Create gateway**. + + ![Gateway installation][2] +2. Run the wizard, providing the same credentials with which you signed into Microsoft Flow. + + After you register and configure your gateway successfully, it shows up in the **My gateways** list in Microsoft Flow. + +For more information, see [Understand gateways](gateway-reference.md). + + +[1]: ./media/manage-gateway/view-gateways.png +[2]: ./media/manage-gateway/list-gateways.png diff --git a/flow-docs/gateway-reference.md b/flow-docs/gateway-reference.md new file mode 100644 index 000000000..3b28394c6 --- /dev/null +++ b/flow-docs/gateway-reference.md @@ -0,0 +1,232 @@ +--- +title: Understand on-premises data gateways | Microsoft Docs +description: Reference information, including installation and troubleshooting, for on-premises data gateways +services: '' +suite: flow +documentationcenter: na +author: MSFTMan +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 10/22/2016 +ms.author: deonhe + +--- +# Understand on-premises data gateways for Microsoft Flow +## Installation and configuration +## Prerequisites +Minimum: + +* .NET 4.5 Framework +* 64-bit version of Windows 7 or Windows Server 2008 R2 (or later) + +Recommended: + +* 8 Core CPU +* 8 GB Memory +* 64-bit version of Windows 2012 R2 (or later) + +Related considerations: + +* You can't install a gateway on a domain controller. +* You shouldn't install a gateway on a computer, such a laptop, that may be turned off, asleep, or not connected to the Internet because the gateway can't run under any of those circumstances. In addition, gateway performance might suffer over a wireless network. + +## Install a gateway +> [!IMPORTANT] +> Microsoft SharePoint data gateways support HTTP and HTTPS traffic. +> +> + +1. [Download the installer](http://go.microsoft.com/fwlink/?LinkID=820931), and then run it. + + ![Run the installer](./media/gateway-reference/run-installer.png) +2. On the first screen of the installation wizard, click or tap **Next** to acknowledge the reminder about installing a gateway on a laptop. + + ![Reminder screen](./media/gateway-reference/laptop-reminder.png) +3. Specify the location where you want to install the gateway, select the check box to accept the terms of use and the privacy statement, and then click or tap **Install**. +4. In the **User Account Control** dialog boxes, click or tap **Yes** to continue. +5. On the next screen of the wizard, click or tap **Sign in**. + + ![Sign in](./media/gateway-reference/sign-in.png) +6. Click or tap the option to register a new gateway or migrate, restore, or to take over an existing gateway, and then click or tap **Next**. + + ![Choose new or existing](./media/gateway-reference/new-existing.png) + + * To configure a gateway, type a **name** for it and a **recovery key**, click or tap **Configure**, and then click or tap **Close**. + + ![Configure a new gateway](./media/gateway-reference/configure-new.png) + + Specify a recovery key that contains at least eight characters, and keep it in a safe place. You'll need this key if you want to migrate, restore, or take over its gateway. + * To migrate, restore, or take over an existing gateway, provide the name of the gateway and its recovery key, click or tap **Configure**, and then follow any additional prompts. + + ![Recover an existing gateway](./media/gateway-reference/recover-existing.png) + +## Restart the gateway +The gateway runs as a Windows service and, as with any other Windows service, you can start and stop it in multiple ways. For example, you can open a command prompt with elevated permissions on the machine where the gateway is running, and then run either of these commands: + +* To stop the service, run this command:
+ **net stop PBIEgwService** +* To start the service, run this command:
+ **net start PBIEgwService** + +## Configure a firewall or proxy +For information about how to provide proxy information for your gateway, see [Configure proxy settings](https://powerbi.microsoft.com/en-us/documentation/powerbi-gateway-proxy/). + +You can verify whether your firewall, or proxy, may be blocking connections by running the following command from a PowerShell prompt. This will test connectivity to the Azure Service Bus. This only tests network connectivity and doesn't have anything to do with the cloud server service or the gateway. It helps to determine whether your machine can actually get out to the internet. + + Test-NetConnection -ComputerName watchdog.servicebus.windows.net -Port 9350 + +The results should look similar to this example. If **TcpTestSucceeded** is not *true*, you may be blocked by a firewall. + + ComputerName : watchdog.servicebus.windows.net + RemoteAddress : 70.37.104.240 + RemotePort : 5672 + InterfaceAlias : vEthernet (Broadcom NetXtreme Gigabit Ethernet - Virtual Switch) + SourceAddress : 10.120.60.105 + PingSucceeded : False + PingReplyDetails (RTT) : 0 ms + TcpTestSucceeded : True + +If you want to be exhaustive, substitute the **ComputerName** and **Port** values with those listed under **Configure ports** later in this topic. + +The firewall may also be blocking the connections that the Azure Service Bus makes to the Azure data centers. If that is the case, you'll want to whitelist (unblock) all of the IP addresses for your region for those data centers. You can get a list of Azure IP addresses [here](https://www.microsoft.com/download/details.aspx?id=41653). + +## Configure ports +The gateway creates an outbound connection to Azure Service Bus. It communicates on outbound ports: TCP 443 (default), 5671, 5672, 9350 thru 9354. The gateway doesn't require inbound ports. + +Learn more about [hybrid solutions](https://azure.microsoft.com/documentation/articles/service-bus-fundamentals-hybrid-solutions/). + +| Domain names | Outbound ports | Description | +| --- | --- | --- | +| *.analysis.windows.net |443 |HTTPS | +| *.login.windows.net |443 |HTTPS | +| *.servicebus.windows.net |5671-5672 |Advanced Message Queuing Protocol (AMQP) | +| *.servicebus.windows.net |443, 9350-9354 |Listeners on Service Bus Relay over TCP (requires 443 for Access Control token acquisition) | +| *.frontend.clouddatahub.net |443 |HTTPS | +| *.core.windows.net |443 |HTTPS | +| login.microsoftonline.com |443 |HTTPS | +| *.msftncsi.com |443 |Used to test internet connectivity if the gateway is unreachable by the Power BI service. | + +If you need to white list IP addresses instead of the domains, you can download and use the [Microsoft Azure Datacenter IP ranges list](https://www.microsoft.com/download/details.aspx?id=41653). In some cases, the Azure Service Bus connections will be made with IP Address instead of the fully qualified domain names. + +## Sign-in account +Users will sign in with either a work or school account. This is your organization account. If you signed up for an Office 365 offering and didn’t supply your actual work email, it may look like nancy@contoso.onmicrosoft.com. Your account, within a cloud service, is stored within a tenant in Azure Active Directory (AAD). In most cases, your AAD account’s UPN will match the email address. + +## Windows Service account +The on-premises data gateway is configured to use *NT SERVICE\PBIEgwService* for the Windows service logon credential. By default, it has the right of Log on as a service. This is in the context of the machine on which you're installing the gateway. + +This isn't the account used to connect to on-premises data sources or the work or school account with which you sign in to cloud services. + +## Frequently asked questions +### General +**Question:** What data sources does the gateway support? +**Answer:** + +* SQL Server +* SharePoint +* Oracle +* Informix +* Filesystem +* DB2 + +**Question:** Do I need a gateway for data sources in the cloud, such as SQL Azure? +**Answer:** No. A gateway connects to on-premises data sources only. + +**Question:** What is the actual Windows service called? +**Answer:** In Services, the gateway is called **Power BI Enterprise Gateway Service**. + +**Question:** Are there any inbound connections to the gateway from the cloud? +**Answer:** No. The gateway uses outbound connections to Azure Service Bus. + +**Question:** What if I block outbound connections? What do I need to open? +**Answer:** See the [ports](gateway-reference.md#ports) and hosts that the gateway uses. + +**Question:** Does the gateway have to be installed on the same machine as the data source? +**Answer:** No. The gateway will connect to the data source using the connection information that was provided. Think of the gateway as a client application in this sense. It will just need to be able to connect to the server name that was provided. + +**Question:** What is the latency for running queries to a data source from the gateway? What is the best architecture? +**Answer:** To reduce network latency, install the gateway as close to the data source as possible. If you can install the gateway on the actual data source, it will minimize the latency introduced. Consider the data centers as well. For example, if your service is using the West US data center and you have SQL Server hosted in an Azure VM, you'll want to have the Azure VM in West US as well. This will minimize latency and avoid egress charges on the Azure VM. + +**Question:** Are there any requirements for network bandwidth? +**Answer:** It is recommended to have good throughput for your network connection. Every environment is different, and the amount of data being sent will affect the results. Using ExpressRoute could help to guarantee a level of throughput between on-premises and the Azure data centers. + +You can use the third-party tool [Azure Speed Test app](http://azurespeedtest.azurewebsites.net/) to help gauge what your throughput is. + +**Question:** Can the gateway Windows service run with an Azure Active Directory account? +**Answer:** No. The Windows service must have a valid Windows account. By default, it will run with the Service SID, *NT SERVICE\PBIEgwService*. + +**Question:** How are results sent back to the cloud? +**Answer:** This is done by way of the Azure Service Bus. For more information, see [how it works](gateway-reference.md#how-the-gateway-works). + +**Question:** Where are my credentials stored? +**Answer:** The credentials that you enter for a data source are stored encrypted in the gateway cloud service. The credentials are decrypted at the gateway on-premises. + +### High availability/disaster recovery +**Question:** Are there any plans for enabling high availability scenarios with the gateway? +**Answer:** This is on the roadmap, but we don’t have a timeline yet. + +**Question:** What options are available for disaster recovery? +**Answer:** You can use the recovery key to restore or move a gateway. When you install the gateway, specify the recovery key. + +**Question:** What is the benefit of the recovery key? +**Answer:** It provides a way to migrate or recover your gateway settings after a disaster. + +### Troubleshooting +**Question:** Where are the gateway logs? +**Answer:** See [Tools](gateway-reference.md#tools) later in this topic. + +**Question:** How can I see what queries are being sent to the on-premises data source? +**Answer:** You can enable query tracing, which will include the queries being sent. Remember to change it back to the original value when done troubleshooting. Leaving query tracing enabled will cause the logs to be larger. + +You can also look at tools that your data source has for tracing queries. For example, you can use Extended Events or SQL Profiler for SQL Server and Analysis Services. + +## How the gateway works +![How it works](./media/gateway-reference/gateway-arch.png) + +When a user interacts with an element that's connected to an on-premises data source: + +1. The cloud service creates a query, along with the encrypted credentials for the data source, and sends the query to the queue for the gateway to process. +2. The gateway cloud service analyzes the query and pushes the request to the [Azure Service Bus](https://azure.microsoft.com/documentation/services/service-bus/). +3. The on-premises data gateway polls the Azure Service Bus for pending requests. +4. The gateway gets the query, decrypts the credentials, and connects to the data source(s) with those credentials. +5. The gateway sends the query to the data source for execution. +6. The results are sent from the data source back to the gateway and then onto the cloud service. The service then uses the results. + +## Troubleshooting +#### Update to the latest version +A lot of issues can surface when the gateway version is out of date. It is a good general practice to make sure you are on the latest version. If you haven't updated the gateway for a month, or longer, you may want to consider installing the latest version of the gateway and see if you can reproduce the issue. + +#### Error: Failed to add user to group. (-2147463168 PBIEgwService Performance Log Users ) +You may receive this error if you are trying to install the gateway on a domain controller, which isn't supported. You'll need to deploy the gateway on a machine that isn't a domain controller. + +## Tools +#### Collecting logs from the gateway configurator +You can collect several logs for the gateway. Always start with the logs! + +**Installer logs** + + %localappdata%\Temp\On-premises_data_gateway_*.log + +**Configuration logs** + + %localappdata%\Microsoft\on-premises data gateway\GatewayConfigurator*.log + +**Enterprise gateway service logs** + + C:\Users\PBIEgwService\AppData\Local\Microsoft\on-premises data gateway\Gateway*.log + +**Event logs** + +The **On-premises data gateway service** event logs are present under **Applications and Services Logs**. + +![Event logs](./media/gateway-reference/event-logs.png) + +#### Fiddler Trace +[Fiddler](http://www.telerik.com/fiddler) is a free tool from Telerik that monitors HTTP traffic. You can see the back and forth with the Power BI service from the client machine. This may show errors and other related information. + diff --git a/flow-docs/get-started-flow-dev.md b/flow-docs/get-started-flow-dev.md new file mode 100644 index 000000000..b281dfaf0 --- /dev/null +++ b/flow-docs/get-started-flow-dev.md @@ -0,0 +1,54 @@ +--- +title: Start to build | Microsoft Docs +description: Create a custom connector, share it, embed a flow, and do much more. +services: '' +suite: flow +documentationcenter: na +author: bbarath +manager: erikre +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 10/22/2016 +ms.author: barathb + +--- +# Start to build with Microsoft Flow +Extend your application with Microsoft Flow in these ways, among others: + +* create and connect to a custom connector +* share that API with all users of Microsoft Flow +* embed the flow experience from within an app +* leverage all the developer APIs so that users can interact with Microsoft Flow in the best way for them + +## Prerequisites +* An account on [flow.microsoft.com](https://flow.microsoft.com) + +## Create a custom connector +When you have a web service that you want to be able to automate with Microsoft Flow, you'll first need to build a custom connector. By registering a custom connector, you teach Microsoft Flow about the characteristics of your web API, including the authentication that it requires, the triggers and actions that it supports, and the parameters and outputs for each of those actions. + +Follow [this tutorial](https://powerapps.microsoft.com/tutorials/register-custom-api/) to register a custom connector. After you register it, you can share it inside of your organization so that others can help you test it. + +## Share a custom connector with all Microsoft Flow users +After you fully test your custom connector, start the review process as established in [this blog post](https://flow.microsoft.com/blog/calling-all-saas-apps-now-you-can-build-your-own-connector-for-flow-and-logic-apps/): + +* An OpenAPI file that represents your API and any authentication information +* An icon for your connector +* A description of your API +* Approximately 10 ideas for how your API could benefit other users through templates + +After you submit this information, Microsoft will start to assess your API's function in Microsoft Flow and Microsoft PowerApps. + +## Embed the flow experience in your website or app +Finally, you can embed Microsoft Flow from within your app to enable deep, in-context integration between your app and all the other services that Microsoft Flow supports. For example, you can: + +* Browse all of the templates that relate to your service and let users select a template +* Manage the flows that users have related to your app + +Follow [this tutorial](embed-flow-dev.md) for more information about how to embed Microsoft Flow within an app. + diff --git a/flow-docs/get-started-logic-flow.md b/flow-docs/get-started-logic-flow.md new file mode 100644 index 000000000..bc396af52 --- /dev/null +++ b/flow-docs/get-started-logic-flow.md @@ -0,0 +1,106 @@ +--- +title: Automate tasks by creating a flow | Microsoft Docs +description: Create a flow to automatically perform one or more actions, such as sending mail, when events occur, such as someone adding a row to a SharePoint list. +services: '' +suite: flow +documentationcenter: na +author: aftowen +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: get-started-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 02/14/2017 +ms.author: anneta + +--- +# Create a flow in Microsoft Flow + + +Create a flow to perform one or more tasks automatically when you want an event to kick off an action. For example, create a flow that notifies you by mail as soon as someone sends a tweet that contains a keyword you specify. In this example, sending a tweet is the event, and sending mail is the action. + +**Prerequisites** + +* An account on [flow.microsoft.com](https://flow.microsoft.com) +* An Twitter account +* Office 365 credentials + +## Specify an event +First, you will need to select what starting action, or *trigger*, will start your flow. + +1. In [flow.microsoft.com](https://flow.microsoft.com), select **My flows** in the top navigation bar, and then select **Create from blank**. + + ![Flows option in the left navigation bar](./media/get-started-logic-flow/create-logic-flow.png) +2. In the box that says **Search all services and triggers**, type or paste **Twitter**, and then select **Twitter - When a new tweet is posted**. + + ![Twitter event](./media/get-started-logic-flow/twitter-search.png) +3. If you haven't already connected your Twitter account to Microsoft Flow, select **Sign in to Twitter**, and then provide your credentials. + + ![Twitter sign in](./media/get-started-logic-flow/twitter-signin.png) +4. In the **Query text** box, type the keyword that you want to find. + + ![Twitter keyword](./media/get-started-logic-flow/twitter-keyword.png) + +## Specify an action +1. Under the event that you created in the previous procedure, select **New step**, and then select **Add an action**. + + ![Add action](./media/get-started-logic-flow/add-action-icon.png) +2. In the box that shows **Search all services and actions**, type or paste **send email**, and then select **Office 365 Outlook - Send an email**. + + ![List of actions](./media/get-started-logic-flow/send-email.png) +3. If prompted, select the sign-in button, and then provide your credentials. +4. In the form that appears, type or paste your email address in the **To** box then select your name from the list of contacts that appears. + + ![Blank email message](./media/get-started-logic-flow/blank-email.png) +5. In the **Subject** box, type or paste **New tweet from:**, then type a space. + + ![Subject line with placeholder](./media/get-started-logic-flow/message-token.png) +6. In the list of parameters, select the **Tweeted by** parameter to add a placeholder for it. + + ![Add parameter](./media/get-started-logic-flow/add-parameter.png) +7. Click or tap in the **Body** box then click or tap the **Tweet text** parameter to add a placeholder for it. +8. (optional) Add more parameters, other content, or both to the body of the email. +9. Near the top of the screen, name your flow, and then select **Create flow**. + + ![Select the Create flow button](./media/get-started-logic-flow/create-button.png) +10. Select **Done** to update the list of your flows. + + ![Select the done button](./media/get-started-logic-flow/done-button.png) +11. Send a tweet with the keyword that you indicated. + + Within a minute, an email message notifies you of the new tweet. + +## Manage a flow +1. In [flow.microsoft.com](https://flow.microsoft.com), select **My flows** in the top navigation bar. +2. In the list of flows, do any of the following: + + * To pause a flow, set its toggle to **Off**. + + ![Pause flow](./media/get-started-logic-flow/pause-flow.png) + * To resume a flow, set its toggle to **On**. + + ![Resume flow](./media/get-started-logic-flow/resume-flow.png) + * To edit a flow, select it from the list of flows. + + ![Select flow](./media/get-started-logic-flow/select-flow.png) + * To delete a flow, select the **...** icon, select its trash-can icon, and then select **OK**. + + ![Delete icon](./media/get-started-logic-flow/delete-icon.png) + * To view flow history, select the **List runs** icon. + + ![Info icon](./media/get-started-logic-flow/info-icon.png) + + Select a flow run from the list of runs to see the inputs and outputs of each step. + +**Note**: You can have up to 50 flows in your account. If you already have 50, delete one before you can create another. + +## Next steps +* [Add steps](multi-step-logic-flow.md), such as different ways to be notified, to your flow. +* [Run tasks on a schedule](run-tasks-on-a-schedule.md), when you want an action to occur daily, on a certain date, or after a certain number of minutes. +* [Add a flow to an app](https://powerapps.microsoft.com/tutorials/using-logic-flows/) to allow your app to kick off logic in the cloud. +* [Get started with team flows](create-team-flows.md) and invite others to collaborate with you to design flows. + diff --git a/flow-docs/get-started-logic-template.md b/flow-docs/get-started-logic-template.md new file mode 100644 index 000000000..417384425 --- /dev/null +++ b/flow-docs/get-started-logic-template.md @@ -0,0 +1,69 @@ +--- +title: Create a flow from a template | Microsoft Docs +description: Create a flow from any of several built-in templates. +services: '' +suite: flow +documentationcenter: na +author: aftowen +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 02/07/2017 +ms.author: anneta + +--- +# Create a flow from a template in Microsoft Flow +Create a flow from one of many built-in templates that can, for example, send you a Slack message when your manager sends you an email in Office 365. + +**Note:** [Create a flow from scratch](get-started-logic-flow.md) if you already have a process in mind and can't find a template for it. + +**Prerequisites** + +* An account on [flow.microsoft.com](https://flow.microsoft.com) +* A Slack account +* Office 365 credentials + +## Choose a template + + +1. In [flow.microsoft.com](https://flow.microsoft.com), select **Templates** in the top navigation bar. +2. In the search bar, type **Slack**, and then select the search icon. +3. You'll see only templates related to Slack, so you can now select **Send a message on Slack when my manager emails me**. + + ![New option in the left navigation bar](./media/get-started-logic-template/select-template.png) +4. Confirm that this template will do what you want, and then select **Use this template**. +5. If you aren't signed into Office or Slack, select **Sign in** and then follow the prompts. + + ![List of connections that the template requires](./media/get-started-logic-template/confirm-connections.png) +6. After you confirm your connections, select **Continue**. + + Your flow appears, showing each action with an orange title bar. + + ![Default events and actions from template](./media/get-started-logic-template/template-default.png) + +## Customize your flow +1. Select the title bar for an event to expand it, and then customize it (for example, by specifying a filter on the email that interests you). +2. Actions that require input from you will automatically be expanded. + + For example, the **Post message** action is expanded because you need to enter a channel, such as your *@username*. You can also customize the message content. By default, the message will contain just the subject, but you can include other information. + + ![Specify channel for slack](./media/get-started-logic-template/specify-keyword.png) +3. Near the top of the screen, specify a name for your flow, and then select **Create flow**. +4. Finally, if you're happy with your flow, select **Done**. + + ![Done button](./media/get-started-logic-template/done.png) + +Now, when your manager sends you an email, you'll receive a Slack message that contains the information that you specified. + +## Next steps +* [Watch your flow in action](see-a-flow-run.md) +* [Publish your own template](publish-a-template.md) +* [Use a template for the Common Data Service](common-data-model-intro.md) +* [Get started with team flows](create-team-flows.md) and invite others to collaborate with you to design flows. + diff --git a/flow-docs/getting-started.md b/flow-docs/getting-started.md new file mode 100644 index 000000000..db8d828c8 --- /dev/null +++ b/flow-docs/getting-started.md @@ -0,0 +1,85 @@ +--- +title: Get started | Microsoft Docs +description: Quick ways to start automating your work and life with Microsoft Flow +services: '' +suite: flow +documentationcenter: na +author: stepsic-microsoft-com +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: hero-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 03/27/2017 +ms.author: stepsic + +--- +# Get started with Microsoft Flow + + +Welcome! Microsoft Flow is a product to help you set up automated workflows between your favorite apps and services to synchronize files, get notifications, collect data, and more. + +The first step is to [sign up](sign-up-sign-in.md), or, if you already have an account with Microsoft, you can directly [sign in](https://flow.microsoft.com/signin) on your tablet, your desktop computer, or even your phone. + +## Check out the home page +[On the home page](https://flow.microsoft.com) for Microsoft Flow, you can [explore a diverse set of templates](https://flow.microsoft.com/templates) and read about some key features for Microsoft Flow. You can get a quick sense of what's possible and how Microsoft Flow could help your business and your life. + +![Flow homepage](./media/getting-started/flowhome1.png) + +![Flow homepage](./media/getting-started/flowhome2.png) + +![Flow homepage](./media/getting-started/flowhome3.png) + +Each template is designed for a specific purpose such as sending you a text message when your boss emails you, adding Twitter leads to Dynamics 365, or backing up your files. These templates are just the tip of the iceberg and are intended to inspire you to create flows that are customized to the exact processes that you need. + +## Create your first flow +You will need to find a flow template that would be useful for you. A very simple template is [**Get daily reminders in Email**](https://flow.microsoft.com/galleries/public/templates/45a3399aa29345308f08b6db0a9c85b9/) : + +![Flow templates](./media/getting-started/template-details.png) + +Using this template is very easy: first, select **Continue**. + +![Create connection](./media/getting-started/create-connection.png) + +Now, enter the email addresses to which the daily reminder will be sent. Next, enter the reminder message. Finally, select **Create flow**, and then verify that your flow is running as expected. + +![Create connection](./media/getting-started/configure-email-details.png) + +Note: You can explore the conditions that trigger the flow and the action that results from that event. Play around with the settings to make the flow your own, and even add or delete actions. (or just select **Done**). + +Explore other templates, and [follow this tutorial](get-started-logic-template.md) to get details of how to create more flows from templates. + +## Get creative +Now that you have some idea of what a flow can do and a bit of experience, [create a flow from scratch](get-started-logic-flow.md) based on these data sources and others: + +* an Excel file in a cloud-storage account such as Dropbox, OneDrive, or Google Drive +* a Google sheet +* a SharePoint list +* Salesforce or Microsoft Dynamics 365 with custom entities +* a SQL Azure table +* [the Microsoft Common Data Service](common-data-model-intro.md) + +![Building a flow](./media/getting-started/build-a-flow.png) + +When you create a flow from scratch, the entire flow comes straight from your brain to the screen. You're also free to explore different approaches such as the ones in these topics: + +* [Flows with many steps](multi-step-logic-flow.md) +* [Run tasks on a schedule](run-tasks-on-a-schedule.md) +* [Create an approval flow](wait-for-approvals.md) +* [Watch a flow in action](see-a-flow-run.md) +* [Publish a template](publish-a-template.md) + +## Use the mobile app +Download the Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows) version to your mobile device, where you can: + +* [monitor flow activity](mobile-monitor-activity.md), such as successes, failures, and the time when each flow ran most recently +* [manage each flow](mobile-manage-flows.md), such as enabling or disabling it and viewing its events and actions +* [create a flow from a template](mobile-create-flow.md), such as one for getting a push notification when you receive mail from a sender that you specify + +## Questions? Ideas? We're here to help +We're excited to see what you can do with Microsoft Flow, and we want to make sure that you have a great experience. Check out the detailed tutorials here for more help, and [join our community](http://go.microsoft.com/fwlink/?LinkID=787467) to ask questions and share your ideas. [Contact support](http://go.microsoft.com/fwlink/?LinkID=787479) if you run into any issues. + diff --git a/flow-docs/guided-learning/learning-approvals.md b/flow-docs/guided-learning/learning-approvals.md new file mode 100644 index 000000000..f6f9080db --- /dev/null +++ b/flow-docs/guided-learning/learning-approvals.md @@ -0,0 +1,49 @@ +--- +title: Approval Requests with Microsoft Flow | Microsoft Docs +description: Learn how to use Microsoft Flow to manage an approval workflow. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' +featuredvideoid: o-pgEBW3fOI +courseduration: 14m + +ms.service: flow +ms.devlang: na +ms.topic: get-started-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 11/22/2016 +ms.author: deonhe + +--- +# Approval requests +In addition to helping you **receive notifications**, **copy files**, and **collect data**, Microsoft Flow can also help you **streamline your approval processes**. + +## Vacation scenario +Let’s imagine that you are the **manager** of a team and you ask your employees to create **vacation requests** in a **SharePoint list**. Now you want to build an **approval process** around these list items so that new vacation requests are **quickly processed** and the requestor is **automatically notified**. + +## SharePoint and Microsoft Flow +**SharePoint** has Microsoft Flow **built-in**. From your **SharePoint list**, click the **Flow** drop down, and then **Create a flow**. + +![Create flow](./media/learning-approvals/new-flow.png) + +In the **menu on the right**, look for a **template** like this. + +![Approval Template](./media/learning-approvals/approval-template.png) + +## Using the template +The **SharePoint** trigger in the template comes **pre-populated** with your list information. All you need to do is add an **email address** for the **approver**. Notice that it **doesn't change the original SharePoint item**. For that, we'll need to add the **SharePoint - Update item** action. + +![Update item](./media/learning-approvals/update-item.png) + +What about the **if no** branch of of *Send emailScope*? By default, it does nothing. You might want to add an action to send the author of the request a message telling them their request was rejected. + +![If no](./media/learning-approvals/if-no.png) + +## Next lesson +Now we'll review what we learned in this section. + diff --git a/flow-docs/guided-learning/learning-collect-data.md b/flow-docs/guided-learning/learning-collect-data.md new file mode 100644 index 000000000..40cd163d9 --- /dev/null +++ b/flow-docs/guided-learning/learning-collect-data.md @@ -0,0 +1,33 @@ +--- +title: Collecting Data with Microsoft Flow | Microsoft Docs +description: Learn how to use Microsoft Flow to collect data from services for use in your flows. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' +featuredvideoid: U54cdN0tXEI +courseduration: 6m + +ms.service: flow +ms.devlang: na +ms.topic: get-started-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 11/22/2016 +ms.author: deonhe + +--- +# Collecting data +In addition to being able to **get notifications** and **copy files**, **Microsoft Flow** also enables you to **collect data**. This can be useful for **analytics**, like with **Power BI**. + +## Sources and destinations, triggers and actions +When collecting data, your **trigger** can be any of a variety of services, such as **Twitter**, your **Office 365 Email**, or the **Common Data Service**. Each one of these services have their own **dynamic properties** that represent **fields** you can populate in your **destination**. + +Some **common destinations** you can store data in include **Excel**, **SQL Server**, **SharePoint lists**, and **Google Sheets**. You can also use the **Common Data Service**. + +## Next lesson +Now let's learn how to use **Microsoft Flow** with **Approvals**. + diff --git a/flow-docs/guided-learning/learning-copy-files.md b/flow-docs/guided-learning/learning-copy-files.md new file mode 100644 index 000000000..b25d46cf1 --- /dev/null +++ b/flow-docs/guided-learning/learning-copy-files.md @@ -0,0 +1,33 @@ +--- +title: Copying Files with Microsoft Flow | Microsoft Docs +description: Learn how to use Microsoft Flow to copy files between services. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' +featuredvideoid: liL0IWNcRcc +courseduration: 4m + +ms.service: flow +ms.devlang: na +ms.topic: get-started-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 11/22/2016 +ms.author: deonhe + +--- +# Copying files +Today, it's very common to use a **file storage service**, such as **OneDrive** or **Google Drive**. Have you ever needed to **copy files from one storage service to another**? Microsoft Flow makes it easy to automatically move and copy files between two services. + +## Creating flows that copy files +You can **use a template**, like in the video above, or you can create a flow **from scratch**. Different services have different details and parameters in their **actions**. In the video, we showed you copying a file from **OneDrive** to **OneDrive for Business**. Here's another example we created from scratch to copy from **OneDrive to DropBox**. + +![OneDrive to DropBox](./media/learning-copy-files/onedrive-to-dropbox.png). + +## Next steps +Next, we'll look at how you can **collect data** from services. + diff --git a/flow-docs/guided-learning/learning-data-loss-prevention.md b/flow-docs/guided-learning/learning-data-loss-prevention.md new file mode 100644 index 000000000..560d6f8d0 --- /dev/null +++ b/flow-docs/guided-learning/learning-data-loss-prevention.md @@ -0,0 +1,69 @@ +--- +title: Learn how to control which services can share data and prevent data loss | Microsoft Docs +description: Learn how to use data loss prevention polices to control which services can share data when automating tasks using Microsoft Flow. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' +featuredvideoid: vls4RPVP5xE +courseduration: 5m + +ms.service: flow +ms.devlang: na +ms.topic: get-started-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 01/24/2016 +ms.author: deonhe + +--- +# All about Data loss prevention (DLP) policies +With an expanding list of [services](https://flow.microsoft.com/services) available to build workflows with [Microsoft Flow](https://flow.microsoft.com), you may need to safeguard sensitive or critical business data stored in enterprise services such as SharePoint or Salesforce. You may find that your organization needs to create a policy which ensures that sensitive business data isn't published to consumer services like Twitter and Facebook. With Microsoft Flow, you can easily create **data loss prevention** (DLP) policies to tightly control which consumer services your business data can be shared with when your users create flows. + +## Terms you should get familiar with +| Term | Description | +| --- | --- | +| **DLP** |This is an abbreviation for data loss prevention. You'll create a DLP policy to manage the sharing of data between **services**. | +| **Services** |[Services](https://flow.microsoft.com/services) are applications such as Salesforce, SharePoint and Twitter. These services, and lots more, are used to create flows. | +| **Data group** |A logical grouping of services. You put services that are allowed to share data in the same data group. There are two data groups: **business data only** and the **no business data allowed** data group. | +| **Environment** |A DLP is applied to an [environment](../environments-overview-admin.md). An environment contains users. | +| **Users** |Users are members of your organization to whom a DLP policy will apply, based on their membership in an environment. | +| **Flow** |A [flow](learning-introducing-flow.md) is a workflow app that uses any combination of the available services. | + +## All about how DLP policies work +A DLP policy is simply a named rule that places each service into one of two mutually exclusive data groups. This rule is then applied to an environment. An environment is a logical grouping of users. Users are not allowed to create flows that share data between the services you placed in the different data groups. In other words, your users can only create flows that share data between the services within a **single** data group. No cross-data-group sharing is allowed. + +| **Data group name** | **Description of data group** | +| --- | --- | +| **Business data only** |All services in this group can share data among themselves. They cannot share data with the no business data allowed data group. | +| **No Business data allowed** |All services in this group can share data among themselves. They cannot share data with the business data only data group. | + +**Note**: Adding a service to one data group automatically removes it from the other data group. For example, if Twitter is currently located in the **business data only** data group, and you don't want to allow business data to be shared with Twitter, simply add the Twitter service to the **no business data allowed** data group. This will remove Twitter from the business data only data group. + +## Here's what you need to create a DLP +* Access to the Flow [admin center](https://admin.flow.microsoft.com) +* An account with the environment admin role +* An environment with users assigned to it + +## Create a DLP policy +Here's a quick overview of how to create a DLP policy: + +1. Give the policy a name +2. Select the environment to which the policy will apply +3. Add the services to one of the two data groups. Remember, only services located in a specific group can share data so any flow that's created to share data between services located in the two data groups will be automatically blocked when the maker saves it. + +There is also a more [detailed walk-through](../prevent-data-loss.md) on DLP policies available. + +## Examples +* If you were to create a policy that restricts flows to share business data only among SharePoint, Office 365 users, Office 365 Outlook, OneDrive for Business, Dynamics 365, SQL Server and Salesforce, it would look like this: + ![](./media/learning-data-loss-prevention/a-few-business-centric-services.png) +* Here's what it would look like if you decided to create a policy to not allow any members of a specific environment to create a flow that shares SharePoint data. Notice that SharePoint is the only service in the **business data only** data group: + ![business data only](./media/learning-data-loss-prevention/sharepoint-only-no-sharing-guided-learning.png) + +## Next steps +* [Learning - Flow parts](learning-flow-parts.md) +* [Learning - Introduction to Flow](learning-introducing-flow.md) + diff --git a/flow-docs/guided-learning/learning-environments.md b/flow-docs/guided-learning/learning-environments.md new file mode 100644 index 000000000..2bac1b146 --- /dev/null +++ b/flow-docs/guided-learning/learning-environments.md @@ -0,0 +1,73 @@ +--- +title: All about environments | Microsoft Docs +description: Learn about environments in Microsoft Flow +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' +featuredvideoid: wnScBLz7css +courseduration: 5m + +ms.service: flow +ms.devlang: na +ms.topic: get-started-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 11/24/2016 +ms.author: deonhe + +--- +# Learn all about Microsoft Flow environments +## What is an environment: +An environment is a virtual space used to store, manage and share apps, flows and business data within the [common data service](https://powerapps.microsoft.com/blog/powerapps-cds-ga/). Environments are geolocated so all apps and data stored within an environment's database are geolocated as well. + +## Terms you should get familiar with +| **Term** | **Description** | +| --- | --- | +| **Admin center** |The admin center is a [Web portal](https://admin.flow.microsoft.com) for managing all your environments and data loss prevention policies. | +| **Common data service** |The [common data service](https://powerapps.microsoft.com/blog/powerapps-cds-ga/) allows you to add data storage and modeling capabilities to your apps. | +| **Users** |These can be either environment admins or environment makers. | +| **Roles** |The two roles are environment admin or environment maker. | + +## Purposes for an environment +You can use environments to: + +* Separate apps that may have different roles, security requirements or users. +* Manage test and production environments. +* Separate apps, flows and business data based on the location of your teams or departments. + +## How to use environments +Environments can serve several different purposes, depending on your organizational needs, some examples are: + +* You can choose to build all your apps in a single environment +* You could choose to create an environment for different types of apps. For example, you could create an environment for test apps and another environment for production apps. +* You may also choose to create environments based on your organizational structure or even based on geographic location of your teams or departments. For example, if you have teams in Australia, Mexico and Europe, you could create an environment for each of these locations and manage them independently. + +**Note**: Environments are not visible to users so they don't need to be concerned with which environments they are in. An environments is a tool for admins to categorize, manage and share organizational apps. + +## What are roles +A person with access to an environment must be be assigned either the **environment admin** or the **environment maker** role. Environment admins can perform all administrative tasks on an environment. An environment maker can create resources in an existing environment. An individual can have both roles simultaneously. + +**Note**: All flow users will have access to a default environment when each user is given access to flow. Users can have access to multiple environments. + +## Create an environment +You create environments from the [flow admin center](https://admin.flow.microsoft.com) with just two steps: + +1. Name your environment. +2. Select a region where your environment will be hosted. +3. Optionally you can decide to create a database for your environment. You can create a database after you've created an environment, if you desire. +4. Optionally select who will have access to the environment. You can either restrict access or give everyone access to the environment. However, you can only give access to an environment if you opted to create a database for the environment. + +## Add users to an environment +After you create an environment, you can add users to either the environment admin role or the environment maker role. As with all other administrative tasks, you do this from the admin center. + +After you've created the environment and added users, you may also want to [create a data loss prevention (DLP) policy](../prevent-data-loss.md) to help manage the use of your business data. + +## Next steps +* [Learning - Flow parts](learning-flow-parts.md) +* [Learning - Introduction to Flow](learning-introducing-flow.md) +* [Introduction to data loss prevention](../prevent-data-loss.md) + diff --git a/flow-docs/guided-learning/learning-flow-parts.md b/flow-docs/guided-learning/learning-flow-parts.md new file mode 100644 index 000000000..f9465d650 --- /dev/null +++ b/flow-docs/guided-learning/learning-flow-parts.md @@ -0,0 +1,80 @@ +--- +title: Building blocks of Microsoft Flow | Microsoft Docs +description: See the different parts of Microsoft Flow and how they relate. Create new flows from templates and from scratch. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' +featuredvideoid: 9U8jMRO-Jv0 +courseduration: 9m + +ms.service: flow +ms.devlang: na +ms.topic: get-started-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 11/22/2016 +ms.author: deonhe + +--- +# Building blocks of Microsoft Flow +Now that you know the basics of Microsoft Flow, let's jump into **a tour of Microsoft Flow**. We'll quickly look at creating flows from templates and creating flows from scratch. + +## Check out the templates +At flow.microsoft.com, if you click the **Templates** link on the top of the page, you'll be greeted with several templates you can use right away with your web services. Explore these apps to **get a quick sense of what's possible** and how Microsoft Flow can help your business. + +![Flow templates](./media/learning-flow-parts/template-list.png) + +Each template flow is designed for a specific purpose, such as receiving notifications when something happens, copying a new file from one service to another, or tracking SharePoint approvals. These templates are **ready to be used**. You just have to **configure the templates** to add flows to your account. You do this by clicking **Use this template**, signing into the required services, and then completing the forms that follow. For example, this is a flow created from a template to send email notifications when a SharePoint list is modified. + +![Flow example template](./media/learning-flow-parts/example-template.png) + +There are hundreds of templates avaiable, and you can find them in **Microsoft Flow for web** or **Microsoft Flow for mobile**. + +![Flow web and mobile](./media/learning-flow-parts/flow-web-mobile.png) + +## Create a flow from scratch +You've seen how to create a flow using a template, but what if there's a task you want to automate but you can't find an appropriate template? You can **build a flow from scratch**. When you create a flow from scratch, you start from a blank canvas and add **services, triggers, and actions** to build your flow. + +![Blank flow](./media/learning-flow-parts/flow-from-blank.png) + +## Building blocks of a flow +Whether you're building a flow from a template or from scratch, your flows will contain **building blocks** that work together in certain ways, much like a flowchart. + +* **Services** are sources and destinations of data in a flow. +* **Triggers** are events that start a flow. +* **Actions** are tasks accomplished by the flow. +* **Conditions** allow for branching if/then logic in a flow. +* **Loops** are for iterating over actions more than once. + +### Services +Microsoft flow can connect to many different **applications and services**. Some example services are **Twitter**, **Github**, **Wunderlist**, **Office 365**, and **Google Docs**. These are the **sources** that provide data to Microsoft Flow as well as providing **destinations** for the work done by Microsoft Flow. You can view the entire list of services by clicking the **Services** link at the top of **flow.microsoft.com**. + +![Flow connectors](./media/learning-flow-parts/flow-connectors.png) + +### Triggers +Every flow starts with a **trigger**. There are many different types of triggers. Some of them are events in your connected web services, such as **when a certain user sends a tweet** or **a file is saved to your Dropbox account**. Other triggers are built-in, such as **running a flow on a recurring schedule** or **running a flow in response to a web request**. Finally, there are manual triggers, such as launching a flow by clicking a **button in Microsoft Flow or Microsoft PowerApps**. Triggers often **pass information about the event that happened** to actions in your flow. + +![Flow triggers](./media/learning-flow-parts/flow-triggers.png) + +### Actions +An **action** represents what you want to actually **happen** after the flow is triggered. This might be a **notification**, **copying data or files** from a source to a destination, or some other action, like **posting to social media** or **delaying for a period of time**. You can also use actions to **retrieve data from a service** to use with other actions. + +![Flow actions](./media/learning-flow-parts/flow-actions.png) + +### Conditions +**Conditions** allow you to add decision making to your flow. When a condition is evaluated, the flow branches into a **yes** path and a **no** path. For example, If you wanted to copy your vacation photos posted to **Dropbox** to **OneDrive**, you might create a condition after a **Dropbox new file** trigger that checks to see if the file name contains the word *vacation*, and if it does, copy the file to **OneDrive**, but otherwise chooses to do nothing. + +![Flow condition](./media/learning-flow-parts/flow-condition.png) + +### Loops +**Loops** allow you to execute an action more than once, like if an action needs to occur repeatedly, or once per item in a collection of items. + +## Next lesson +In this topic, we took a look around Microsoft Flow. We browsed **templates**, and we talked about **creating a flow from scratch**. We build flows by connecting to apps and services, **triggers** to launch the flow, **actions** to make something happen in the flow, **conditions** to make decisions, and **loops** to iterate in a flow. **The easiest way to learn about Microsoft Flow is to start with a template** and connect it to apps and services you already use. + +Next, we'll review what we've learned so far in this Guided Learning course. + diff --git a/flow-docs/guided-learning/learning-get-notifications.md b/flow-docs/guided-learning/learning-get-notifications.md new file mode 100644 index 000000000..799ac8a3f --- /dev/null +++ b/flow-docs/guided-learning/learning-get-notifications.md @@ -0,0 +1,40 @@ +--- +title: Getting Notifications with Microsoft Flow | Microsoft Docs +description: Learn how to get notifications on your mobile device with Microsoft Flow. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' +featuredvideoid: VEHKGLY0hq4 +courseduration: 6m + +ms.service: flow +ms.devlang: na +ms.topic: get-started-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 11/22/2016 +ms.author: deonhe + +--- +# Getting notifications +A common use of **Microsoft Flow** is to get a **notification** when something happens. Notifications can be **emails**, **text messages**, or **push notifications on your phone**. + +![From a template](./media/learning-get-notifications/template-notifications.png) + +## Required app +It's easy to create a flow that sends push notifications to your **mobile device**. You can create the flow in the **mobile app** or on the **flow.microsoft.com** web app, but you'll need the **mobile app** to receive push notifications. The Microsoft Flow mobile app is available for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows). + +If you are using an unsupported mobile device, consider using **SMS messages** (texts) to receive notifications instead of push notifications. + +## Creating flows that send notifications +You can **use a template**, like in the video above, or you can use the *Send a push notification* **action** when creating a flow **from scratch**. You can include **dynamic content** from other actions or triggers. + +![From scratch](./media/learning-get-notifications/notification-action.png) + +## Next lesson +Now that you've seen how to **receive notifications**, let's look at using Microsoft Flow to **copy files**. + diff --git a/flow-docs/guided-learning/learning-introducing-flow.md b/flow-docs/guided-learning/learning-introducing-flow.md new file mode 100644 index 000000000..7649aae36 --- /dev/null +++ b/flow-docs/guided-learning/learning-introducing-flow.md @@ -0,0 +1,58 @@ +--- +title: Introduction to Microsoft Flow | Microsoft Docs +description: Understand what Microsoft Flow is and what you can do with it. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' +featuredvideoid: kZs7lqgp4LU +courseduration: 5m + +ms.service: flow +ms.devlang: na +ms.topic: get-started-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 11/22/2016 +ms.author: deonhe + +--- +# Guided Learning for Microsoft Flow +Welcome to **Guided Learning** for Microsoft Flow. This self-paced online course explains Microsoft Flow in a sequential way, so you can build your knowledge from the ground up. + +This **Guided Learning** course currently has a Getting Started section, and we will add content over the next few weeks. The course is designed to provide guidance in understandable chunks, with a logical flow that helps you learn concepts, details, and examples. It includes lots of visuals to help you learn, too. + +If you're a **beginner** with Microsoft Flow, this course will get you going, and if you're a Microsoft Flow **veteran** this course will tie concepts together, and fill in the gaps. We hope you enjoy the course, and look forward to including more content in the future. + +This Guided Learning course is an ongoing **work in progress**. Please **let us know** how we're doing, and **other topics you want to see** in this course. + +## What is Microsoft Flow? +Microsoft Flow is a service that allows you to create **automated workflows** between your favorite applications and services to synchronize files, get notifications, collect data, and more. For example, you could log your favorite Twitter user's tweets to an Excel file, or get an email notification every time a new item is posted to a Sharepoint list. Or maybe you could add popular Twitter followers talking about your company as leads in Dynamics CRM and then send a follow-up email. + +![Flow conceptual sketch](./media/learning-introducing-flow/flow-conceptual.png) + +Microsoft Flow **isn't limited to applications on the internet**. You can include **on-premise data** in your flows, too, like from SharePoint and SQL Server. + +## What you can do with Microsoft Flow +The [list of applications and services you can use with Microsoft Flow](https://flow.microsoft.com/services/) is constantly expanding. Some examples of tasks you can automate with Microsoft Flow are: + +* Instantaneously respond to critical notifications or emails. +* Inform the whole team whenever a work item is updated. +* Capture, track, and follow-up with new sales leads. + +For more ideas, you should browse our list of **pre-made templates** (we'll talk more on that in the next section). Got a great idea for a flow you don't see in that list? No problem! You can create your own from scratch and, if you want, share it with the community! + +## Creating and administering flows +To create and administer flows, you can use the web app, or the Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows). Whichever platform you choose, it’s easy to diagnose issues, synchronize data, and more: + +* Turn flows on or off from wherever you are. +* See when a flow has failed. +* Review detailed run history reports. +* View and filter runs by notification type. + +## Next lesson +Now that you've gotten a taste of what Microsoft Flow is and what it can do, let's take a look at what makes a flow. + diff --git a/flow-docs/guided-learning/learning-manage-mobile.md b/flow-docs/guided-learning/learning-manage-mobile.md new file mode 100644 index 000000000..614721e94 --- /dev/null +++ b/flow-docs/guided-learning/learning-manage-mobile.md @@ -0,0 +1,63 @@ +--- +title: Manage Flows in the Microsoft Flow Mobile App | Microsoft Docs +description: Learn how to use the Microsoft Flow mobile app to manage your flows. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' +featuredvideoid: cKJ9twiM64o +courseduration: 6m + +ms.service: flow +ms.devlang: na +ms.topic: get-started-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 11/22/2016 +ms.author: deonhe + +--- +# Manage flows with the mobile app +The Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows) has much of the same functionality as the web portal. + +At the bottom of the screen is a **toolbar** where you'll find the app's functions. + +![Toolbar](./media/learning-manage-mobile/mobile-toolbar.png) + +## Activity +The **Activity** screen displays all the activity of your flows, including **run history** and **notifications**. + +![Activity screen](./media/learning-manage-mobile/flow-activity.png) + +Touching a **run history** entry will drill down to a **detailed log** where you can see which steps in the flow **succeeded or failed**. Clicking on a step in this log will show **debug information** that may be useful in **troubleshooting** a flow that isn't behaving as expected. + +![Activity details](./media/learning-manage-mobile/activity-details.png) + +## Browse +The **Browse** screen gives you an interface to **search** or **browse** for flow **templates**. Touching a template will present a dialog to complete the template and create a new flow. + +## Buttons +The **Buttons** screen is where you can trigger any flows that contain a **Button - Manually trigger a flow** trigger. + +## My flows +The **My flows** screen lists all your flows. Touching a flow takes you to the **Flow details** screen. + +![Flow details](./media/learning-manage-mobile/flow-details.png) + +The **Enable flow** toggle switch allows you disable/enable a flow without deleting it. + +Touching **Edit flow** takes you to the flow designer to edit your flow. + +Touching **Run history** displays the **run history** for the flow, same as on the **Activity** screen. + +Touching **Delete flow** deletes the flow. Once deleted, a flow cannot be recovered. + +## Account +The **Account** screen allows you to **sign out** of the mobile app, as well as change your current **environment**. You can also find information about the app and **support** options. + +## Next lesson +We've looked at two ways to **manage Microsoft Flow**. Next, we'll review what we learned in this section. + diff --git a/flow-docs/guided-learning/learning-manage-portal.md b/flow-docs/guided-learning/learning-manage-portal.md new file mode 100644 index 000000000..47208f1ba --- /dev/null +++ b/flow-docs/guided-learning/learning-manage-portal.md @@ -0,0 +1,52 @@ +--- +title: Manage Flows in the Microsoft Flow Portal | Microsoft Docs +description: Learn how to use the Microsoft Flow web portal to manage your flows. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' +featuredvideoid: Mg67quraCYs +courseduration: 3m + +ms.service: flow +ms.devlang: na +ms.topic: get-started-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 11/22/2016 +ms.author: deonhe + +--- +# Manage flows with the web portal +The **Microsoft Flow** web portal located at **flow.microsoft.com** provides everything you need to administer your flows in a **web browser**. The portal will work both with **desktop** and **mobile** browsers, but for the best **mobile experience**, you may want to use the **mobile app**. + +## Getting to the web portal +If you browse to **flow.microsoft.com** and sign in, you can view your list of flows by clicking **My flows** at the top of the page. + +![My flows](./media/learning-manage-portal/my-flows.png) + +## Managing flows +To the right of your flow's name and last modified time, you'll see some a **toggle switch** and some **icons**. + +![Flow options](./media/learning-manage-portal/flow-options.png) + +The **toggle switch** allows you disable/enable a flow without deleting it. + +Clicking the **pencil icon** takes you to the flow designer to edit your flow. + +The **trash icon** deletes the flow. Once deleted, a flow cannot be recovered. + +Finally, the **information icon** displays the **run history** for the flow. In the **run history**, you will find a log of **every time the flow has run**, as well as whether it was **successful**. + +![Flow history](./media/learning-manage-portal/flow-history.png) + +Clicking a history item will drill down to a **detailed log** where you can see which steps in the flow **succeeded or failed**. Clicking on a step in this log will show **debug information** that may be useful in **troubleshooting** a flow that isn't behaving as expected. + +![Flow log](./media/learning-manage-portal/flow-log.png) + +## Next lesson +Now that we've learned about the **Microsoft Flow web portal**, let's see how we can manage our flows with the **mobile app**. + diff --git a/flow-docs/guided-learning/learning-review-section-four.md b/flow-docs/guided-learning/learning-review-section-four.md new file mode 100644 index 000000000..8a093ee11 --- /dev/null +++ b/flow-docs/guided-learning/learning-review-section-four.md @@ -0,0 +1,33 @@ +--- +title: Review this section | Microsoft Docs +description: Review what you learned in this section of the Guided Learning for Microsoft Flow. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' +featuredvideoid: '' +courseduration: 3m + +ms.service: flow +ms.devlang: na +ms.topic: get-started-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 11/22/2016 +ms.author: deonhe + +--- +# Review the fourth section +Let's review what we've learned in this section. + +**Microsoft Flow** has several features for **enterprise users**: + +* An **environment** is a virtual space used to store, manage and share apps, flows and business data within the common data service. Environments are geolocated so all apps and data stored within an environment's database are geolocated as well. +* With Microsoft Flow, you can easily create **data loss prevention** (DLP) policies to tightly control which consumer services your business data can be shared with when your users create flows. + +## What's next? +Congratulations! You have finished Microsoft Flow Guided Learning! For more detail on any of the topics you learned, see the in-depth [Microsoft Flow documentation](https://aka.ms/q2613b). + diff --git a/flow-docs/guided-learning/learning-review-section-one.md b/flow-docs/guided-learning/learning-review-section-one.md new file mode 100644 index 000000000..f6acfe9b8 --- /dev/null +++ b/flow-docs/guided-learning/learning-review-section-one.md @@ -0,0 +1,47 @@ +--- +title: Review this section | Microsoft Docs +description: Review what you learned in this introduction to Microsoft Flow. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' +featuredvideoid: '' +courseduration: 3m + +ms.service: flow +ms.devlang: na +ms.topic: get-started-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 11/22/2016 +ms.author: deonhe + +--- +# Review the first section +Let's do a quick review of what you learned in the first section. + +**Microsoft Flow** is a service to create automated workflows between your favorite **web applications and services**. You can also connect to **on-premise data sources**. + +**Flow** provides many **pre-built templates** to get up and running quickly, or you **create your own flows from scratch**. + +There are several building blocks to **Microsoft Flow**, including **services**, **triggers**, **actions**, and **conditions**. In combination with more advanced components, like **loops**, you can create robust, intelligent automation that connects your various data sources and destinations. + +The easiest way to get started with Flow is to **use the templates**. Once you're comfortable with templates, you should also **play around with some blank flows**. + +## What's next? +Congratulations! You have finished the first section of Microsoft Flow Guided Learning. Regardless of how much experience you began with, we hope you now have a very clear picture of what Microsoft Flow is and how you can start creating flows. + +As you continue learning about Microsoft Flow, here are some resources you should find useful on your journey. + +## Community and documentation +* Dig deeper with the [Microsoft Flow documentation](https://aka.ms/q2613b) +* Stay current with the [Microsoft Flow blog](https://flow.microsoft.com/blog/) +* Join the [Microsoft Flow community](https://powerusers.microsoft.com/t5/Microsoft-Flow-Community/ct-p/FlowCommunity) +* Improve Microsoft Flow by submitting an [idea](https://powerusers.microsoft.com/t5/Flow-Ideas/idb-p/FlowIdeas) + +## Get the apps +Install the Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows). + diff --git a/flow-docs/guided-learning/learning-review-section-three.md b/flow-docs/guided-learning/learning-review-section-three.md new file mode 100644 index 000000000..318c4679d --- /dev/null +++ b/flow-docs/guided-learning/learning-review-section-three.md @@ -0,0 +1,33 @@ +--- +title: Review this section | Microsoft Docs +description: Review what you learned in this section of the Guided Learning for Microsoft Flow. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' +featuredvideoid: '' +courseduration: 3m + +ms.service: flow +ms.devlang: na +ms.topic: get-started-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 11/22/2016 +ms.author: deonhe + +--- +# Review the third section +Let's review what we've learned in this section. + +You can administer **Microsoft Flow** through two interfaces: + +* The **web portal** located at **flow.microsoft.com** provides a complete management experience, including the ability to create flows from **scratch** and from **templates**, view and troubleshoot **run history**, and administer **enterprise features**, such as **environments** and **data loss prevention**. +* The Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows) contains similar functionality. Additionally, the Microsoft Flow mobile app receives **push notifications** and has the ability to use **buttons** to manually trigger a flow. + +## What's next? +Congratulations! You have finished the third section of Microsoft Flow Guided Learning. Next we'll look at enterprise features of Microsoft Flow. + diff --git a/flow-docs/guided-learning/learning-review-section-two.md b/flow-docs/guided-learning/learning-review-section-two.md new file mode 100644 index 000000000..40664f4f7 --- /dev/null +++ b/flow-docs/guided-learning/learning-review-section-two.md @@ -0,0 +1,35 @@ +--- +title: Review this section | Microsoft Docs +description: Review what you learned in this section of the Guided Learning for Microsoft Flow. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' +featuredvideoid: '' +courseduration: 3m + +ms.service: flow +ms.devlang: na +ms.topic: get-started-article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 11/22/2016 +ms.author: deonhe + +--- +# Review the second section +Let's review what we've learned. + +**Microsoft Flow** makes it easy to: + +* Get **push notifications** on our mobile devices in response to events on your favorite web services. +* **Copy and move files** between online storage services. +* **Collect data** and telemetry from services. +* Create an **approval workflow with SharePoint**. + +## What's next? +Congratulations! You have finished the second section of Microsoft Flow Guided Learning. Next we'll look at managing flows in the web portal and the mobile apps. + diff --git a/flow-docs/guided-learning/media/learning-approvals/approval-template.png b/flow-docs/guided-learning/media/learning-approvals/approval-template.png new file mode 100644 index 000000000..178558446 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-approvals/approval-template.png differ diff --git a/flow-docs/guided-learning/media/learning-approvals/if-no.png b/flow-docs/guided-learning/media/learning-approvals/if-no.png new file mode 100644 index 000000000..cef7f942e Binary files /dev/null and b/flow-docs/guided-learning/media/learning-approvals/if-no.png differ diff --git a/flow-docs/guided-learning/media/learning-approvals/new-flow.png b/flow-docs/guided-learning/media/learning-approvals/new-flow.png new file mode 100644 index 000000000..17c1d8b9d Binary files /dev/null and b/flow-docs/guided-learning/media/learning-approvals/new-flow.png differ diff --git a/flow-docs/guided-learning/media/learning-approvals/update-item.png b/flow-docs/guided-learning/media/learning-approvals/update-item.png new file mode 100644 index 000000000..7a5cce4ff Binary files /dev/null and b/flow-docs/guided-learning/media/learning-approvals/update-item.png differ diff --git a/flow-docs/guided-learning/media/learning-copy-files/onedrive-to-dropbox.png b/flow-docs/guided-learning/media/learning-copy-files/onedrive-to-dropbox.png new file mode 100644 index 000000000..75d1fa0f9 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-copy-files/onedrive-to-dropbox.png differ diff --git a/flow-docs/guided-learning/media/learning-data-loss-prevention/a-few-business-centric-services.png b/flow-docs/guided-learning/media/learning-data-loss-prevention/a-few-business-centric-services.png new file mode 100644 index 000000000..f0aa54b6a Binary files /dev/null and b/flow-docs/guided-learning/media/learning-data-loss-prevention/a-few-business-centric-services.png differ diff --git a/flow-docs/guided-learning/media/learning-data-loss-prevention/sharepoint-only-no-sharing-guided-learning.png b/flow-docs/guided-learning/media/learning-data-loss-prevention/sharepoint-only-no-sharing-guided-learning.png new file mode 100644 index 000000000..f91f85a54 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-data-loss-prevention/sharepoint-only-no-sharing-guided-learning.png differ diff --git a/flow-docs/guided-learning/media/learning-flow-parts/example-template.png b/flow-docs/guided-learning/media/learning-flow-parts/example-template.png new file mode 100644 index 000000000..3b56eb742 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-flow-parts/example-template.png differ diff --git a/flow-docs/guided-learning/media/learning-flow-parts/flow-actions.png b/flow-docs/guided-learning/media/learning-flow-parts/flow-actions.png new file mode 100644 index 000000000..7a44fd846 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-flow-parts/flow-actions.png differ diff --git a/flow-docs/guided-learning/media/learning-flow-parts/flow-condition.png b/flow-docs/guided-learning/media/learning-flow-parts/flow-condition.png new file mode 100644 index 000000000..2f1ac09c0 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-flow-parts/flow-condition.png differ diff --git a/flow-docs/guided-learning/media/learning-flow-parts/flow-connectors.png b/flow-docs/guided-learning/media/learning-flow-parts/flow-connectors.png new file mode 100644 index 000000000..f356e7503 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-flow-parts/flow-connectors.png differ diff --git a/flow-docs/guided-learning/media/learning-flow-parts/flow-from-blank.png b/flow-docs/guided-learning/media/learning-flow-parts/flow-from-blank.png new file mode 100644 index 000000000..f0792df32 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-flow-parts/flow-from-blank.png differ diff --git a/flow-docs/guided-learning/media/learning-flow-parts/flow-triggers.png b/flow-docs/guided-learning/media/learning-flow-parts/flow-triggers.png new file mode 100644 index 000000000..e891b4cf7 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-flow-parts/flow-triggers.png differ diff --git a/flow-docs/guided-learning/media/learning-flow-parts/flow-web-mobile.png b/flow-docs/guided-learning/media/learning-flow-parts/flow-web-mobile.png new file mode 100644 index 000000000..d30016e43 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-flow-parts/flow-web-mobile.png differ diff --git a/flow-docs/guided-learning/media/learning-flow-parts/template-list.png b/flow-docs/guided-learning/media/learning-flow-parts/template-list.png new file mode 100644 index 000000000..e98a1a824 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-flow-parts/template-list.png differ diff --git a/flow-docs/guided-learning/media/learning-get-notifications/notification-action.png b/flow-docs/guided-learning/media/learning-get-notifications/notification-action.png new file mode 100644 index 000000000..5146d0311 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-get-notifications/notification-action.png differ diff --git a/flow-docs/guided-learning/media/learning-get-notifications/template-notifications.png b/flow-docs/guided-learning/media/learning-get-notifications/template-notifications.png new file mode 100644 index 000000000..102c5e900 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-get-notifications/template-notifications.png differ diff --git a/flow-docs/guided-learning/media/learning-introducing-flow/flow-conceptual.png b/flow-docs/guided-learning/media/learning-introducing-flow/flow-conceptual.png new file mode 100644 index 000000000..39614c0c0 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-introducing-flow/flow-conceptual.png differ diff --git a/flow-docs/guided-learning/media/learning-manage-mobile/activity-details.png b/flow-docs/guided-learning/media/learning-manage-mobile/activity-details.png new file mode 100644 index 000000000..d75e9a4c7 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-manage-mobile/activity-details.png differ diff --git a/flow-docs/guided-learning/media/learning-manage-mobile/browse.png b/flow-docs/guided-learning/media/learning-manage-mobile/browse.png new file mode 100644 index 000000000..ce1804008 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-manage-mobile/browse.png differ diff --git a/flow-docs/guided-learning/media/learning-manage-mobile/flow-activity.png b/flow-docs/guided-learning/media/learning-manage-mobile/flow-activity.png new file mode 100644 index 000000000..eb792ee40 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-manage-mobile/flow-activity.png differ diff --git a/flow-docs/guided-learning/media/learning-manage-mobile/flow-details.png b/flow-docs/guided-learning/media/learning-manage-mobile/flow-details.png new file mode 100644 index 000000000..a781d39c4 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-manage-mobile/flow-details.png differ diff --git a/flow-docs/guided-learning/media/learning-manage-mobile/mobile-toolbar.png b/flow-docs/guided-learning/media/learning-manage-mobile/mobile-toolbar.png new file mode 100644 index 000000000..ea53a5330 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-manage-mobile/mobile-toolbar.png differ diff --git a/flow-docs/guided-learning/media/learning-manage-portal/flow-history.png b/flow-docs/guided-learning/media/learning-manage-portal/flow-history.png new file mode 100644 index 000000000..1d16e203c Binary files /dev/null and b/flow-docs/guided-learning/media/learning-manage-portal/flow-history.png differ diff --git a/flow-docs/guided-learning/media/learning-manage-portal/flow-log.png b/flow-docs/guided-learning/media/learning-manage-portal/flow-log.png new file mode 100644 index 000000000..c3261c1fa Binary files /dev/null and b/flow-docs/guided-learning/media/learning-manage-portal/flow-log.png differ diff --git a/flow-docs/guided-learning/media/learning-manage-portal/flow-options.png b/flow-docs/guided-learning/media/learning-manage-portal/flow-options.png new file mode 100644 index 000000000..445aa13d7 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-manage-portal/flow-options.png differ diff --git a/flow-docs/guided-learning/media/learning-manage-portal/my-flows.png b/flow-docs/guided-learning/media/learning-manage-portal/my-flows.png new file mode 100644 index 000000000..867e251a6 Binary files /dev/null and b/flow-docs/guided-learning/media/learning-manage-portal/my-flows.png differ diff --git a/flow-docs/includes/add-action-to-send-email-when-vacation-approved.md b/flow-docs/includes/add-action-to-send-email-when-vacation-approved.md new file mode 100644 index 000000000..9785021c2 --- /dev/null +++ b/flow-docs/includes/add-action-to-send-email-when-vacation-approved.md @@ -0,0 +1,17 @@ +1. Select **Add an action** on the **IF YES, DO NOTHING** branch of the condition. + + ![add new step](media/modern-approvals/add-action-after-condition.png) +2. Enter **send email** into the search box on the **Choose an action** card. + + ![search for email actions](media/modern-approvals/search-send-email-yes.png) +3. Select the **Office 365 Outlook - Send an email** action. + + ![select send an email action](media/modern-approvals/select-send-email-yes.png) +4. Configure the email card to suit your needs. + + Note: **To**, **Subject**, and **Body** are required. + + This card is a template for the email that is sent when the status of the vacation request changes. + + Note: In the **Body** box on the **Send an email** card, use the **Comments** token from the **Approvals - Start an approval** action. + diff --git a/flow-docs/includes/add-action-to-send-email-when-vacation-rejected.md b/flow-docs/includes/add-action-to-send-email-when-vacation-rejected.md new file mode 100644 index 000000000..993f86b0f --- /dev/null +++ b/flow-docs/includes/add-action-to-send-email-when-vacation-rejected.md @@ -0,0 +1,11 @@ +1. Select **Add an action** on the **IF NO, DO NOTHING** branch. +2. Enter **Send email** into the search box of the **Choose an action** card. + + ![search for email action](media/modern-approvals/search-send-email-no.png) +3. Select the **Office 365 Outlook - Send an email** action. + + ![select the send email action](media/modern-approvals/select-send-email-no.png) +4. Configure the email card to suit your needs. + + This card represents the template for the email that's sent when the status of vacation requests change. + diff --git a/flow-docs/includes/add-action-to-update-sharepoint-with-approval.md b/flow-docs/includes/add-action-to-update-sharepoint-with-approval.md new file mode 100644 index 000000000..1e687f9a8 --- /dev/null +++ b/flow-docs/includes/add-action-to-update-sharepoint-with-approval.md @@ -0,0 +1,9 @@ +1. Select **Add an action** from the **IF YES** branch. +2. Enter **update** into the search box on the **Choose an action** card. + + ![search for update action](media/modern-approvals/search-update-item.png) +3. Select the **SharePoint - Update item** action. + + ![select update item](media/modern-approvals/select-update-item-yes.png) +4. Configure the **Update item** card to suit your needs. + diff --git a/flow-docs/includes/add-action-to-update-sharepoint-with-rejection.md b/flow-docs/includes/add-action-to-update-sharepoint-with-rejection.md new file mode 100644 index 000000000..de5c666e4 --- /dev/null +++ b/flow-docs/includes/add-action-to-update-sharepoint-with-rejection.md @@ -0,0 +1,11 @@ +1. Select **Add an action**. + + ![add action](media/modern-approvals/add-update-item-action.png) +2. Enter **update item** into the search box on the **Choose an action** card. + + ![search for update action](media/modern-approvals/search-update-item-rejected.png) +3. Select the **SharePoint - Update item** action. + + ![select update item](media/modern-approvals/select-update-item-no.png) +4. Configure the card to suit your needs. + diff --git a/flow-docs/includes/add-an-approval-action.md b/flow-docs/includes/add-an-approval-action.md new file mode 100644 index 000000000..64984211f --- /dev/null +++ b/flow-docs/includes/add-an-approval-action.md @@ -0,0 +1,18 @@ +1. Select **Edit flow**. + + ![edit flow](media/modern-approvals/edit-flow.png) +2. Select **New step**, and then select **Add an action**. + + ![new step](media/modern-approvals/select-sharepoint-add-action.png) +3. Enter **approval** into the **Choose an action** search box. + + ![search for approval](media/modern-approvals/search-approvals.png) +4. Select the **Approvals - Start an approval** action. + + ![select the approvals action](media/modern-approvals/select-approvals.png) +5. Configure the **Start an approval** card to suit your needs. + + Note: **Title** and **Assigned To** are required. + + ![configure the approval](media/modern-approvals/provide-approval-config-info.png) + diff --git a/flow-docs/includes/add-approval-condition-response.md b/flow-docs/includes/add-approval-condition-response.md new file mode 100644 index 000000000..e9c429b57 --- /dev/null +++ b/flow-docs/includes/add-approval-condition-response.md @@ -0,0 +1,17 @@ +1. Select **New step**, and then select **Add a condition**. + + ![add condition](media/modern-approvals/add-response-condition.png) +2. Select the **Object Name** box, and then enter **response** into the search box on the **Add dynamic content from the apps and services used in this flow** card. +3. Select the **Response** token. + + ![select response token](media/modern-approvals/search-for-response.png) +4. Select the **Value** box, and then enter **Approve** into the box. + + > [!NOTE] + > The valid responses to the **Approvals - Start an approval** action are "Approve" and "Reject". These responses are case-sensitive. + > + > +5. Your **Condition** card should now resemble this image: + + ![](media/modern-approvals/response-condition-test.png) + diff --git a/flow-docs/includes/add-get-manager-action.md b/flow-docs/includes/add-get-manager-action.md new file mode 100644 index 000000000..d7bd44cf6 --- /dev/null +++ b/flow-docs/includes/add-get-manager-action.md @@ -0,0 +1,13 @@ +1. Select **New step**, and then select **Add an action**. + + ![new step](media/modern-approvals/select-sharepoint-add-action.png) +2. Enter **get manager** into the **Choose an action** search box. +3. Find, and then select the **Office 365 Users - Get manager** action. + + ![select office users](media/modern-approvals/add-get-manager-action.png) +4. Insert the **Created By Email** token into the **User** box on the **Get manager** card. + + This action gets the manager for the person who created the vacation request in SharePoint. + + ![get manager config](media/modern-approvals/get-manager-card.png) + diff --git a/flow-docs/includes/add-get-profile-action.md b/flow-docs/includes/add-get-profile-action.md new file mode 100644 index 000000000..a0185a220 --- /dev/null +++ b/flow-docs/includes/add-get-profile-action.md @@ -0,0 +1,11 @@ +1. Select **New step**, and then select **Add an action**. + + ![new step](media/modern-approvals/select-sharepoint-add-action.png) +2. Enter **get manager** into the **Choose an action** search box. + + ![search for profile](media/modern-approvals/search-for-profile.png) +3. Find, and then select the **Office 365 Users - Get manager** action. + + ![select office users](media/modern-approvals/select-my-profile.png) +4. Provide a name for your flow, and then select **Create flow** to save the work we've done so far. + diff --git a/flow-docs/includes/add-mark-as-read-action.md b/flow-docs/includes/add-mark-as-read-action.md new file mode 100644 index 000000000..aba5850fa --- /dev/null +++ b/flow-docs/includes/add-mark-as-read-action.md @@ -0,0 +1,10 @@ +1. Select **New step** > **Add an action**. +2. Search for "read", and then select **Office 365 Outlook - Mark as read** from the list of actions. + + ![mark as read](media/email-triggers/email-triggers-5.png) +3. Add the **MessageId** token into the **Message Id** box on the **Mark as read** card. + + If the **Message Id** token isn't visible, search for it by entering **Message Id** in the search box. + + ![message id](media/email-triggers/email-triggers-6.png) + diff --git a/flow-docs/includes/add-mobile-notification-action.md b/flow-docs/includes/add-mobile-notification-action.md new file mode 100644 index 000000000..4ee0893cd --- /dev/null +++ b/flow-docs/includes/add-mobile-notification-action.md @@ -0,0 +1,5 @@ +1. Select **New step** > **Add an action**. +2. Search for "notification", and then select **Notifications - Send me a mobile notification** from the list of actions. + + ![notification](./media/email-triggers/email-triggers-sender-3.png) + diff --git a/flow-docs/includes/add-trigger-when-sharepoint-item-created.md b/flow-docs/includes/add-trigger-when-sharepoint-item-created.md new file mode 100644 index 000000000..c49cf976a --- /dev/null +++ b/flow-docs/includes/add-trigger-when-sharepoint-item-created.md @@ -0,0 +1,8 @@ +1. Enter **SharePoint** into the search box. + + ![search for sharepoint triggers](media/modern-approvals/search-for-sharepoint.png) +2. Find, and then select the **SharePoint - When a new item is created** trigger. + + ![select sharepoint trigger](media/modern-approvals/select-sharepoint-new-item.png) +3. Select the **Site Address** and the **List Name** for the SharePoint list that your flow monitors for new items. + diff --git a/flow-docs/includes/approve-request-from-different-locations.md b/flow-docs/includes/approve-request-from-different-locations.md new file mode 100644 index 000000000..a4b28fb51 --- /dev/null +++ b/flow-docs/includes/approve-request-from-different-locations.md @@ -0,0 +1,39 @@ +If you're an approver in an approval flow, you receive an email whenever someone creates a request. The approval request is also sent to the approvals center. You can then approve or reject requests from the email, the approvals center, or the Microsoft Flow app. + +To approve a request: + +### From email +1. Select **Approve** from the email you receive when an item is added to the SharePoint Online list. + + Note: If you're using an Android or iOS mobile phone with the Microsoft Flow app installed, the Microsoft Flow app launches, otherwise, the approvals center opens in your browser. + + ![request email](media/modern-approvals/email-approval-request.png) +2. Enter a comment, and then select the **Confirm** button. + + ![enter comment](media/modern-approvals/request-in-approval-center.png) + +### From the approvals center +1. Sign into [Microsoft Flow](https://flow.microsoft.com). + + ![sign in](media/modern-approvals/sign-in.png) +2. Select the **Approvals** tab. + + ![create from blank](media/modern-approvals/approvals-tab.png) +3. Select **Approve** on the request you want to approve. + + ![create from blank](media/modern-approvals/approvals-cards.png) +4. Add a note, and then select the **Confirm** button. + + ![add note then confirm](media/modern-approvals/approval-selection-card.png) + +### From the Microsoft Flow app +1. On your mobile phone with the Microsoft Flow app installed, select **Approve** from the request approval email. +2. Select **Confirm** in the upper right corner of the screen. + + ![select confirm](media/modern-approvals/mobile-approval.png) +3. The success page shows, indicating that your approval has been recorded. + + ![success page](media/modern-approvals/mobile-approval-confirmation.png) + +Note: The screens on Android and iOS may differ slightly, however, the functionality is the same on both devices. + diff --git a/flow-docs/includes/media/email-triggers/email-triggers-1.png b/flow-docs/includes/media/email-triggers/email-triggers-1.png new file mode 100644 index 000000000..ee3054383 Binary files /dev/null and b/flow-docs/includes/media/email-triggers/email-triggers-1.png differ diff --git a/flow-docs/includes/media/email-triggers/email-triggers-5.png b/flow-docs/includes/media/email-triggers/email-triggers-5.png new file mode 100644 index 000000000..783c35238 Binary files /dev/null and b/flow-docs/includes/media/email-triggers/email-triggers-5.png differ diff --git a/flow-docs/includes/media/email-triggers/email-triggers-6.png b/flow-docs/includes/media/email-triggers/email-triggers-6.png new file mode 100644 index 000000000..eee4a8832 Binary files /dev/null and b/flow-docs/includes/media/email-triggers/email-triggers-6.png differ diff --git a/flow-docs/includes/media/email-triggers/email-triggers-create-blank.png b/flow-docs/includes/media/email-triggers/email-triggers-create-blank.png new file mode 100644 index 000000000..0ff6e5427 Binary files /dev/null and b/flow-docs/includes/media/email-triggers/email-triggers-create-blank.png differ diff --git a/flow-docs/includes/media/email-triggers/email-triggers-sender-3.png b/flow-docs/includes/media/email-triggers/email-triggers-sender-3.png new file mode 100644 index 000000000..2434c596e Binary files /dev/null and b/flow-docs/includes/media/email-triggers/email-triggers-sender-3.png differ diff --git a/flow-docs/includes/media/email-triggers/email-triggers-subject-folder.png b/flow-docs/includes/media/email-triggers/email-triggers-subject-folder.png new file mode 100644 index 000000000..4a6006f2f Binary files /dev/null and b/flow-docs/includes/media/email-triggers/email-triggers-subject-folder.png differ diff --git a/flow-docs/includes/media/modern-approvals/add-action-after-condition.png b/flow-docs/includes/media/modern-approvals/add-action-after-condition.png new file mode 100644 index 000000000..297e8582b Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/add-action-after-condition.png differ diff --git a/flow-docs/includes/media/modern-approvals/add-get-manager-action.png b/flow-docs/includes/media/modern-approvals/add-get-manager-action.png new file mode 100644 index 000000000..28fca3fe2 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/add-get-manager-action.png differ diff --git a/flow-docs/includes/media/modern-approvals/add-response-condition.png b/flow-docs/includes/media/modern-approvals/add-response-condition.png new file mode 100644 index 000000000..c7d51626b Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/add-response-condition.png differ diff --git a/flow-docs/includes/media/modern-approvals/add-update-item-action.png b/flow-docs/includes/media/modern-approvals/add-update-item-action.png new file mode 100644 index 000000000..13ae3957d Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/add-update-item-action.png differ diff --git a/flow-docs/includes/media/modern-approvals/approval-selection-card.png b/flow-docs/includes/media/modern-approvals/approval-selection-card.png new file mode 100644 index 000000000..dc6616d19 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/approval-selection-card.png differ diff --git a/flow-docs/includes/media/modern-approvals/approvals-cards.png b/flow-docs/includes/media/modern-approvals/approvals-cards.png new file mode 100644 index 000000000..a6023fbae Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/approvals-cards.png differ diff --git a/flow-docs/includes/media/modern-approvals/approvals-tab.png b/flow-docs/includes/media/modern-approvals/approvals-tab.png new file mode 100644 index 000000000..412e91ccb Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/approvals-tab.png differ diff --git a/flow-docs/includes/media/modern-approvals/blank-template.png b/flow-docs/includes/media/modern-approvals/blank-template.png new file mode 100644 index 000000000..42979908d Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/blank-template.png differ diff --git a/flow-docs/includes/media/modern-approvals/completed-flow.png b/flow-docs/includes/media/modern-approvals/completed-flow.png new file mode 100644 index 000000000..cd97efbad Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/completed-flow.png differ diff --git a/flow-docs/includes/media/modern-approvals/configure-approved-email.png b/flow-docs/includes/media/modern-approvals/configure-approved-email.png new file mode 100644 index 000000000..d4732015d Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/configure-approved-email.png differ diff --git a/flow-docs/includes/media/modern-approvals/configure-rejected-email.png b/flow-docs/includes/media/modern-approvals/configure-rejected-email.png new file mode 100644 index 000000000..c1bcb1845 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/configure-rejected-email.png differ diff --git a/flow-docs/includes/media/modern-approvals/configure-update-item-no.png b/flow-docs/includes/media/modern-approvals/configure-update-item-no.png new file mode 100644 index 000000000..7d7906829 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/configure-update-item-no.png differ diff --git a/flow-docs/includes/media/modern-approvals/configure-update-item.png b/flow-docs/includes/media/modern-approvals/configure-update-item.png new file mode 100644 index 000000000..80bc0621e Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/configure-update-item.png differ diff --git a/flow-docs/includes/media/modern-approvals/create-flow-overview.png b/flow-docs/includes/media/modern-approvals/create-flow-overview.png new file mode 100644 index 000000000..8a0779316 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/create-flow-overview.png differ diff --git a/flow-docs/includes/media/modern-approvals/edit-flow.png b/flow-docs/includes/media/modern-approvals/edit-flow.png new file mode 100644 index 000000000..d42e6253c Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/edit-flow.png differ diff --git a/flow-docs/includes/media/modern-approvals/email-approval-request.png b/flow-docs/includes/media/modern-approvals/email-approval-request.png new file mode 100644 index 000000000..c907e8560 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/email-approval-request.png differ diff --git a/flow-docs/includes/media/modern-approvals/get-manager-card.png b/flow-docs/includes/media/modern-approvals/get-manager-card.png new file mode 100644 index 000000000..9f2372c2c Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/get-manager-card.png differ diff --git a/flow-docs/includes/media/modern-approvals/get-pre-approver-manager.png b/flow-docs/includes/media/modern-approvals/get-pre-approver-manager.png new file mode 100644 index 000000000..e5f1df56e Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/get-pre-approver-manager.png differ diff --git a/flow-docs/includes/media/modern-approvals/mobile-approval-confirmation.png b/flow-docs/includes/media/modern-approvals/mobile-approval-confirmation.png new file mode 100644 index 000000000..ddc48f9c1 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/mobile-approval-confirmation.png differ diff --git a/flow-docs/includes/media/modern-approvals/mobile-approval.png b/flow-docs/includes/media/modern-approvals/mobile-approval.png new file mode 100644 index 000000000..4a16dd55f Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/mobile-approval.png differ diff --git a/flow-docs/includes/media/modern-approvals/pending-requests.png b/flow-docs/includes/media/modern-approvals/pending-requests.png new file mode 100644 index 000000000..43bc5a5f9 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/pending-requests.png differ diff --git a/flow-docs/includes/media/modern-approvals/provide-approval-config-info.png b/flow-docs/includes/media/modern-approvals/provide-approval-config-info.png new file mode 100644 index 000000000..75d3bdedd Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/provide-approval-config-info.png differ diff --git a/flow-docs/includes/media/modern-approvals/request-in-approval-center.png b/flow-docs/includes/media/modern-approvals/request-in-approval-center.png new file mode 100644 index 000000000..292529241 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/request-in-approval-center.png differ diff --git a/flow-docs/includes/media/modern-approvals/response-condition-test.png b/flow-docs/includes/media/modern-approvals/response-condition-test.png new file mode 100644 index 000000000..eb4df2eca Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/response-condition-test.png differ diff --git a/flow-docs/includes/media/modern-approvals/save.png b/flow-docs/includes/media/modern-approvals/save.png new file mode 100644 index 000000000..2f123746e Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/save.png differ diff --git a/flow-docs/includes/media/modern-approvals/search-approvals.png b/flow-docs/includes/media/modern-approvals/search-approvals.png new file mode 100644 index 000000000..e5d468940 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/search-approvals.png differ diff --git a/flow-docs/includes/media/modern-approvals/search-for-profile.png b/flow-docs/includes/media/modern-approvals/search-for-profile.png new file mode 100644 index 000000000..25652aa50 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/search-for-profile.png differ diff --git a/flow-docs/includes/media/modern-approvals/search-for-response.png b/flow-docs/includes/media/modern-approvals/search-for-response.png new file mode 100644 index 000000000..ff3c774df Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/search-for-response.png differ diff --git a/flow-docs/includes/media/modern-approvals/search-for-sharepoint.png b/flow-docs/includes/media/modern-approvals/search-for-sharepoint.png new file mode 100644 index 000000000..0db7ff7c6 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/search-for-sharepoint.png differ diff --git a/flow-docs/includes/media/modern-approvals/search-send-email-no.png b/flow-docs/includes/media/modern-approvals/search-send-email-no.png new file mode 100644 index 000000000..f4ffd2c37 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/search-send-email-no.png differ diff --git a/flow-docs/includes/media/modern-approvals/search-send-email-yes.png b/flow-docs/includes/media/modern-approvals/search-send-email-yes.png new file mode 100644 index 000000000..2387151dd Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/search-send-email-yes.png differ diff --git a/flow-docs/includes/media/modern-approvals/search-update-item-rejected.png b/flow-docs/includes/media/modern-approvals/search-update-item-rejected.png new file mode 100644 index 000000000..935584b88 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/search-update-item-rejected.png differ diff --git a/flow-docs/includes/media/modern-approvals/search-update-item.png b/flow-docs/includes/media/modern-approvals/search-update-item.png new file mode 100644 index 000000000..9fdaa4235 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/search-update-item.png differ diff --git a/flow-docs/includes/media/modern-approvals/select-approvals.png b/flow-docs/includes/media/modern-approvals/select-approvals.png new file mode 100644 index 000000000..bbb10f756 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/select-approvals.png differ diff --git a/flow-docs/includes/media/modern-approvals/select-my-flows.png b/flow-docs/includes/media/modern-approvals/select-my-flows.png new file mode 100644 index 000000000..1ff58a282 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/select-my-flows.png differ diff --git a/flow-docs/includes/media/modern-approvals/select-my-profile.png b/flow-docs/includes/media/modern-approvals/select-my-profile.png new file mode 100644 index 000000000..78d12f58f Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/select-my-profile.png differ diff --git a/flow-docs/includes/media/modern-approvals/select-profile-add-action.png b/flow-docs/includes/media/modern-approvals/select-profile-add-action.png new file mode 100644 index 000000000..9e523360e Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/select-profile-add-action.png differ diff --git a/flow-docs/includes/media/modern-approvals/select-send-email-no.png b/flow-docs/includes/media/modern-approvals/select-send-email-no.png new file mode 100644 index 000000000..935ca0f63 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/select-send-email-no.png differ diff --git a/flow-docs/includes/media/modern-approvals/select-send-email-yes.png b/flow-docs/includes/media/modern-approvals/select-send-email-yes.png new file mode 100644 index 000000000..8cb6b0478 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/select-send-email-yes.png differ diff --git a/flow-docs/includes/media/modern-approvals/select-sharepoint-add-action.png b/flow-docs/includes/media/modern-approvals/select-sharepoint-add-action.png new file mode 100644 index 000000000..67e4bee95 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/select-sharepoint-add-action.png differ diff --git a/flow-docs/includes/media/modern-approvals/select-sharepoint-new-item.png b/flow-docs/includes/media/modern-approvals/select-sharepoint-new-item.png new file mode 100644 index 000000000..055332d6f Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/select-sharepoint-new-item.png differ diff --git a/flow-docs/includes/media/modern-approvals/select-sharepoint-site-info.png b/flow-docs/includes/media/modern-approvals/select-sharepoint-site-info.png new file mode 100644 index 000000000..cce675a08 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/select-sharepoint-site-info.png differ diff --git a/flow-docs/includes/media/modern-approvals/select-update-item-no.png b/flow-docs/includes/media/modern-approvals/select-update-item-no.png new file mode 100644 index 000000000..c4466830a Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/select-update-item-no.png differ diff --git a/flow-docs/includes/media/modern-approvals/select-update-item-yes.png b/flow-docs/includes/media/modern-approvals/select-update-item-yes.png new file mode 100644 index 000000000..114350a6d Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/select-update-item-yes.png differ diff --git a/flow-docs/includes/media/modern-approvals/sharepoint-list-fields.png b/flow-docs/includes/media/modern-approvals/sharepoint-list-fields.png new file mode 100644 index 000000000..246e5567f Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/sharepoint-list-fields.png differ diff --git a/flow-docs/includes/media/modern-approvals/sign-in.png b/flow-docs/includes/media/modern-approvals/sign-in.png new file mode 100644 index 000000000..65789eb5b Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/sign-in.png differ diff --git a/flow-docs/includes/media/modern-approvals/update.png b/flow-docs/includes/media/modern-approvals/update.png new file mode 100644 index 000000000..2ea652cfc Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/update.png differ diff --git a/flow-docs/includes/media/modern-approvals/vacation-request.png b/flow-docs/includes/media/modern-approvals/vacation-request.png new file mode 100644 index 000000000..42bc5af7d Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/vacation-request.png differ diff --git a/flow-docs/includes/media/modern-approvals/yes-email-config.png b/flow-docs/includes/media/modern-approvals/yes-email-config.png new file mode 100644 index 000000000..10c62b9e2 Binary files /dev/null and b/flow-docs/includes/media/modern-approvals/yes-email-config.png differ diff --git a/flow-docs/includes/media/parallel-modern-approvals/add-an-action-2-step.png b/flow-docs/includes/media/parallel-modern-approvals/add-an-action-2-step.png new file mode 100644 index 000000000..7da589675 Binary files /dev/null and b/flow-docs/includes/media/parallel-modern-approvals/add-an-action-2-step.png differ diff --git a/flow-docs/includes/media/parallel-modern-approvals/condition-card.png b/flow-docs/includes/media/parallel-modern-approvals/condition-card.png new file mode 100644 index 000000000..3ac22f85b Binary files /dev/null and b/flow-docs/includes/media/parallel-modern-approvals/condition-card.png differ diff --git a/flow-docs/includes/media/parallel-modern-approvals/select-sharepoint-site-info.png b/flow-docs/includes/media/parallel-modern-approvals/select-sharepoint-site-info.png new file mode 100644 index 000000000..563ed5caf Binary files /dev/null and b/flow-docs/includes/media/parallel-modern-approvals/select-sharepoint-site-info.png differ diff --git a/flow-docs/includes/media/parallel-modern-approvals/yes-email-config.png b/flow-docs/includes/media/parallel-modern-approvals/yes-email-config.png new file mode 100644 index 000000000..002dd2696 Binary files /dev/null and b/flow-docs/includes/media/parallel-modern-approvals/yes-email-config.png differ diff --git a/flow-docs/includes/prerequisites-for-modern-approvals.md b/flow-docs/includes/prerequisites-for-modern-approvals.md new file mode 100644 index 000000000..97ecf89dd --- /dev/null +++ b/flow-docs/includes/prerequisites-for-modern-approvals.md @@ -0,0 +1,11 @@ +* [Microsoft Flow](https://flow.microsoft.com). +* A SharePoint Online list. +* Office 365 Outlook and Office 365 Users account. + +> [!NOTE] +> While we use SharePoint Online and Office 365 Outlook in this walk-through, you can use other services such as Zendesk, Salesforce, or Gmail. +> +> + +Before you create the flow, create a [SharePoint Online list](https://support.office.com/article/Training-Create-and-set-up-a-list-1DDC1F5A-A908-478B-BB6D-608F34B71F94); later, we'll use this list to request approval for vacations. + diff --git a/flow-docs/includes/reject-a-request.md b/flow-docs/includes/reject-a-request.md new file mode 100644 index 000000000..bee9dd583 --- /dev/null +++ b/flow-docs/includes/reject-a-request.md @@ -0,0 +1,7 @@ +You can reject a request via email, the approvals center, or the Microsoft Flow app. To reject a request, follow the steps for approving a request, but select **Reject**, instead of **Approve**. + +After you confirm your decision (rejection of the request), the flow runs the following steps: + +1. Sends an email to the person who requested vacation. +2. Updates the SharePoint Online list with the decision, and the comments from the approver. + diff --git a/flow-docs/includes/request-vacation-approval.md b/flow-docs/includes/request-vacation-approval.md new file mode 100644 index 000000000..35071554f --- /dev/null +++ b/flow-docs/includes/request-vacation-approval.md @@ -0,0 +1,7 @@ +Create a vacation request in the SharePoint Online list you created earlier. + +After you save this request, the flow triggers, and then: + +1. Creates a request in the approvals center. +2. Sends an approval request email to the approvers. + diff --git a/flow-docs/includes/sign-in-and-create-flow-from-blank-template.md b/flow-docs/includes/sign-in-and-create-flow-from-blank-template.md new file mode 100644 index 000000000..afe2755cc --- /dev/null +++ b/flow-docs/includes/sign-in-and-create-flow-from-blank-template.md @@ -0,0 +1,10 @@ +1. Sign into [Microsoft Flow](https://flow.microsoft.com). + + ![sign in](media/modern-approvals/sign-in.png) +2. Select the **My flows** tab. + + ![select my flows](media/modern-approvals/select-my-flows.png) +3. Select **Create from blank**. + + ![create from blank](media/modern-approvals/blank-template.png) + diff --git a/flow-docs/includes/sign-in-use-blank-select-email-trigger-and-inbox-folder.md b/flow-docs/includes/sign-in-use-blank-select-email-trigger-and-inbox-folder.md new file mode 100644 index 000000000..5ddbcecc6 --- /dev/null +++ b/flow-docs/includes/sign-in-use-blank-select-email-trigger-and-inbox-folder.md @@ -0,0 +1,13 @@ +1. Sign into [Microsoft Flow](https://flow.microsoft.com), and then select the **My flows** tab. +2. Select **Create from blank**. + + ![blank flow](media/email-triggers/email-triggers-create-blank.png) +3. Search for "email", and then select **Office 365 Outlook - When a new email arrives** from the list of triggers. This trigger runs each time an email arrives. + + ![email trigger](media/email-triggers/email-triggers-1.png) +4. Select the folder that you'd like the flow to monitor for incoming emails, and then select **Show advanced options**. + + Note: To display all your email folders, select the **Show Picker** icon, which is located on the right side of the **Folder** box on the **When a new email arrives** card. + + ![folder property](media/email-triggers/email-triggers-subject-folder.png) + diff --git a/flow-docs/includes/sign-in-use-blank-select-email-trigger-and-specific-folder.md b/flow-docs/includes/sign-in-use-blank-select-email-trigger-and-specific-folder.md new file mode 100644 index 000000000..08a996d1b --- /dev/null +++ b/flow-docs/includes/sign-in-use-blank-select-email-trigger-and-specific-folder.md @@ -0,0 +1,8 @@ +1. Sign into [Microsoft Flow](https://flow.microsoft.com), and then select the **My flows** tab. +2. Select **Create from blank**. + + ![blank flow](media/email-triggers/email-triggers-create-blank.png) +3. Search for "email", and then select **Office 365 Outlook - When a new email arrives** from the list of triggers. This trigger runs each time an email arrives. + + ![search for email](media/email-triggers/email-triggers-1.png) + diff --git a/flow-docs/includes/view-pending-approvals.md b/flow-docs/includes/view-pending-approvals.md new file mode 100644 index 000000000..6b1f069ff --- /dev/null +++ b/flow-docs/includes/view-pending-approvals.md @@ -0,0 +1,12 @@ +View all pending approval requests by following these steps: + +1. Sign into [Microsoft Flow](https://flow.microsoft.com). + + ![sign in](media/modern-approvals/sign-in.png) +2. Select the **Approvals** tab. + + ![approvals tab](media/modern-approvals/approvals-tab.png) +3. Find all pending approval requests under **Received requests**. + + ![pending requests](media/modern-approvals/pending-requests.png) + diff --git a/flow-docs/index.md b/flow-docs/index.md new file mode 100644 index 000000000..4261ff10a --- /dev/null +++ b/flow-docs/index.md @@ -0,0 +1,3 @@ +--- +redirect_url: getting-started +--- \ No newline at end of file diff --git a/flow-docs/introduction-to-button-flows.md b/flow-docs/introduction-to-button-flows.md new file mode 100644 index 000000000..01ac6e43d --- /dev/null +++ b/flow-docs/introduction-to-button-flows.md @@ -0,0 +1,141 @@ +--- +title: Learn how to automate and run repetitive tasks with button flows | Microsoft Docs +description: Introduction to button flows. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 01/30/2017 +ms.author: deonhe + +--- +# Introducing button flows +## What are button flows? +There are many repetitive tasks that we all wish we could run with just a tap of a button. For example, you may need to quickly email your team to remind them to join the daily team sync, or you may want to start a new Visual Studio Online build of your code base after you've been notified that there are no more checkins planned for the day. Button flows allow you to accomplish these and many other tasks simply by tapping a button on your mobile device. + +**Note** You can create button flows either from your mobile device or from the Flow portal. + ![Overview image](./media/introduction-to-button-flows/buttons-montage.png) + +## Why create buttons? +Create buttons so that you can easily run repetitive tasks from anyplace, at anytime via your mobile device. Executing buttons saves you time and, since the tasks they perform are automated, there will be less errors than if you manually did them. + +## Create a button +### Prerequisites +* Access to Flow. Your administrator can provide you with access. +* An account with permissions to use the connectors to create your button. For example, you will need a Dropbox account in order to create a button that accesses Dropbox. + +### From the portal +In this walk-through, let's create a button that starts a Visual Studio Online (VSO) build and sends notifications to let you know when the build starts: + +1. Select the **Showing** drop down list and choose the **Button** category. This filters the list of templates to only those that can be used in button flows. + ![Overview image](./media/introduction-to-button-flows/create-button-1.png) +2. Select the **Trigger a new build in VSO** template from the list of templates. + ![Overview image](./media/introduction-to-button-flows/create-button-2.png) +3. Select the **Use this template** button on the **Trigger a new build in VSO** page. + ![Overview image](./media/introduction-to-button-flows/create-button-3.png) +4. If you aren't signed in, you'll be prompted to do so at this point: + ![Overview image](./media/introduction-to-button-flows/create-button-4.png) +5. After you've signed into Flow, you'll be prompted to sign into the connectors used in the template you've selected. In this example, in step 2 above we selected the **Trigger a new build in VSO** template, so we have to sign into VSO (and any other connectors you are working with), if you're not already signed in: + ![Overview image](./media/introduction-to-button-flows/create-button-pre-req-1.png) +6. Select the **Accept** button if you agree to authorize Flow to access your VSO account. + ![Overview image](./media/introduction-to-button-flows/create-button-5.png) + **Note** You'll need to authorize each connector similarly. The designer should appear like this when you are ready to move on to the next step. Select the **Continue** button to move on: + ![Overview image](./media/introduction-to-button-flows/create-button-6.png) +7. You are now ready to configure the properties for the build you wish to start: + ![Overview image](./media/introduction-to-button-flows/create-button-7.png) +8. Select or enter the **Account name**, **Project name**, **Build definition Id**, **Source branch** and optionally, **Parameters**, in the **Queue a new build** card: + ![Overview image](./media/introduction-to-button-flows/create-button-8.png) +9. Next, configure the properties of the push notification on the **Send a push notification** card. By default, this push notification is configured to send an HTML link to a Web page that displays the status of the build: + ![Overview image](./media/introduction-to-button-flows/create-button-9.png) +10. Select the **Create flow** button to save your button flow: + ![Overview image](./media/introduction-to-button-flows/create-button-10.png) +11. You should see this success message within a few moments: + ![Overview image](./media/introduction-to-button-flows/create-button-11.png) + +Congratulations, you've created a button flow! You can now run this button flow anytime, anyplace, from the **Buttons** tab in the Flow app. Simply press the "button" and it will run! The Microsoft Flow mobile app is available for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows). + +### From your mobile device +**Note**: While this walk-through displays screens from an Android device, the screens and experience on an iOS device are similar. + +In the Flow app: + +1. Select the **Browse** tab and scroll to the **Button** category. + ![Overview image](./media/introduction-to-button-flows/create-button-from-mobile-1.png) +2. Select the **See all** link. This displays all ready-to-go button templates. + ![Overview image](./media/introduction-to-button-flows/create-button-from-mobile-2.png) +3. Select the **Send an email to remind your team to join a meeting** template + ![Overview image](./media/introduction-to-button-flows/create-button-from-mobile-3.png) +4. Select the **USE THIS TEMPLATE** link, at the bottom of the page. + ![Overview image](./media/introduction-to-button-flows/create-button-from-mobile-4.png) +5. You'll need to sign into all services that this template uses: + ![Overview image](./media/introduction-to-button-flows/create-button-from-mobile-5.png) +6. Select the **Next** link after you've signed in to all services. + ![Overview image](./media/introduction-to-button-flows/create-button-from-mobile-6.png) +7. Select the **Create** link. Here you can also review the flow and make any changes you require to personalize the email, for example. + ![Overview image](./media/introduction-to-button-flows/create-button-from-mobile-7.png) +8. After a few moments, the button flow is created. Select **SEE MY FLOW**: + ![Overview image](./media/introduction-to-button-flows/create-button-from-mobile-8.png) +9. View all your flows on the **My flows** tab + ![Overview image](./media/introduction-to-button-flows/create-button-from-mobile-9.png) + +Congratulations, you've created a button flow! You can now run this button flow anytime, anyplace, from the **Buttons** tab in the Flow app. Simply press the "button" and it will run! The Flow app is currently available on Android and iOS mobile devices. + +![Overview image](./media/introduction-to-button-flows/create-button-from-mobile-10.png) + +## Trigger a button flow +Now that you've created a button flow, it's time to run it. Since you can only run button flows from the Flow app, be sure you've installed Flow on your Android or iOS mobile device. + +1. Now, launch the flow app, tap the **Buttons** tab that's located at the bottom of the page, and tap the *button* that represents the button flow you wish to trigger: + ![Overview image](./media/introduction-to-button-flows/trigger-button-1.png) +2. See the progress while the flow runs: + ![Overview image](./media/introduction-to-button-flows/trigger-button-2.png) +3. Finally, the page updates, indicating that the button flow has completed: + ![Overview image](./media/introduction-to-button-flows/trigger-button-3.png) + +That's all there is to running a flow. + +You should now receive the push notification, indicating that the email has been sent. + +## Monitor your button flow runs +You can monitor button flows from the **Activity** tab of the flow app: +![Overview image](./media/introduction-to-button-flows/create-button-from-mobile-13.png) + +**Note**: Tap any activity to drill into the results of the run to learn about the run. + +![Overview image](./media/introduction-to-button-flows/activity-details-1.png) + +## Manage button flows +You have full control of your button flows so you can enable/disable, edit or delete a button anytime, anyplace. From the mobile app or from the flow portal, select **My flows** to get started managing your flows. + +On the **My flows** tab of the Flow app: + +1. Select the flow you wish to manage: + ![Overview image](./media/introduction-to-button-flows/trigger-button-4.png) +2. You can tap any of these options, based on what you'd like to accomplish: + ![Overview image](./media/introduction-to-button-flows/manage-flow-1.png) +3. Tap **Delete flow** to delete a flow. + +**Note** All run history is deleted when you delete a flow: +![Overview image](./media/introduction-to-button-flows/manage-flow-2.png) + +1. Tap **Update** after you are done editing a button flow, to save your changes: + ![Overview image](./media/introduction-to-button-flows/manage-flow-3.png) +2. Tap **Run history** to see the results of all runs of a particular button flow: + ![Overview image](./media/introduction-to-button-flows/manage-flow-4.png) +3. If you disable a flow, it will no longer be available on the **Buttons** tab: + ![Overview image](./media/introduction-to-button-flows/manage-flow-5.png) + +## Next steps +* [Share button flows](share-buttons.md). +* Learn to use [button trigger tokens](introduction-to-button-trigger-tokens.md) to send real-time data when your button flows are run. +* Install the Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows). + diff --git a/flow-docs/introduction-to-button-trigger-tokens.md b/flow-docs/introduction-to-button-trigger-tokens.md new file mode 100644 index 000000000..23f13003f --- /dev/null +++ b/flow-docs/introduction-to-button-trigger-tokens.md @@ -0,0 +1,93 @@ +--- +title: Introduction to button trigger tokens | Microsoft Docs +description: Introduction to button trigger tokens for Microsoft button flows. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 12/12/2016 +ms.author: deonhe + +--- +# Get started with button trigger tokens +## What are button trigger tokens? +Button trigger tokens are data points that are known and available to the device on which a [button flow](introduction-to-button-flows.md) is running. These tokens change based on factors such as the current time or the geographic location of the device at a given moment. + +For example, if you are running a button flow on a smart phone, it is likely that the **phone knows the time** at your current location as well as the date and your current address. In this context, the time, date and address where the phone is located are all determined at the time the button flow runs. They are automatically available for use in any button flows that are executed on the device. You can use these trigger tokens to build useful flows that will minimize repetitive tasks such as providing your location to someone or tracking how much time you spent on a particular job/service call. + +### List of button trigger tokens +Here's the list of the button trigger tokens that are available for you to use when creating your button flows. + +| Parameter | Description | +| --- | --- | +| City |The city in which the device that's running the flow is located. | +| Country/Region |The country/region in which the device that's running the flow is located. | +| Full address |The full address where the device that's running the flow is located. | +| Latitude |The latitude in which the device that's running the flow is located. | +| Longitude |The longitude in which the device that's running the flow is located. | +| PostalCode |The postal code in which the device that's running the flow is located. | +| State |The state in which the device that's running the flow is located. | +| Street |The street on which the device that's running the flow is located. | +| Timestamp |The time in the area where the device that's running the flow is located. | +| Date |The date in the area where the device that's running the flow is located. | +| User name |The user name of the person signed into the device that's running the flow. | +| User email |The email address of the person signed into the device that's running the flow. | + +## Create a button flow that uses trigger tokens +When you create a button, you can use trigger tokens to add rich functionality to your button. + +In this walk-through, we will create a button flow on an Android device. The button flow will use trigger tokens to send the date and your full address in a "**Working from home**" email to your boss. + +In this walk-through, you will see screen-shots from an Android device, however, the experience is similar on iOS and Windows Phone devices as well. + +### Prerequisites +* A work or school email address or a [Microsoft Account](https://account.microsoft.com/about?refd=www.microsoft.com) with access to Microsoft Flow. +* The Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows). + +Let's get started: + +1. Launch Flow and select **Browse** + ![button trigger token](./media/introduction-to-button-trigger-tokens/1.png) +2. Select the **Send a 'Working from home today' email to your manager** service under the **Button** category + ![button trigger token](./media/introduction-to-button-trigger-tokens/2.png) +3. Select **USE THIS TEMPLATE** + ![button trigger token](./media/introduction-to-button-trigger-tokens/3.png) +4. Select **Edit** on the **Send an email** card + ![button trigger token](./media/introduction-to-button-trigger-tokens/3-5.png) +5. Tap the **Subject** text box and enter: " **today -** " into the text box after the "WFH" text. Notice that when you tapped on the text box, a list of parameters/tokens also opened up. We'll use one of these tokens in the next step to add the date to the subject of the email. + ![button trigger token](./media/introduction-to-button-trigger-tokens/4.png) +6. With the cursor still in the subject text box, scroll to the **manual** list of parameters and tap **Date**. Notice the date parameter is now in the **Subject** text box: + ![button trigger token](./media/introduction-to-button-trigger-tokens/6.png) +7. Scroll to the **Body** text box and tap after the default message so that additional tokens can be included there. + ![button trigger token](./media/introduction-to-button-trigger-tokens/7.png) +8. Tap the **Full address** parameter, then tap **Create** + ![button trigger token](./media/introduction-to-button-trigger-tokens/8.png) +9. Tap **Done**. Your button flow is now created. + ![button trigger token](./media/introduction-to-button-trigger-tokens/9.png) + +## Run the button flow +**NOTE**: This button flow will send your current location via email. + +1. Tap the **Buttons** category at the bottom of the screen. You will see a list of the buttons that you have permissions to use. Tap the button that represents the button flow you just created: + ![button trigger token](./media/introduction-to-button-trigger-tokens/10.png) +2. Tap **ALLOW** to indicate that it's OK for the button flow to access your device's location information: + ![button trigger token](./media/introduction-to-button-trigger-tokens/11.png) +3. Within a few moments, notice that the email was sent to your boss: + ![button trigger token](./media/introduction-to-button-trigger-tokens/12.png) + +Congratulations, you've just created a button flow that uses both the date and full address trigger tokens. + +## Next steps +* [Share button flows](share-buttons.md) +* [Learn about button flows](introduction-to-button-flows.md) +* [Learn about flows](guided-learning/learning-introducing-flow.md) + diff --git a/flow-docs/introduction-to-data-groups.md b/flow-docs/introduction-to-data-groups.md new file mode 100644 index 000000000..ef8d3c75c --- /dev/null +++ b/flow-docs/introduction-to-data-groups.md @@ -0,0 +1,64 @@ +--- +title: Data groups for Microsoft Flow | Microsoft Docs +description: Introduction to Data groups for Microsoft PowerApps and Microsoft Flow. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 10/26/2016 +ms.author: deonhe + +--- +# Learn all about data groups +## What is a data group? +Data groups are a simple way to categorize services within a [data loss prevention (DLP) policy](prevent-data-loss.md). The two data groups available are the **Business data only** group and the **No business data allowed** group. Organizations are free to determine which services are placed into a particular data group. A good way to categorize services is to place them in groups, based on the impact to the organization. By default, all services are placed into the **No business data allowed** data group. You manage the services in a data group when you create or modify the properties of a DLP policy from the admin center. + +## How data is shared between data groups +Data cannot be shared among services located in different groups. For example, if you place SharePoint and Salesforce in the **Business data only** group and you place Facebook and Twitter in the **No business data allowed** group, you cannot create a flow that moves data between SharePoint and Facebook. While data cannot be shared among services in different groups, you can share data among the services within a specific group. So, going back to the earlier example, since SharePoint and Salesforce were placed in the same data group, flows that your end users create can share data between SharePoint and Salesforce. Similarly, end users can create flows and PowerApps that share data between Facebook and Twitter. The key point is that services in a specific group can share data, while services in different groups cannot share data. + +Additionally, one data group must be designated as the *default* group. Initially, the **No business data allowed** group is the *default* group and all services are in the data group. An administrator can change the default data group to the **business data only** data group. **Note** any new services that are added to flow will be placed in the designated *default* group. For this reason, we recommend you keep the **No business data allowed** as the default group and manually add services into the **Business data only** group after your organization has evaluated the impact of allowing business data to be shared with the new service. + +## Add services to a data group +In this walk-through, we'll add SharePoint and Salesforce to the **business data only** data group of a data loss prevention (DLP) policy. + +1. Select the **+ Add** link located inside the **Business data only** group box of a DLP policy: + ![Add image](./media/introduction-to-data-groups/add-to-data-group-1.png) +2. Select SharePoint and Salesforce then select **Add services** to add both to the business data only group: + ![Add services image](./media/introduction-to-data-groups/add-to-data-group-2.png) +3. Select **Save Policy** from the menu at the top: + ![Save policy](./media/introduction-to-data-groups/add-to-data-group-4.png) +4. Notice that both SharePoint and Salesforce are now in the business data only group: + ![updated business data group](./media/introduction-to-data-groups/add-to-data-group-3.png) + +In this walk-through, you've added SharePoint and Salesforce to the **business data only** data group of a DLP policy. If a person who is part of the DLP policy's environment creates an app that shares data between SharePoint or Salesforce and any service in the **No business data allowed** data group, the app will not be allowed to run. + +## Remove services from a data group +Since all services must be in one of the available data groups, to remove a service from a specific group, simply add the service to another group then save the policy. + +## Change the default data group +In this walk-through, we will change the default data group from the **no business data allowed** data group to the **business data only** data group. + +**Important** any new services that are added to flow will be placed in the designated *default* group. For this reason, we recommend you keep the **No business data allowed** as the default group and manually add services into the **Business data only** group. + +1. Select the **...** located at the top right corner of the data group you wish to designate as the default data group: + ![change default group](./media/introduction-to-data-groups/default-data-group-0.png) +2. Select **Set as default group**: + ![change default group](./media/introduction-to-data-groups/default-data-group-1.png) +3. Select **Save Policy** from the menu at the top: + ![change default group](./media/introduction-to-data-groups/add-to-data-group-4.png) +4. Notice the data group is now designated as the default data group: + ![change default group](./media/introduction-to-data-groups/default-data-group-2.png) + +## Next steps +* [Learn more about data loss prevention (DLP) policies](prevent-data-loss.md) +* [Learn more about environments](environments-overview-admin.md) + diff --git a/flow-docs/introduction-to-the-admin-center.md b/flow-docs/introduction-to-the-admin-center.md new file mode 100644 index 000000000..36614ea25 --- /dev/null +++ b/flow-docs/introduction-to-the-admin-center.md @@ -0,0 +1,39 @@ +--- +title: Learn how to use the admin center to manage environments and data loss prevention policies. | Microsoft Docs +description: The Flow admin center is used by tenant and environment admins to manage data loss prevention polices and environments for Microsoft Flow deployments. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 01/24/2016 +ms.author: deonhe + +--- +# The Admin Center +![overview](./media/introduction-to-the-admin-center/overview.png) + +## What is the Admin center? +The admin center is the central location where both tenant admins and environment admins manage data loss prevention (DLP) polices and environments for an organization. Any changes you make in the admin center are immediately available to users within the organization. + +## Access the Admin center +* The Flow admin center is accessed by browsing to https://admin.flow.microsoft.com. + +## Environments +Learn more about how [environments](environments-overview-admin.md) are used to manage users, permissions and roles. + +## Data loss prevention (DLP) policies +Learn more about how [data loss prevention policies](prevent-data-loss.md) are used to create rules that manage how business data is shared between services in flows. + +## Next steps +* [Learn more about environments](environments-overview-admin.md) +* [Learn more about Microsoft Flow](getting-started.md) + diff --git a/flow-docs/limits-and-config.md b/flow-docs/limits-and-config.md new file mode 100644 index 000000000..99535a0ba --- /dev/null +++ b/flow-docs/limits-and-config.md @@ -0,0 +1,110 @@ +--- +title: Limits and configuration | Microsoft Docs +description: Limits and configuration +services: '' +suite: flow +documentationcenter: na +author: stepsic-microsoft-com +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 07/27/2017 +ms.author: stepsic + +--- +# Limits and configuration in Microsoft Flow +This topic contains information about the current limits and configuration details for flows. + +## Limits +### Request limits +These are limits for a single outgoing request. + +#### Timeout +| Name | Limit | +| --- | --- | +| Request Timeout |120 Seconds | + +#### Message size +| Name | Limit | Notes | +| --- | --- | --- | +| Message size |100 MB |Not all APIs support the full 100MB. | +| Expression evaluation limit |131,072 characters |`@concat()`, `@base64()`, `string` can't exceed this limit. | + +#### Retry policy +| Name | Limit | +| --- | --- | +| Retry attempts |4 | + +### Run duration and retention +These are the limits for a single flow run. + +| Name | Limit | Notes | +| --- | --- | --- | +| Run duration |30 days |Includes workflows with pending steps like approvals. After 30 days the pending steps will Time Out. | +| Storage retention |30 days |This is from the run start time. | +| Min recurrence interval |1 minute | | +| Max recurrence interval |500 days | | + +### Looping and debatching limits +These are limits for a single flow run. + +| Name | Limit | Notes | +| --- | --- | --- | +| ForEach items |5,000 |You can use the filter action to filter larger arrays as needed. | +| Until iterations |5,000 | | +| SplitOn items |5,000 | | +| ForEach Parallelism |1 | | + +### Definition limits +These are limits for a single flow. + +| Name | Limit | Notes | +| --- | --- | --- | +| Actions per workflow |250 |You can add nested workflows to extend this as needed. | +| Allowed action nesting depth |5 |You can add nested workflows to extend this as needed. | +| Max characters per expression |8,192 | | +| `action`/`trigger` name limit |80 | | +| `description` length limit |256 | | + +## Configuration +### IP address +The IP address from which Microsoft Flow requests are sent depends on the [region](regions-overview.md) where the [environment](environments-overview-admin.md) that contains the flow is located. We don't currently publish FQDNs available for flow scenarios. + +#### Logic App Service +Calls made from a flow go directly through the Azure Logic App service. Some examples of these calls include HTTP or HTTP + OpenAPI. These calls come from the following IP addresses: + +| Region | Outbound IP | +| --- | --- | +| Asia |168.63.200.173, 13.75.89.159, 23.97.68.172, 13.75.94.173, 40.83.127.19, 52.175.33.254, 52.163.93.214, 52.187.65.81, 52.187.65.155, 13.76.133.155, 52.163.228.93, 52.163.230.166 | +| Australia |13.75.153.66, 104.210.89.222, 104.210.89.244, 13.75.149.4, 104.210.91.55, 104.210.90.241, 13.73.115.153, 40.115.78.70, 40.115.78.237, 13.73.114.207, 13.77.3.139, 13.70.159.205 | +| Canada |52.233.29.92, 52.228.39.241, 52.228.39.244, 52.232.128.155, 52.229.120.45, 52.229.126.25 | +| Europe |13.79.173.49, 52.169.218.253, 52.169.220.174, 40.113.12.95, 52.178.165.215, 52.178.166.21, 13.95.155.53, 52.174.54.218, 52.174.49.6, 40.68.222.65, 40.68.209.23, 13.95.147.65 | +| India |52.172.157.194, 52.172.184.192, 52.172.191.194, 52.172.154.168, 52.172.186.159, 52.172.185.79, 52.172.9.47, 52.172.49.43, 52.172.51.140, 52.172.50.24, 52.172.55.231, 52.172.52.0 | +| Japan |13.71.146.140, 13.78.84.187, 13.78.62.130, 13.71.158.3, 13.73.4.207, 13.71.158.120, 40.74.140.173, 40.74.81.13, 40.74.85.215, 40.74.140.4, 104.214.137.243, 138.91.26.45 | +| United States |137.135.106.54, 40.117.99.79, 40.117.100.228, 13.92.98.111, 40.121.91.41, 40.114.82.191, 52.160.90.237, 138.91.188.137, 13.91.252.184, 52.160.92.112, 40.118.244.241, 40.118.241.243 | + +#### Services +Calls made from an API connected through a flow (for example, the SQL API or the SharePoint API) will come from the IP address specified below: + +| Region | Outbound IP | +| --- | --- | +| Asia |52.163.91.227, 52.163.89.40, 52.163.89.65, 52.163.95.29, 13.75.89.9, 13.75.91.198, 13.75.92.202, 13.75.92.124 | +| Australia |13.77.7.172, 13.70.191.49, 13.70.189.7, 13.70.187.251, 13.70.82.210, 13.73.203.158, 13.73.207.42, 13.73.205.35 | +| Canada |52.233.30.222, 52.233.30.148, 52.233.30.199, 52.233.29.254, 52.232.130.205, 52.229.126.118, 52.229.126.28, 52.229.123.56 | +| Europe |52.166.241.149, 52.166.244.232, 52.166.245.173, 52.166.243.169, 40.69.45.126, 40.69.45.11, 40.69.45.93, 40.69.42.254 | +| India |52.172.54.172, 52.172.55.107, 52.172.55.84, 52.172.51.70, 52.172.158.185, 52.172.159.100, 52.172.158.2, 52.172.155.245 | +| Japan |104.214.137.186, 104.214.139.29, 104.214.140.23, 104.214.138.174, 13.78.85.193, 13.78.84.73, 13.78.85.200, 13.78.86.229 | +| United States |104.43.232.28, 104.43.232.242, 104.43.235.249, 104.43.234.211, 52.160.93.247, 52.160.91.66, 52.160.92.131, 52.160.95.100, 40.117.101.91, 40.117.98.246, 40.117.101.120, 40.117.100.191 | +| United States (Early Access) |52.161.26.191, 52.161.27.42, 52.161.29.40, 52.161.26.33, 13.66.213.240, 13.66.214.51, 13.66.210.166, 13.66.213.29 | + +For example, if you must whitelist IP addresses for your Azure SQL database, you should use these addresses. + +## Limits for using SharePoint with Microsoft Flow +There are [limitations](https://powerapps.microsoft.com/tutorials/connection-sharepoint-online/) on how you can use Microsoft SharePoint with Microsoft Flow and PowerApps. + diff --git a/flow-docs/media/add-a-condition/add-condition.png b/flow-docs/media/add-a-condition/add-condition.png new file mode 100644 index 000000000..7dd054c22 Binary files /dev/null and b/flow-docs/media/add-a-condition/add-condition.png differ diff --git a/flow-docs/media/add-a-condition/drag-action.png b/flow-docs/media/add-a-condition/drag-action.png new file mode 100644 index 000000000..f07ab9294 Binary files /dev/null and b/flow-docs/media/add-a-condition/drag-action.png differ diff --git a/flow-docs/media/add-a-condition/specify-condition.png b/flow-docs/media/add-a-condition/specify-condition.png new file mode 100644 index 000000000..38e3373cb Binary files /dev/null and b/flow-docs/media/add-a-condition/specify-condition.png differ diff --git a/flow-docs/media/add-manage-connections/connections-menu.png b/flow-docs/media/add-manage-connections/connections-menu.png new file mode 100644 index 000000000..9ad17b95b Binary files /dev/null and b/flow-docs/media/add-manage-connections/connections-menu.png differ diff --git a/flow-docs/media/add-manage-connections/delete-confirmation.png b/flow-docs/media/add-manage-connections/delete-confirmation.png new file mode 100644 index 000000000..15c5450b2 Binary files /dev/null and b/flow-docs/media/add-manage-connections/delete-confirmation.png differ diff --git a/flow-docs/media/add-manage-connections/delete-connection.png b/flow-docs/media/add-manage-connections/delete-connection.png new file mode 100644 index 000000000..aed35f94d Binary files /dev/null and b/flow-docs/media/add-manage-connections/delete-connection.png differ diff --git a/flow-docs/media/add-manage-connections/select-gateway.png b/flow-docs/media/add-manage-connections/select-gateway.png new file mode 100644 index 000000000..47078bf24 Binary files /dev/null and b/flow-docs/media/add-manage-connections/select-gateway.png differ diff --git a/flow-docs/media/add-manage-connections/verify-password.png b/flow-docs/media/add-manage-connections/verify-password.png new file mode 100644 index 000000000..69424ef06 Binary files /dev/null and b/flow-docs/media/add-manage-connections/verify-password.png differ diff --git a/flow-docs/media/api-connectors-dev/build-your-api-updated.png b/flow-docs/media/api-connectors-dev/build-your-api-updated.png new file mode 100644 index 000000000..c98b1b22d Binary files /dev/null and b/flow-docs/media/api-connectors-dev/build-your-api-updated.png differ diff --git a/flow-docs/media/api-connectors-dev/definition.png b/flow-docs/media/api-connectors-dev/definition.png new file mode 100644 index 000000000..b548c3160 Binary files /dev/null and b/flow-docs/media/api-connectors-dev/definition.png differ diff --git a/flow-docs/media/api-connectors-dev/finding-custom-apis.png b/flow-docs/media/api-connectors-dev/finding-custom-apis.png new file mode 100644 index 000000000..bfe5d781c Binary files /dev/null and b/flow-docs/media/api-connectors-dev/finding-custom-apis.png differ diff --git a/flow-docs/media/api-connectors-dev/security.png b/flow-docs/media/api-connectors-dev/security.png new file mode 100644 index 000000000..c424b6ea5 Binary files /dev/null and b/flow-docs/media/api-connectors-dev/security.png differ diff --git a/flow-docs/media/api-connectors-overview/authoring-steps.png b/flow-docs/media/api-connectors-overview/authoring-steps.png new file mode 100644 index 000000000..85bda3520 Binary files /dev/null and b/flow-docs/media/api-connectors-overview/authoring-steps.png differ diff --git a/flow-docs/media/apply-to-each/foreach-1.png b/flow-docs/media/apply-to-each/foreach-1.png new file mode 100644 index 000000000..f0de22701 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-1.png differ diff --git a/flow-docs/media/apply-to-each/foreach-10.png b/flow-docs/media/apply-to-each/foreach-10.png new file mode 100644 index 000000000..91d9a79f6 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-10.png differ diff --git a/flow-docs/media/apply-to-each/foreach-11.png b/flow-docs/media/apply-to-each/foreach-11.png new file mode 100644 index 000000000..ebc67d17c Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-11.png differ diff --git a/flow-docs/media/apply-to-each/foreach-12.png b/flow-docs/media/apply-to-each/foreach-12.png new file mode 100644 index 000000000..a431edbb9 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-12.png differ diff --git a/flow-docs/media/apply-to-each/foreach-13.png b/flow-docs/media/apply-to-each/foreach-13.png new file mode 100644 index 000000000..ddc19bd41 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-13.png differ diff --git a/flow-docs/media/apply-to-each/foreach-14.png b/flow-docs/media/apply-to-each/foreach-14.png new file mode 100644 index 000000000..c9c9f570f Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-14.png differ diff --git a/flow-docs/media/apply-to-each/foreach-2.png b/flow-docs/media/apply-to-each/foreach-2.png new file mode 100644 index 000000000..fdf882420 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-2.png differ diff --git a/flow-docs/media/apply-to-each/foreach-3.png b/flow-docs/media/apply-to-each/foreach-3.png new file mode 100644 index 000000000..e69ccc88a Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-3.png differ diff --git a/flow-docs/media/apply-to-each/foreach-4.png b/flow-docs/media/apply-to-each/foreach-4.png new file mode 100644 index 000000000..ee5fc692f Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-4.png differ diff --git a/flow-docs/media/apply-to-each/foreach-5.png b/flow-docs/media/apply-to-each/foreach-5.png new file mode 100644 index 000000000..5cd954044 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-5.png differ diff --git a/flow-docs/media/apply-to-each/foreach-6.png b/flow-docs/media/apply-to-each/foreach-6.png new file mode 100644 index 000000000..97ad15bef Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-6.png differ diff --git a/flow-docs/media/apply-to-each/foreach-7.png b/flow-docs/media/apply-to-each/foreach-7.png new file mode 100644 index 000000000..b613934fe Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-7.png differ diff --git a/flow-docs/media/apply-to-each/foreach-8.png b/flow-docs/media/apply-to-each/foreach-8.png new file mode 100644 index 000000000..235227e64 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-8.png differ diff --git a/flow-docs/media/apply-to-each/foreach-9.png b/flow-docs/media/apply-to-each/foreach-9.png new file mode 100644 index 000000000..d14f80104 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-9.png differ diff --git a/flow-docs/media/apply-to-each/foreach-boss-notification.png b/flow-docs/media/apply-to-each/foreach-boss-notification.png new file mode 100644 index 000000000..39715e6d8 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-boss-notification.png differ diff --git a/flow-docs/media/apply-to-each/foreach-condition3-card.png b/flow-docs/media/apply-to-each/foreach-condition3-card.png new file mode 100644 index 000000000..a1cd386ad Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-condition3-card.png differ diff --git a/flow-docs/media/apply-to-each/foreach-flow-finished.png b/flow-docs/media/apply-to-each/foreach-flow-finished.png new file mode 100644 index 000000000..57287021f Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-flow-finished.png differ diff --git a/flow-docs/media/apply-to-each/foreach-flow-visio.png b/flow-docs/media/apply-to-each/foreach-flow-visio.png new file mode 100644 index 000000000..5850c6d5d Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-flow-visio.png differ diff --git a/flow-docs/media/apply-to-each/foreach-get-manager.png b/flow-docs/media/apply-to-each/foreach-get-manager.png new file mode 100644 index 000000000..3fbf6ca77 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-get-manager.png differ diff --git a/flow-docs/media/apply-to-each/foreach-importance-condition.png b/flow-docs/media/apply-to-each/foreach-importance-condition.png new file mode 100644 index 000000000..5440d6b19 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-importance-condition.png differ diff --git a/flow-docs/media/apply-to-each/foreach-mark-as-read2.png b/flow-docs/media/apply-to-each/foreach-mark-as-read2.png new file mode 100644 index 000000000..28bb25661 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-mark-as-read2.png differ diff --git a/flow-docs/media/apply-to-each/foreach-notification-1.png b/flow-docs/media/apply-to-each/foreach-notification-1.png new file mode 100644 index 000000000..65481e978 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-notification-1.png differ diff --git a/flow-docs/media/apply-to-each/foreach-notification-2.png b/flow-docs/media/apply-to-each/foreach-notification-2.png new file mode 100644 index 000000000..6013a1487 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-notification-2.png differ diff --git a/flow-docs/media/apply-to-each/foreach-run-1.png b/flow-docs/media/apply-to-each/foreach-run-1.png new file mode 100644 index 000000000..c4d4d183a Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-run-1.png differ diff --git a/flow-docs/media/apply-to-each/foreach-run-2.png b/flow-docs/media/apply-to-each/foreach-run-2.png new file mode 100644 index 000000000..4bd5a3ebe Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-run-2.png differ diff --git a/flow-docs/media/apply-to-each/foreach-run-3.png b/flow-docs/media/apply-to-each/foreach-run-3.png new file mode 100644 index 000000000..91d2616c3 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-run-3.png differ diff --git a/flow-docs/media/apply-to-each/foreach-subject-condition.png b/flow-docs/media/apply-to-each/foreach-subject-condition.png new file mode 100644 index 000000000..ae74d27e9 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreach-subject-condition.png differ diff --git a/flow-docs/media/apply-to-each/foreah-condition3-add-action.png b/flow-docs/media/apply-to-each/foreah-condition3-add-action.png new file mode 100644 index 000000000..332b9d649 Binary files /dev/null and b/flow-docs/media/apply-to-each/foreah-condition3-add-action.png differ diff --git a/flow-docs/media/billing-questions/activity-link.png b/flow-docs/media/billing-questions/activity-link.png new file mode 100644 index 000000000..041d1a3e4 Binary files /dev/null and b/flow-docs/media/billing-questions/activity-link.png differ diff --git a/flow-docs/media/billing-questions/learn-pricing.png b/flow-docs/media/billing-questions/learn-pricing.png new file mode 100644 index 000000000..19856859d Binary files /dev/null and b/flow-docs/media/billing-questions/learn-pricing.png differ diff --git a/flow-docs/media/billing-questions/settings.png b/flow-docs/media/billing-questions/settings.png new file mode 100644 index 000000000..4e9e78a02 Binary files /dev/null and b/flow-docs/media/billing-questions/settings.png differ diff --git a/flow-docs/media/bttn-button-flows/authorize-bttn.png b/flow-docs/media/bttn-button-flows/authorize-bttn.png new file mode 100644 index 000000000..4e5e43a7e Binary files /dev/null and b/flow-docs/media/bttn-button-flows/authorize-bttn.png differ diff --git a/flow-docs/media/bttn-button-flows/bttn-config.png b/flow-docs/media/bttn-button-flows/bttn-config.png new file mode 100644 index 000000000..a9964fce8 Binary files /dev/null and b/flow-docs/media/bttn-button-flows/bttn-config.png differ diff --git a/flow-docs/media/bttn-button-flows/bttn-done.png b/flow-docs/media/bttn-button-flows/bttn-done.png new file mode 100644 index 000000000..6e0ba5dd9 Binary files /dev/null and b/flow-docs/media/bttn-button-flows/bttn-done.png differ diff --git a/flow-docs/media/bttn-button-flows/bttn-id.png b/flow-docs/media/bttn-button-flows/bttn-id.png new file mode 100644 index 000000000..8d07758db Binary files /dev/null and b/flow-docs/media/bttn-button-flows/bttn-id.png differ diff --git a/flow-docs/media/bttn-button-flows/bttn-provide-credentials.png b/flow-docs/media/bttn-button-flows/bttn-provide-credentials.png new file mode 100644 index 000000000..5a5c68a68 Binary files /dev/null and b/flow-docs/media/bttn-button-flows/bttn-provide-credentials.png differ diff --git a/flow-docs/media/bttn-button-flows/bttn-search-template.png b/flow-docs/media/bttn-button-flows/bttn-search-template.png new file mode 100644 index 000000000..de97608e2 Binary files /dev/null and b/flow-docs/media/bttn-button-flows/bttn-search-template.png differ diff --git a/flow-docs/media/bttn-button-flows/bttn-select-template.png b/flow-docs/media/bttn-button-flows/bttn-select-template.png new file mode 100644 index 000000000..090972cee Binary files /dev/null and b/flow-docs/media/bttn-button-flows/bttn-select-template.png differ diff --git a/flow-docs/media/bttn-button-flows/bttn-templates.png b/flow-docs/media/bttn-button-flows/bttn-templates.png new file mode 100644 index 000000000..150808147 Binary files /dev/null and b/flow-docs/media/bttn-button-flows/bttn-templates.png differ diff --git a/flow-docs/media/bttn-button-flows/continue.png b/flow-docs/media/bttn-button-flows/continue.png new file mode 100644 index 000000000..405b45bf9 Binary files /dev/null and b/flow-docs/media/bttn-button-flows/continue.png differ diff --git a/flow-docs/media/bttn-button-flows/save.png b/flow-docs/media/bttn-button-flows/save.png new file mode 100644 index 000000000..8b8337aa0 Binary files /dev/null and b/flow-docs/media/bttn-button-flows/save.png differ diff --git a/flow-docs/media/bttn-button-flows/sign-into-flow.png b/flow-docs/media/bttn-button-flows/sign-into-flow.png new file mode 100644 index 000000000..38bc14d3f Binary files /dev/null and b/flow-docs/media/bttn-button-flows/sign-into-flow.png differ diff --git a/flow-docs/media/bttn-button-flows/support-request-email.png b/flow-docs/media/bttn-button-flows/support-request-email.png new file mode 100644 index 000000000..30ff67cfb Binary files /dev/null and b/flow-docs/media/bttn-button-flows/support-request-email.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/1.png b/flow-docs/media/button-flow-with-user-input-tokens/1.png new file mode 100644 index 000000000..e0aa58373 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/1.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/10.png b/flow-docs/media/button-flow-with-user-input-tokens/10.png new file mode 100644 index 000000000..844262cf0 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/10.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/11.png b/flow-docs/media/button-flow-with-user-input-tokens/11.png new file mode 100644 index 000000000..2d62612e5 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/11.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/12.png b/flow-docs/media/button-flow-with-user-input-tokens/12.png new file mode 100644 index 000000000..50498f143 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/12.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/13.png b/flow-docs/media/button-flow-with-user-input-tokens/13.png new file mode 100644 index 000000000..f351faaf3 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/13.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/14.png b/flow-docs/media/button-flow-with-user-input-tokens/14.png new file mode 100644 index 000000000..7073434e5 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/14.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/2.png b/flow-docs/media/button-flow-with-user-input-tokens/2.png new file mode 100644 index 000000000..55aea7c2d Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/2.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/3.png b/flow-docs/media/button-flow-with-user-input-tokens/3.png new file mode 100644 index 000000000..33139751f Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/3.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/4.png b/flow-docs/media/button-flow-with-user-input-tokens/4.png new file mode 100644 index 000000000..7dee4c53a Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/4.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/5.png b/flow-docs/media/button-flow-with-user-input-tokens/5.png new file mode 100644 index 000000000..f51b83f6a Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/5.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/6.png b/flow-docs/media/button-flow-with-user-input-tokens/6.png new file mode 100644 index 000000000..c3126edde Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/6.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/7.png b/flow-docs/media/button-flow-with-user-input-tokens/7.png new file mode 100644 index 000000000..f60013bf9 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/7.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/8.png b/flow-docs/media/button-flow-with-user-input-tokens/8.png new file mode 100644 index 000000000..5989f4583 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/8.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/9.png b/flow-docs/media/button-flow-with-user-input-tokens/9.png new file mode 100644 index 000000000..3ebeb58ae Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/9.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt0.png b/flow-docs/media/button-flow-with-user-input-tokens/mt0.png new file mode 100644 index 000000000..fa899d6b0 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt0.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt1.png b/flow-docs/media/button-flow-with-user-input-tokens/mt1.png new file mode 100644 index 000000000..3ab099c9a Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt1.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt10.png b/flow-docs/media/button-flow-with-user-input-tokens/mt10.png new file mode 100644 index 000000000..7bbd6cf67 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt10.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt11-create-item.png b/flow-docs/media/button-flow-with-user-input-tokens/mt11-create-item.png new file mode 100644 index 000000000..ea4b0049f Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt11-create-item.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt11.png b/flow-docs/media/button-flow-with-user-input-tokens/mt11.png new file mode 100644 index 000000000..b399aee02 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt11.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt12.png b/flow-docs/media/button-flow-with-user-input-tokens/mt12.png new file mode 100644 index 000000000..568e31a71 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt12.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt13-save.png b/flow-docs/media/button-flow-with-user-input-tokens/mt13-save.png new file mode 100644 index 000000000..abf54edd8 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt13-save.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt13.png b/flow-docs/media/button-flow-with-user-input-tokens/mt13.png new file mode 100644 index 000000000..6e95cfa8f Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt13.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt14.png b/flow-docs/media/button-flow-with-user-input-tokens/mt14.png new file mode 100644 index 000000000..4d6525a8f Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt14.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt15.png b/flow-docs/media/button-flow-with-user-input-tokens/mt15.png new file mode 100644 index 000000000..22dc767a3 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt15.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt2.png b/flow-docs/media/button-flow-with-user-input-tokens/mt2.png new file mode 100644 index 000000000..ea744f72c Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt2.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt3.png b/flow-docs/media/button-flow-with-user-input-tokens/mt3.png new file mode 100644 index 000000000..9014313f0 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt3.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt4.png b/flow-docs/media/button-flow-with-user-input-tokens/mt4.png new file mode 100644 index 000000000..567d566a5 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt4.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt6.png b/flow-docs/media/button-flow-with-user-input-tokens/mt6.png new file mode 100644 index 000000000..29e9157d7 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt6.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt7.png b/flow-docs/media/button-flow-with-user-input-tokens/mt7.png new file mode 100644 index 000000000..8969dc2b1 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt7.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt8.png b/flow-docs/media/button-flow-with-user-input-tokens/mt8.png new file mode 100644 index 000000000..93d3c659a Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt8.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt9-addaction.png b/flow-docs/media/button-flow-with-user-input-tokens/mt9-addaction.png new file mode 100644 index 000000000..3fb33428a Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt9-addaction.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/mt9.png b/flow-docs/media/button-flow-with-user-input-tokens/mt9.png new file mode 100644 index 000000000..d83358389 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/mt9.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/runmt1.png b/flow-docs/media/button-flow-with-user-input-tokens/runmt1.png new file mode 100644 index 000000000..57d36c7e7 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/runmt1.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/runmt2.png b/flow-docs/media/button-flow-with-user-input-tokens/runmt2.png new file mode 100644 index 000000000..57b9dfa85 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/runmt2.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/runmt3-1.png b/flow-docs/media/button-flow-with-user-input-tokens/runmt3-1.png new file mode 100644 index 000000000..d0ddb6bca Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/runmt3-1.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/runmt3-2.png b/flow-docs/media/button-flow-with-user-input-tokens/runmt3-2.png new file mode 100644 index 000000000..7a6d9e5f4 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/runmt3-2.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/runmt3.png b/flow-docs/media/button-flow-with-user-input-tokens/runmt3.png new file mode 100644 index 000000000..08ed0ce8f Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/runmt3.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/runmt4.png b/flow-docs/media/button-flow-with-user-input-tokens/runmt4.png new file mode 100644 index 000000000..b937b1d96 Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/runmt4.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/runmt5.png b/flow-docs/media/button-flow-with-user-input-tokens/runmt5.png new file mode 100644 index 000000000..f4e7cb1aa Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/runmt5.png differ diff --git a/flow-docs/media/button-flow-with-user-input-tokens/runmt6.png b/flow-docs/media/button-flow-with-user-input-tokens/runmt6.png new file mode 100644 index 000000000..9dd9a164e Binary files /dev/null and b/flow-docs/media/button-flow-with-user-input-tokens/runmt6.png differ diff --git a/flow-docs/media/common-data-model-approve/add-action-in-dountil.png b/flow-docs/media/common-data-model-approve/add-action-in-dountil.png new file mode 100644 index 000000000..db01f6080 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/add-action-in-dountil.png differ diff --git a/flow-docs/media/common-data-model-approve/add-action.png b/flow-docs/media/common-data-model-approve/add-action.png new file mode 100644 index 000000000..3a718ddf9 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/add-action.png differ diff --git a/flow-docs/media/common-data-model-approve/add-approver.png b/flow-docs/media/common-data-model-approve/add-approver.png new file mode 100644 index 000000000..1a20e7ccf Binary files /dev/null and b/flow-docs/media/common-data-model-approve/add-approver.png differ diff --git a/flow-docs/media/common-data-model-approve/add-condition.png b/flow-docs/media/common-data-model-approve/add-condition.png new file mode 100644 index 000000000..7d865eed7 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/add-condition.png differ diff --git a/flow-docs/media/common-data-model-approve/add-default-status.png b/flow-docs/media/common-data-model-approve/add-default-status.png new file mode 100644 index 000000000..77007cd0e Binary files /dev/null and b/flow-docs/media/common-data-model-approve/add-default-status.png differ diff --git a/flow-docs/media/common-data-model-approve/add-delete-action.png b/flow-docs/media/common-data-model-approve/add-delete-action.png new file mode 100644 index 000000000..c42094a24 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/add-delete-action.png differ diff --git a/flow-docs/media/common-data-model-approve/add-do-until.png b/flow-docs/media/common-data-model-approve/add-do-until.png new file mode 100644 index 000000000..a9d379ac8 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/add-do-until.png differ diff --git a/flow-docs/media/common-data-model-approve/add-field.png b/flow-docs/media/common-data-model-approve/add-field.png new file mode 100644 index 000000000..7da2d5581 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/add-field.png differ diff --git a/flow-docs/media/common-data-model-approve/add-file-identifier.png b/flow-docs/media/common-data-model-approve/add-file-identifier.png new file mode 100644 index 000000000..600430e9c Binary files /dev/null and b/flow-docs/media/common-data-model-approve/add-file-identifier.png differ diff --git a/flow-docs/media/common-data-model-approve/add-filename-token.png b/flow-docs/media/common-data-model-approve/add-filename-token.png new file mode 100644 index 000000000..3fe4ed014 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/add-filename-token.png differ diff --git a/flow-docs/media/common-data-model-approve/add-object-id.png b/flow-docs/media/common-data-model-approve/add-object-id.png new file mode 100644 index 000000000..1b46bd8b1 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/add-object-id.png differ diff --git a/flow-docs/media/common-data-model-approve/add-status-to-condition.png b/flow-docs/media/common-data-model-approve/add-status-to-condition.png new file mode 100644 index 000000000..eaddc6ea8 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/add-status-to-condition.png differ diff --git a/flow-docs/media/common-data-model-approve/add-status.png b/flow-docs/media/common-data-model-approve/add-status.png new file mode 100644 index 000000000..e2050d7a4 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/add-status.png differ diff --git a/flow-docs/media/common-data-model-approve/afd-cdm.png b/flow-docs/media/common-data-model-approve/afd-cdm.png new file mode 100644 index 000000000..a08781598 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/afd-cdm.png differ diff --git a/flow-docs/media/common-data-model-approve/approval-body.png b/flow-docs/media/common-data-model-approve/approval-body.png new file mode 100644 index 000000000..c32897012 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/approval-body.png differ diff --git a/flow-docs/media/common-data-model-approve/approval-recipient.png b/flow-docs/media/common-data-model-approve/approval-recipient.png new file mode 100644 index 000000000..ae29f7d6b Binary files /dev/null and b/flow-docs/media/common-data-model-approve/approval-recipient.png differ diff --git a/flow-docs/media/common-data-model-approve/approver-field.png b/flow-docs/media/common-data-model-approve/approver-field.png new file mode 100644 index 000000000..b7a4e1c21 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/approver-field.png differ diff --git a/flow-docs/media/common-data-model-approve/back-arrow.png b/flow-docs/media/common-data-model-approve/back-arrow.png new file mode 100644 index 000000000..b85b40333 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/back-arrow.png differ diff --git a/flow-docs/media/common-data-model-approve/cdm-create-object.png b/flow-docs/media/common-data-model-approve/cdm-create-object.png new file mode 100644 index 000000000..a5ab9113c Binary files /dev/null and b/flow-docs/media/common-data-model-approve/cdm-create-object.png differ diff --git a/flow-docs/media/common-data-model-approve/change-status.png b/flow-docs/media/common-data-model-approve/change-status.png new file mode 100644 index 000000000..fcc705e47 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/change-status.png differ diff --git a/flow-docs/media/common-data-model-approve/check-status.png b/flow-docs/media/common-data-model-approve/check-status.png new file mode 100644 index 000000000..40993c245 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/check-status.png differ diff --git a/flow-docs/media/common-data-model-approve/choose-entity-flow.png b/flow-docs/media/common-data-model-approve/choose-entity-flow.png new file mode 100644 index 000000000..5efcc8943 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/choose-entity-flow.png differ diff --git a/flow-docs/media/common-data-model-approve/choose-entity.png b/flow-docs/media/common-data-model-approve/choose-entity.png new file mode 100644 index 000000000..a698e2080 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/choose-entity.png differ diff --git a/flow-docs/media/common-data-model-approve/choose-folder.png b/flow-docs/media/common-data-model-approve/choose-folder.png new file mode 100644 index 000000000..284b40c20 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/choose-folder.png differ diff --git a/flow-docs/media/common-data-model-approve/choose-layout.png b/flow-docs/media/common-data-model-approve/choose-layout.png new file mode 100644 index 000000000..01817e5e7 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/choose-layout.png differ diff --git a/flow-docs/media/common-data-model-approve/choose-value.png b/flow-docs/media/common-data-model-approve/choose-value.png new file mode 100644 index 000000000..d94c5547c Binary files /dev/null and b/flow-docs/media/common-data-model-approve/choose-value.png differ diff --git a/flow-docs/media/common-data-model-approve/condition-upper-left.png b/flow-docs/media/common-data-model-approve/condition-upper-left.png new file mode 100644 index 000000000..e7bc1c3d0 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/condition-upper-left.png differ diff --git a/flow-docs/media/common-data-model-approve/connect-button.png b/flow-docs/media/common-data-model-approve/connect-button.png new file mode 100644 index 000000000..44dbed475 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/connect-button.png differ diff --git a/flow-docs/media/common-data-model-approve/create-app.png b/flow-docs/media/common-data-model-approve/create-app.png new file mode 100644 index 000000000..af03ec5f6 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/create-app.png differ diff --git a/flow-docs/media/common-data-model-approve/create-button.png b/flow-docs/media/common-data-model-approve/create-button.png new file mode 100644 index 000000000..e8f826595 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/create-button.png differ diff --git a/flow-docs/media/common-data-model-approve/create-database.png b/flow-docs/media/common-data-model-approve/create-database.png new file mode 100644 index 000000000..1674ec678 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/create-database.png differ diff --git a/flow-docs/media/common-data-model-approve/create-flow.png b/flow-docs/media/common-data-model-approve/create-flow.png new file mode 100644 index 000000000..faeaa2b60 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/create-flow.png differ diff --git a/flow-docs/media/common-data-model-approve/create-object.png b/flow-docs/media/common-data-model-approve/create-object.png new file mode 100644 index 000000000..3d88b552d Binary files /dev/null and b/flow-docs/media/common-data-model-approve/create-object.png differ diff --git a/flow-docs/media/common-data-model-approve/create-trigger.png b/flow-docs/media/common-data-model-approve/create-trigger.png new file mode 100644 index 000000000..9ca60fa8a Binary files /dev/null and b/flow-docs/media/common-data-model-approve/create-trigger.png differ diff --git a/flow-docs/media/common-data-model-approve/delete-rejected.png b/flow-docs/media/common-data-model-approve/delete-rejected.png new file mode 100644 index 000000000..8f4d48235 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/delete-rejected.png differ diff --git a/flow-docs/media/common-data-model-approve/display-name.png b/flow-docs/media/common-data-model-approve/display-name.png new file mode 100644 index 000000000..8e1773287 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/display-name.png differ diff --git a/flow-docs/media/common-data-model-approve/do-until-not-pending.png b/flow-docs/media/common-data-model-approve/do-until-not-pending.png new file mode 100644 index 000000000..d3bfc48fc Binary files /dev/null and b/flow-docs/media/common-data-model-approve/do-until-not-pending.png differ diff --git a/flow-docs/media/common-data-model-approve/document-approval.png b/flow-docs/media/common-data-model-approve/document-approval.png new file mode 100644 index 000000000..56e66a99a Binary files /dev/null and b/flow-docs/media/common-data-model-approve/document-approval.png differ diff --git a/flow-docs/media/common-data-model-approve/document-rejected.png b/flow-docs/media/common-data-model-approve/document-rejected.png new file mode 100644 index 000000000..8397907e9 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/document-rejected.png differ diff --git a/flow-docs/media/common-data-model-approve/done-button.png b/flow-docs/media/common-data-model-approve/done-button.png new file mode 100644 index 000000000..3f3bde580 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/done-button.png differ diff --git a/flow-docs/media/common-data-model-approve/dropbox-delete-file.png b/flow-docs/media/common-data-model-approve/dropbox-delete-file.png new file mode 100644 index 000000000..7274257d1 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/dropbox-delete-file.png differ diff --git a/flow-docs/media/common-data-model-approve/dropbox-trigger.png b/flow-docs/media/common-data-model-approve/dropbox-trigger.png new file mode 100644 index 000000000..7ee0ceb41 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/dropbox-trigger.png differ diff --git a/flow-docs/media/common-data-model-approve/edit-record.png b/flow-docs/media/common-data-model-approve/edit-record.png new file mode 100644 index 000000000..81754c041 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/edit-record.png differ diff --git a/flow-docs/media/common-data-model-approve/entity-fields.png b/flow-docs/media/common-data-model-approve/entity-fields.png new file mode 100644 index 000000000..93d403d1e Binary files /dev/null and b/flow-docs/media/common-data-model-approve/entity-fields.png differ diff --git a/flow-docs/media/common-data-model-approve/entity-name.png b/flow-docs/media/common-data-model-approve/entity-name.png new file mode 100644 index 000000000..654f59e88 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/entity-name.png differ diff --git a/flow-docs/media/common-data-model-approve/entity-properties.png b/flow-docs/media/common-data-model-approve/entity-properties.png new file mode 100644 index 000000000..bf24ba4ba Binary files /dev/null and b/flow-docs/media/common-data-model-approve/entity-properties.png differ diff --git a/flow-docs/media/common-data-model-approve/fileid-field.png b/flow-docs/media/common-data-model-approve/fileid-field.png new file mode 100644 index 000000000..a2426ba43 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/fileid-field.png differ diff --git a/flow-docs/media/common-data-model-approve/folder-icon.png b/flow-docs/media/common-data-model-approve/folder-icon.png new file mode 100644 index 000000000..2bcd70ca8 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/folder-icon.png differ diff --git a/flow-docs/media/common-data-model-approve/get-object.png b/flow-docs/media/common-data-model-approve/get-object.png new file mode 100644 index 000000000..9ab1b8fdc Binary files /dev/null and b/flow-docs/media/common-data-model-approve/get-object.png differ diff --git a/flow-docs/media/common-data-model-approve/hamburger-icon.png b/flow-docs/media/common-data-model-approve/hamburger-icon.png new file mode 100644 index 000000000..9bc90f912 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/hamburger-icon.png differ diff --git a/flow-docs/media/common-data-model-approve/identify-file-delete.png b/flow-docs/media/common-data-model-approve/identify-file-delete.png new file mode 100644 index 000000000..6b4b1efc1 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/identify-file-delete.png differ diff --git a/flow-docs/media/common-data-model-approve/if-yes-action.png b/flow-docs/media/common-data-model-approve/if-yes-action.png new file mode 100644 index 000000000..c1936542c Binary files /dev/null and b/flow-docs/media/common-data-model-approve/if-yes-action.png differ diff --git a/flow-docs/media/common-data-model-approve/if-yes-send-mail.png b/flow-docs/media/common-data-model-approve/if-yes-send-mail.png new file mode 100644 index 000000000..869ca7f45 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/if-yes-send-mail.png differ diff --git a/flow-docs/media/common-data-model-approve/is-not-equal.png b/flow-docs/media/common-data-model-approve/is-not-equal.png new file mode 100644 index 000000000..5024726f2 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/is-not-equal.png differ diff --git a/flow-docs/media/common-data-model-approve/manage-entities.png b/flow-docs/media/common-data-model-approve/manage-entities.png new file mode 100644 index 000000000..abf5ef748 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/manage-entities.png differ diff --git a/flow-docs/media/common-data-model-approve/myflows-button.png b/flow-docs/media/common-data-model-approve/myflows-button.png new file mode 100644 index 000000000..89a823e47 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/myflows-button.png differ diff --git a/flow-docs/media/common-data-model-approve/new-app-button.png b/flow-docs/media/common-data-model-approve/new-app-button.png new file mode 100644 index 000000000..a7de6ca65 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/new-app-button.png differ diff --git a/flow-docs/media/common-data-model-approve/new-entity.png b/flow-docs/media/common-data-model-approve/new-entity.png new file mode 100644 index 000000000..a06403e03 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/new-entity.png differ diff --git a/flow-docs/media/common-data-model-approve/new-step-button.png b/flow-docs/media/common-data-model-approve/new-step-button.png new file mode 100644 index 000000000..e8b715490 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/new-step-button.png differ diff --git a/flow-docs/media/common-data-model-approve/next-button.png b/flow-docs/media/common-data-model-approve/next-button.png new file mode 100644 index 000000000..ca3d6bfca Binary files /dev/null and b/flow-docs/media/common-data-model-approve/next-button.png differ diff --git a/flow-docs/media/common-data-model-approve/open-details.png b/flow-docs/media/common-data-model-approve/open-details.png new file mode 100644 index 000000000..a55b45074 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/open-details.png differ diff --git a/flow-docs/media/common-data-model-approve/open-dropdown.png b/flow-docs/media/common-data-model-approve/open-dropdown.png new file mode 100644 index 000000000..ab4d22b0f Binary files /dev/null and b/flow-docs/media/common-data-model-approve/open-dropdown.png differ diff --git a/flow-docs/media/common-data-model-approve/open-preview.png b/flow-docs/media/common-data-model-approve/open-preview.png new file mode 100644 index 000000000..46efa2a28 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/open-preview.png differ diff --git a/flow-docs/media/common-data-model-approve/quick-tour.png b/flow-docs/media/common-data-model-approve/quick-tour.png new file mode 100644 index 000000000..b881e0a87 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/quick-tour.png differ diff --git a/flow-docs/media/common-data-model-approve/reject-file.png b/flow-docs/media/common-data-model-approve/reject-file.png new file mode 100644 index 000000000..52486b40c Binary files /dev/null and b/flow-docs/media/common-data-model-approve/reject-file.png differ diff --git a/flow-docs/media/common-data-model-approve/rejection-body.png b/flow-docs/media/common-data-model-approve/rejection-body.png new file mode 100644 index 000000000..cfc1bb11c Binary files /dev/null and b/flow-docs/media/common-data-model-approve/rejection-body.png differ diff --git a/flow-docs/media/common-data-model-approve/save-flow.png b/flow-docs/media/common-data-model-approve/save-flow.png new file mode 100644 index 000000000..6e5147859 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/save-flow.png differ diff --git a/flow-docs/media/common-data-model-approve/save-record.png b/flow-docs/media/common-data-model-approve/save-record.png new file mode 100644 index 000000000..a958a6883 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/save-record.png differ diff --git a/flow-docs/media/common-data-model-approve/search-entities.png b/flow-docs/media/common-data-model-approve/search-entities.png new file mode 100644 index 000000000..77d3a0cee Binary files /dev/null and b/flow-docs/media/common-data-model-approve/search-entities.png differ diff --git a/flow-docs/media/common-data-model-approve/select-header.png b/flow-docs/media/common-data-model-approve/select-header.png new file mode 100644 index 000000000..d5a6b18b9 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/select-header.png differ diff --git a/flow-docs/media/common-data-model-approve/set-body.png b/flow-docs/media/common-data-model-approve/set-body.png new file mode 100644 index 000000000..5d3d77636 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/set-body.png differ diff --git a/flow-docs/media/common-data-model-approve/set-heading.png b/flow-docs/media/common-data-model-approve/set-heading.png new file mode 100644 index 000000000..f2479ef17 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/set-heading.png differ diff --git a/flow-docs/media/common-data-model-approve/set-title-field.png b/flow-docs/media/common-data-model-approve/set-title-field.png new file mode 100644 index 000000000..bfec5f421 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/set-title-field.png differ diff --git a/flow-docs/media/common-data-model-approve/signin-flow.png b/flow-docs/media/common-data-model-approve/signin-flow.png new file mode 100644 index 000000000..f1e7a5bfc Binary files /dev/null and b/flow-docs/media/common-data-model-approve/signin-flow.png differ diff --git a/flow-docs/media/common-data-model-approve/status-equals-approved.png b/flow-docs/media/common-data-model-approve/status-equals-approved.png new file mode 100644 index 000000000..bc08c9178 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/status-equals-approved.png differ diff --git a/flow-docs/media/common-data-model-approve/status-field.png b/flow-docs/media/common-data-model-approve/status-field.png new file mode 100644 index 000000000..cbb0a4c96 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/status-field.png differ diff --git a/flow-docs/media/common-data-model-approve/subject-is-file-name.png b/flow-docs/media/common-data-model-approve/subject-is-file-name.png new file mode 100644 index 000000000..e3327051c Binary files /dev/null and b/flow-docs/media/common-data-model-approve/subject-is-file-name.png differ diff --git a/flow-docs/media/common-data-model-approve/zoom-control.png b/flow-docs/media/common-data-model-approve/zoom-control.png new file mode 100644 index 000000000..dba466e77 Binary files /dev/null and b/flow-docs/media/common-data-model-approve/zoom-control.png differ diff --git a/flow-docs/media/common-data-model-intro/choose-template.png b/flow-docs/media/common-data-model-intro/choose-template.png new file mode 100644 index 000000000..e4cc33c4a Binary files /dev/null and b/flow-docs/media/common-data-model-intro/choose-template.png differ diff --git a/flow-docs/media/common-data-model-intro/confirm-accounts.png b/flow-docs/media/common-data-model-intro/confirm-accounts.png new file mode 100644 index 000000000..7cb63d53f Binary files /dev/null and b/flow-docs/media/common-data-model-intro/confirm-accounts.png differ diff --git a/flow-docs/media/common-data-model-intro/create-flow.png b/flow-docs/media/common-data-model-intro/create-flow.png new file mode 100644 index 000000000..74f7873f2 Binary files /dev/null and b/flow-docs/media/common-data-model-intro/create-flow.png differ diff --git a/flow-docs/media/common-data-model-intro/dynamics-signin.png b/flow-docs/media/common-data-model-intro/dynamics-signin.png new file mode 100644 index 000000000..491361e3d Binary files /dev/null and b/flow-docs/media/common-data-model-intro/dynamics-signin.png differ diff --git a/flow-docs/media/common-data-model-intro/name-flow.png b/flow-docs/media/common-data-model-intro/name-flow.png new file mode 100644 index 000000000..41d7da982 Binary files /dev/null and b/flow-docs/media/common-data-model-intro/name-flow.png differ diff --git a/flow-docs/media/common-data-model-intro/select-environment.png b/flow-docs/media/common-data-model-intro/select-environment.png new file mode 100644 index 000000000..ec5a8e3b3 Binary files /dev/null and b/flow-docs/media/common-data-model-intro/select-environment.png differ diff --git a/flow-docs/media/common-data-model-intro/signin-flow.png b/flow-docs/media/common-data-model-intro/signin-flow.png new file mode 100644 index 000000000..f1e7a5bfc Binary files /dev/null and b/flow-docs/media/common-data-model-intro/signin-flow.png differ diff --git a/flow-docs/media/common-data-model-intro/specify-database.png b/flow-docs/media/common-data-model-intro/specify-database.png new file mode 100644 index 000000000..9a5d59875 Binary files /dev/null and b/flow-docs/media/common-data-model-intro/specify-database.png differ diff --git a/flow-docs/media/common-data-model-intro/specify-instance.png b/flow-docs/media/common-data-model-intro/specify-instance.png new file mode 100644 index 000000000..67f2caf8a Binary files /dev/null and b/flow-docs/media/common-data-model-intro/specify-instance.png differ diff --git a/flow-docs/media/common-data-model-intro/template-search.png b/flow-docs/media/common-data-model-intro/template-search.png new file mode 100644 index 000000000..4eca8766c Binary files /dev/null and b/flow-docs/media/common-data-model-intro/template-search.png differ diff --git a/flow-docs/media/common-data-model-intro/use-template.png b/flow-docs/media/common-data-model-intro/use-template.png new file mode 100644 index 000000000..d834d2fa8 Binary files /dev/null and b/flow-docs/media/common-data-model-intro/use-template.png differ diff --git a/flow-docs/media/connection-dynamics365/flow-addtopic.png b/flow-docs/media/connection-dynamics365/flow-addtopic.png new file mode 100644 index 000000000..bb2dcc16e Binary files /dev/null and b/flow-docs/media/connection-dynamics365/flow-addtopic.png differ diff --git a/flow-docs/media/connection-dynamics365/flow-details.png b/flow-docs/media/connection-dynamics365/flow-details.png new file mode 100644 index 000000000..e74dd2409 Binary files /dev/null and b/flow-docs/media/connection-dynamics365/flow-details.png differ diff --git a/flow-docs/media/connection-dynamics365/flow-failedrun-details.png b/flow-docs/media/connection-dynamics365/flow-failedrun-details.png new file mode 100644 index 000000000..0e59c01e8 Binary files /dev/null and b/flow-docs/media/connection-dynamics365/flow-failedrun-details.png differ diff --git a/flow-docs/media/connection-dynamics365/flow-failedrun.png b/flow-docs/media/connection-dynamics365/flow-failedrun.png new file mode 100644 index 000000000..324975106 Binary files /dev/null and b/flow-docs/media/connection-dynamics365/flow-failedrun.png differ diff --git a/flow-docs/media/connection-dynamics365/flow-info-icon.png b/flow-docs/media/connection-dynamics365/flow-info-icon.png new file mode 100644 index 000000000..427c0f2fc Binary files /dev/null and b/flow-docs/media/connection-dynamics365/flow-info-icon.png differ diff --git a/flow-docs/media/connection-dynamics365/flow-orderby-query.png b/flow-docs/media/connection-dynamics365/flow-orderby-query.png new file mode 100644 index 000000000..eb03d9a5b Binary files /dev/null and b/flow-docs/media/connection-dynamics365/flow-orderby-query.png differ diff --git a/flow-docs/media/connection-dynamics365/flow-recordid-account.png b/flow-docs/media/connection-dynamics365/flow-recordid-account.png new file mode 100644 index 000000000..f9278d3c3 Binary files /dev/null and b/flow-docs/media/connection-dynamics365/flow-recordid-account.png differ diff --git a/flow-docs/media/connection-dynamics365/flow-recordid-user.png b/flow-docs/media/connection-dynamics365/flow-recordid-user.png new file mode 100644 index 000000000..a206acc93 Binary files /dev/null and b/flow-docs/media/connection-dynamics365/flow-recordid-user.png differ diff --git a/flow-docs/media/connection-dynamics365/flow-run-status.png b/flow-docs/media/connection-dynamics365/flow-run-status.png new file mode 100644 index 000000000..a389bec5d Binary files /dev/null and b/flow-docs/media/connection-dynamics365/flow-run-status.png differ diff --git a/flow-docs/media/connection-dynamics365/popout.png b/flow-docs/media/connection-dynamics365/popout.png new file mode 100644 index 000000000..6cc2e3437 Binary files /dev/null and b/flow-docs/media/connection-dynamics365/popout.png differ diff --git a/flow-docs/media/connection-dynamics365/recordid.png b/flow-docs/media/connection-dynamics365/recordid.png new file mode 100644 index 000000000..43903b5df Binary files /dev/null and b/flow-docs/media/connection-dynamics365/recordid.png differ diff --git a/flow-docs/media/create-team-flows/addowner1.png b/flow-docs/media/create-team-flows/addowner1.png new file mode 100644 index 000000000..df7e5558d Binary files /dev/null and b/flow-docs/media/create-team-flows/addowner1.png differ diff --git a/flow-docs/media/create-team-flows/addowner2.png b/flow-docs/media/create-team-flows/addowner2.png new file mode 100644 index 000000000..8293c6391 Binary files /dev/null and b/flow-docs/media/create-team-flows/addowner2.png differ diff --git a/flow-docs/media/create-team-flows/addowner3.png b/flow-docs/media/create-team-flows/addowner3.png new file mode 100644 index 000000000..682e3e7d7 Binary files /dev/null and b/flow-docs/media/create-team-flows/addowner3.png differ diff --git a/flow-docs/media/create-team-flows/addowner4.png b/flow-docs/media/create-team-flows/addowner4.png new file mode 100644 index 000000000..17d4b7d53 Binary files /dev/null and b/flow-docs/media/create-team-flows/addowner4.png differ diff --git a/flow-docs/media/create-team-flows/addowner5.png b/flow-docs/media/create-team-flows/addowner5.png new file mode 100644 index 000000000..f520db28a Binary files /dev/null and b/flow-docs/media/create-team-flows/addowner5.png differ diff --git a/flow-docs/media/create-team-flows/embeddedconnections.png b/flow-docs/media/create-team-flows/embeddedconnections.png new file mode 100644 index 000000000..211bd0b25 Binary files /dev/null and b/flow-docs/media/create-team-flows/embeddedconnections.png differ diff --git a/flow-docs/media/create-team-flows/removeowner1.png b/flow-docs/media/create-team-flows/removeowner1.png new file mode 100644 index 000000000..feea5a33e Binary files /dev/null and b/flow-docs/media/create-team-flows/removeowner1.png differ diff --git a/flow-docs/media/create-team-flows/removeowner2.png b/flow-docs/media/create-team-flows/removeowner2.png new file mode 100644 index 000000000..2b11101e4 Binary files /dev/null and b/flow-docs/media/create-team-flows/removeowner2.png differ diff --git a/flow-docs/media/create-team-flows/removeowner3.png b/flow-docs/media/create-team-flows/removeowner3.png new file mode 100644 index 000000000..a0d63045d Binary files /dev/null and b/flow-docs/media/create-team-flows/removeowner3.png differ diff --git a/flow-docs/media/create-team-flows/removeowner4.png b/flow-docs/media/create-team-flows/removeowner4.png new file mode 100644 index 000000000..52437028c Binary files /dev/null and b/flow-docs/media/create-team-flows/removeowner4.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/add-app-btn.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/add-app-btn.png new file mode 100644 index 000000000..365f37bbb Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/add-app-btn.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/application-id.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/application-id.png new file mode 100644 index 000000000..b59c0ab10 Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/application-id.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/azureaad.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/azureaad.png new file mode 100644 index 000000000..502b64d31 Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/azureaad.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/azureapplication.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/azureapplication.png new file mode 100644 index 000000000..792883ff2 Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/azureapplication.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/configurekeys.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/configurekeys.png new file mode 100644 index 000000000..b92ac1589 Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/configurekeys.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/create-custom-api.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/create-custom-api.png new file mode 100644 index 000000000..b0deb6ae6 Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/create-custom-api.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/createdcustomapi.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/createdcustomapi.png new file mode 100644 index 000000000..90641087a Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/createdcustomapi.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/current-user.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/current-user.png new file mode 100644 index 000000000..a00b4f568 Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/current-user.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/finding-custom-apis.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/finding-custom-apis.png new file mode 100644 index 000000000..73fe5279a Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/finding-custom-apis.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/keys.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/keys.png new file mode 100644 index 000000000..dcb296505 Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/keys.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/list-custom-apis.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/list-custom-apis.png new file mode 100644 index 000000000..49ef9784c Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/list-custom-apis.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/newapplication.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/newapplication.png new file mode 100644 index 000000000..bfee0d22f Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/newapplication.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/newapplication2.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/newapplication2.png new file mode 100644 index 000000000..969129aad Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/newapplication2.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/oauth-settings.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/oauth-settings.png new file mode 100644 index 000000000..32efc8296 Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/oauth-settings.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/permissions.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/permissions.png new file mode 100644 index 000000000..de305cb16 Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/permissions.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/permissions2.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/permissions2.png new file mode 100644 index 000000000..9782108c3 Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/permissions2.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/permissions3.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/permissions3.png new file mode 100644 index 000000000..d4821af4b Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/permissions3.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/reply-urls.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/reply-urls.png new file mode 100644 index 000000000..19483a0eb Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/reply-urls.png differ diff --git a/flow-docs/media/customapi-azure-resource-manager-tutorial/settings-btn.png b/flow-docs/media/customapi-azure-resource-manager-tutorial/settings-btn.png new file mode 100644 index 000000000..2be1c0e90 Binary files /dev/null and b/flow-docs/media/customapi-azure-resource-manager-tutorial/settings-btn.png differ diff --git a/flow-docs/media/customapi-how-to-swagger/figure_1.png b/flow-docs/media/customapi-how-to-swagger/figure_1.png new file mode 100644 index 000000000..6f5221492 Binary files /dev/null and b/flow-docs/media/customapi-how-to-swagger/figure_1.png differ diff --git a/flow-docs/media/customapi-how-to-swagger/figure_2.png b/flow-docs/media/customapi-how-to-swagger/figure_2.png new file mode 100644 index 000000000..97c4cfaf2 Binary files /dev/null and b/flow-docs/media/customapi-how-to-swagger/figure_2.png differ diff --git a/flow-docs/media/customapi-how-to-swagger/figure_3.jpg b/flow-docs/media/customapi-how-to-swagger/figure_3.jpg new file mode 100644 index 000000000..a364e9d7e Binary files /dev/null and b/flow-docs/media/customapi-how-to-swagger/figure_3.jpg differ diff --git a/flow-docs/media/customapi-how-to-swagger/figure_4.jpg b/flow-docs/media/customapi-how-to-swagger/figure_4.jpg new file mode 100644 index 000000000..f7ae6f5c0 Binary files /dev/null and b/flow-docs/media/customapi-how-to-swagger/figure_4.jpg differ diff --git a/flow-docs/media/customapi-how-to-swagger/figure_5.png b/flow-docs/media/customapi-how-to-swagger/figure_5.png new file mode 100644 index 000000000..21668e02f Binary files /dev/null and b/flow-docs/media/customapi-how-to-swagger/figure_5.png differ diff --git a/flow-docs/media/customapi-how-to-swagger/figure_6.png b/flow-docs/media/customapi-how-to-swagger/figure_6.png new file mode 100644 index 000000000..cbef02c81 Binary files /dev/null and b/flow-docs/media/customapi-how-to-swagger/figure_6.png differ diff --git a/flow-docs/media/customapi-how-to-swagger/figure_7.png b/flow-docs/media/customapi-how-to-swagger/figure_7.png new file mode 100644 index 000000000..574e53fbe Binary files /dev/null and b/flow-docs/media/customapi-how-to-swagger/figure_7.png differ diff --git a/flow-docs/media/customapi-web-api-tutorial/azure-publishing.png b/flow-docs/media/customapi-web-api-tutorial/azure-publishing.png new file mode 100644 index 000000000..faaf8072d Binary files /dev/null and b/flow-docs/media/customapi-web-api-tutorial/azure-publishing.png differ diff --git a/flow-docs/media/customapi-web-api-tutorial/new-web-api.png b/flow-docs/media/customapi-web-api-tutorial/new-web-api.png new file mode 100644 index 000000000..71f69f317 Binary files /dev/null and b/flow-docs/media/customapi-web-api-tutorial/new-web-api.png differ diff --git a/flow-docs/media/customapi-web-api-tutorial/newwebapp.png b/flow-docs/media/customapi-web-api-tutorial/newwebapp.png new file mode 100644 index 000000000..5226b55e8 Binary files /dev/null and b/flow-docs/media/customapi-web-api-tutorial/newwebapp.png differ diff --git a/flow-docs/media/customapi-web-api-tutorial/noauth.png b/flow-docs/media/customapi-web-api-tutorial/noauth.png new file mode 100644 index 000000000..0c47dfa49 Binary files /dev/null and b/flow-docs/media/customapi-web-api-tutorial/noauth.png differ diff --git a/flow-docs/media/customapi-web-api-tutorial/swashbuckle-console.png b/flow-docs/media/customapi-web-api-tutorial/swashbuckle-console.png new file mode 100644 index 000000000..af1f77a67 Binary files /dev/null and b/flow-docs/media/customapi-web-api-tutorial/swashbuckle-console.png differ diff --git a/flow-docs/media/customapi-webhooks/basic-auth.png b/flow-docs/media/customapi-webhooks/basic-auth.png new file mode 100644 index 000000000..834911d42 Binary files /dev/null and b/flow-docs/media/customapi-webhooks/basic-auth.png differ diff --git a/flow-docs/media/customapi-webhooks/create-api.png b/flow-docs/media/customapi-webhooks/create-api.png new file mode 100644 index 000000000..23c216ce8 Binary files /dev/null and b/flow-docs/media/customapi-webhooks/create-api.png differ diff --git a/flow-docs/media/customapi-webhooks/create-new-trigger-1.png b/flow-docs/media/customapi-webhooks/create-new-trigger-1.png new file mode 100644 index 000000000..17ddd5ca7 Binary files /dev/null and b/flow-docs/media/customapi-webhooks/create-new-trigger-1.png differ diff --git a/flow-docs/media/customapi-webhooks/create-new-trigger-2.png b/flow-docs/media/customapi-webhooks/create-new-trigger-2.png new file mode 100644 index 000000000..64e349a3b Binary files /dev/null and b/flow-docs/media/customapi-webhooks/create-new-trigger-2.png differ diff --git a/flow-docs/media/customapi-webhooks/create-new-trigger-3.png b/flow-docs/media/customapi-webhooks/create-new-trigger-3.png new file mode 100644 index 000000000..633e47add Binary files /dev/null and b/flow-docs/media/customapi-webhooks/create-new-trigger-3.png differ diff --git a/flow-docs/media/customapi-webhooks/create-new-trigger-4.png b/flow-docs/media/customapi-webhooks/create-new-trigger-4.png new file mode 100644 index 000000000..5919948ba Binary files /dev/null and b/flow-docs/media/customapi-webhooks/create-new-trigger-4.png differ diff --git a/flow-docs/media/customapi-webhooks/custom-apis.png b/flow-docs/media/customapi-webhooks/custom-apis.png new file mode 100644 index 000000000..387be2da4 Binary files /dev/null and b/flow-docs/media/customapi-webhooks/custom-apis.png differ diff --git a/flow-docs/media/customapi-webhooks/flow-name.png b/flow-docs/media/customapi-webhooks/flow-name.png new file mode 100644 index 000000000..de51267e5 Binary files /dev/null and b/flow-docs/media/customapi-webhooks/flow-name.png differ diff --git a/flow-docs/media/customapi-webhooks/generate-new-token.png b/flow-docs/media/customapi-webhooks/generate-new-token.png new file mode 100644 index 000000000..92bde2313 Binary files /dev/null and b/flow-docs/media/customapi-webhooks/generate-new-token.png differ diff --git a/flow-docs/media/customapi-webhooks/github-settings.png b/flow-docs/media/customapi-webhooks/github-settings.png new file mode 100644 index 000000000..c1bdf5edd Binary files /dev/null and b/flow-docs/media/customapi-webhooks/github-settings.png differ diff --git a/flow-docs/media/customapi-webhooks/import-swagger.png b/flow-docs/media/customapi-webhooks/import-swagger.png new file mode 100644 index 000000000..b1ad58a5d Binary files /dev/null and b/flow-docs/media/customapi-webhooks/import-swagger.png differ diff --git a/flow-docs/media/customapi-webhooks/new-connection.png b/flow-docs/media/customapi-webhooks/new-connection.png new file mode 100644 index 000000000..a6fdcba99 Binary files /dev/null and b/flow-docs/media/customapi-webhooks/new-connection.png differ diff --git a/flow-docs/media/customapi-webhooks/new-token.png b/flow-docs/media/customapi-webhooks/new-token.png new file mode 100644 index 000000000..356322d0c Binary files /dev/null and b/flow-docs/media/customapi-webhooks/new-token.png differ diff --git a/flow-docs/media/customapi-webhooks/new-trigger.png b/flow-docs/media/customapi-webhooks/new-trigger.png new file mode 100644 index 000000000..d802e1770 Binary files /dev/null and b/flow-docs/media/customapi-webhooks/new-trigger.png differ diff --git a/flow-docs/media/customapi-webhooks/personal-access-tokens.png b/flow-docs/media/customapi-webhooks/personal-access-tokens.png new file mode 100644 index 000000000..5af27c689 Binary files /dev/null and b/flow-docs/media/customapi-webhooks/personal-access-tokens.png differ diff --git a/flow-docs/media/customapi-webhooks/push-details.png b/flow-docs/media/customapi-webhooks/push-details.png new file mode 100644 index 000000000..8e75e7476 Binary files /dev/null and b/flow-docs/media/customapi-webhooks/push-details.png differ diff --git a/flow-docs/media/customapi-webhooks/push-notification.png b/flow-docs/media/customapi-webhooks/push-notification.png new file mode 100644 index 000000000..0832b502d Binary files /dev/null and b/flow-docs/media/customapi-webhooks/push-notification.png differ diff --git a/flow-docs/media/customapi-webhooks/repo-hook.png b/flow-docs/media/customapi-webhooks/repo-hook.png new file mode 100644 index 000000000..f64794d58 Binary files /dev/null and b/flow-docs/media/customapi-webhooks/repo-hook.png differ diff --git a/flow-docs/media/customapi-webhooks/repo-info.png b/flow-docs/media/customapi-webhooks/repo-info.png new file mode 100644 index 000000000..f882eebd3 Binary files /dev/null and b/flow-docs/media/customapi-webhooks/repo-info.png differ diff --git a/flow-docs/media/dev-appsource-test-drive/01-excel-file.png b/flow-docs/media/dev-appsource-test-drive/01-excel-file.png new file mode 100644 index 000000000..280d7adf9 Binary files /dev/null and b/flow-docs/media/dev-appsource-test-drive/01-excel-file.png differ diff --git a/flow-docs/media/dev-appsource-test-drive/02-static-data.png b/flow-docs/media/dev-appsource-test-drive/02-static-data.png new file mode 100644 index 000000000..7d707722c Binary files /dev/null and b/flow-docs/media/dev-appsource-test-drive/02-static-data.png differ diff --git a/flow-docs/media/dev-appsource-test-drive/03-data-sources.png b/flow-docs/media/dev-appsource-test-drive/03-data-sources.png new file mode 100644 index 000000000..0eb707fc6 Binary files /dev/null and b/flow-docs/media/dev-appsource-test-drive/03-data-sources.png differ diff --git a/flow-docs/media/email-triggers/email-triggers-2.png b/flow-docs/media/email-triggers/email-triggers-2.png new file mode 100644 index 000000000..317a676f7 Binary files /dev/null and b/flow-docs/media/email-triggers/email-triggers-2.png differ diff --git a/flow-docs/media/email-triggers/email-triggers-3.png b/flow-docs/media/email-triggers/email-triggers-3.png new file mode 100644 index 000000000..382c60668 Binary files /dev/null and b/flow-docs/media/email-triggers/email-triggers-3.png differ diff --git a/flow-docs/media/email-triggers/email-triggers-4.png b/flow-docs/media/email-triggers/email-triggers-4.png new file mode 100644 index 000000000..f339c44a4 Binary files /dev/null and b/flow-docs/media/email-triggers/email-triggers-4.png differ diff --git a/flow-docs/media/email-triggers/email-triggers-7.png b/flow-docs/media/email-triggers/email-triggers-7.png new file mode 100644 index 000000000..d91fbeb01 Binary files /dev/null and b/flow-docs/media/email-triggers/email-triggers-7.png differ diff --git a/flow-docs/media/email-triggers/email-triggers-folder-notification.png b/flow-docs/media/email-triggers/email-triggers-folder-notification.png new file mode 100644 index 000000000..396d0d47e Binary files /dev/null and b/flow-docs/media/email-triggers/email-triggers-folder-notification.png differ diff --git a/flow-docs/media/email-triggers/email-triggers-from.png b/flow-docs/media/email-triggers/email-triggers-from.png new file mode 100644 index 000000000..dd4855a98 Binary files /dev/null and b/flow-docs/media/email-triggers/email-triggers-from.png differ diff --git a/flow-docs/media/email-triggers/email-triggers-sender-2.png b/flow-docs/media/email-triggers/email-triggers-sender-2.png new file mode 100644 index 000000000..84d91b21e Binary files /dev/null and b/flow-docs/media/email-triggers/email-triggers-sender-2.png differ diff --git a/flow-docs/media/email-triggers/email-triggers-sender-5.png b/flow-docs/media/email-triggers/email-triggers-sender-5.png new file mode 100644 index 000000000..8e9e8f1e6 Binary files /dev/null and b/flow-docs/media/email-triggers/email-triggers-sender-5.png differ diff --git a/flow-docs/media/email-triggers/email-triggers-sender-folder.png b/flow-docs/media/email-triggers/email-triggers-sender-folder.png new file mode 100644 index 000000000..72c90c73c Binary files /dev/null and b/flow-docs/media/email-triggers/email-triggers-sender-folder.png differ diff --git a/flow-docs/media/email-triggers/email-triggers-sender-notification.png b/flow-docs/media/email-triggers/email-triggers-sender-notification.png new file mode 100644 index 000000000..875969176 Binary files /dev/null and b/flow-docs/media/email-triggers/email-triggers-sender-notification.png differ diff --git a/flow-docs/media/email-triggers/email-triggers-subject-notification.png b/flow-docs/media/email-triggers/email-triggers-subject-notification.png new file mode 100644 index 000000000..b76f5c757 Binary files /dev/null and b/flow-docs/media/email-triggers/email-triggers-subject-notification.png differ diff --git a/flow-docs/media/email-triggers/email-triggers-subject-text.png b/flow-docs/media/email-triggers/email-triggers-subject-text.png new file mode 100644 index 000000000..5625f1d67 Binary files /dev/null and b/flow-docs/media/email-triggers/email-triggers-subject-text.png differ diff --git a/flow-docs/media/environments-overview-admin/add-environment-maker.png b/flow-docs/media/environments-overview-admin/add-environment-maker.png new file mode 100644 index 000000000..717b84e36 Binary files /dev/null and b/flow-docs/media/environments-overview-admin/add-environment-maker.png differ diff --git a/flow-docs/media/environments-overview-admin/environment-roles.png b/flow-docs/media/environments-overview-admin/environment-roles.png new file mode 100644 index 000000000..399ea4e51 Binary files /dev/null and b/flow-docs/media/environments-overview-admin/environment-roles.png differ diff --git a/flow-docs/media/environments-overview-admin/environments-list.png b/flow-docs/media/environments-overview-admin/environments-list.png new file mode 100644 index 000000000..3f5bacde1 Binary files /dev/null and b/flow-docs/media/environments-overview-admin/environments-list.png differ diff --git a/flow-docs/media/environments-overview-admin/open-environment.png b/flow-docs/media/environments-overview-admin/open-environment.png new file mode 100644 index 000000000..1966c2e9c Binary files /dev/null and b/flow-docs/media/environments-overview-admin/open-environment.png differ diff --git a/flow-docs/media/environments-overview-admin/security-permission-set.png b/flow-docs/media/environments-overview-admin/security-permission-set.png new file mode 100644 index 000000000..997ceea52 Binary files /dev/null and b/flow-docs/media/environments-overview-admin/security-permission-set.png differ diff --git a/flow-docs/media/environments-overview-admin/security-user-roles.png b/flow-docs/media/environments-overview-admin/security-user-roles.png new file mode 100644 index 000000000..a0c65ee4e Binary files /dev/null and b/flow-docs/media/environments-overview-admin/security-user-roles.png differ diff --git a/flow-docs/media/environments-overview-admin/select-environments.png b/flow-docs/media/environments-overview-admin/select-environments.png new file mode 100644 index 000000000..d993c7087 Binary files /dev/null and b/flow-docs/media/environments-overview-admin/select-environments.png differ diff --git a/flow-docs/media/environments-overview-admin/settings.png b/flow-docs/media/environments-overview-admin/settings.png new file mode 100644 index 000000000..dd328b4de Binary files /dev/null and b/flow-docs/media/environments-overview-admin/settings.png differ diff --git a/flow-docs/media/environments-overview-maker/all-environments.png b/flow-docs/media/environments-overview-maker/all-environments.png new file mode 100644 index 000000000..1b78f5562 Binary files /dev/null and b/flow-docs/media/environments-overview-maker/all-environments.png differ diff --git a/flow-docs/media/environments-overview-maker/default-environment.png b/flow-docs/media/environments-overview-maker/default-environment.png new file mode 100644 index 000000000..810af3714 Binary files /dev/null and b/flow-docs/media/environments-overview-maker/default-environment.png differ diff --git a/flow-docs/media/environments-overview-maker/europe-environment.png b/flow-docs/media/environments-overview-maker/europe-environment.png new file mode 100644 index 000000000..e50371584 Binary files /dev/null and b/flow-docs/media/environments-overview-maker/europe-environment.png differ diff --git a/flow-docs/media/environments-overview-maker/select-europe.png b/flow-docs/media/environments-overview-maker/select-europe.png new file mode 100644 index 000000000..588ce4254 Binary files /dev/null and b/flow-docs/media/environments-overview-maker/select-europe.png differ diff --git a/flow-docs/media/fix-flow-failures/flow-run-failure.png b/flow-docs/media/fix-flow-failures/flow-run-failure.png new file mode 100644 index 000000000..12c448fb0 Binary files /dev/null and b/flow-docs/media/fix-flow-failures/flow-run-failure.png differ diff --git a/flow-docs/media/fix-flow-failures/notifications-toolbar.png b/flow-docs/media/fix-flow-failures/notifications-toolbar.png new file mode 100644 index 000000000..09f526a7a Binary files /dev/null and b/flow-docs/media/fix-flow-failures/notifications-toolbar.png differ diff --git a/flow-docs/media/flic-button-flows/configure-flic-actions.png b/flow-docs/media/flic-button-flows/configure-flic-actions.png new file mode 100644 index 000000000..ba9b26019 Binary files /dev/null and b/flow-docs/media/flic-button-flows/configure-flic-actions.png differ diff --git a/flow-docs/media/flic-button-flows/email-settings.png b/flow-docs/media/flic-button-flows/email-settings.png new file mode 100644 index 000000000..697110590 Binary files /dev/null and b/flow-docs/media/flic-button-flows/email-settings.png differ diff --git a/flow-docs/media/flic-button-flows/flic-configured-for-flow.png b/flow-docs/media/flic-button-flows/flic-configured-for-flow.png new file mode 100644 index 000000000..9c3eb79c9 Binary files /dev/null and b/flow-docs/media/flic-button-flows/flic-configured-for-flow.png differ diff --git a/flow-docs/media/flic-button-flows/flic-email-body.png b/flow-docs/media/flic-button-flows/flic-email-body.png new file mode 100644 index 000000000..b69ca6e0a Binary files /dev/null and b/flow-docs/media/flic-button-flows/flic-email-body.png differ diff --git a/flow-docs/media/flic-button-flows/flic-google-sheet-after-run.png b/flow-docs/media/flic-button-flows/flic-google-sheet-after-run.png new file mode 100644 index 000000000..58ef462da Binary files /dev/null and b/flow-docs/media/flic-button-flows/flic-google-sheet-after-run.png differ diff --git a/flow-docs/media/flic-button-flows/flic-google-sheet.png b/flow-docs/media/flic-button-flows/flic-google-sheet.png new file mode 100644 index 000000000..356cdce8a Binary files /dev/null and b/flow-docs/media/flic-button-flows/flic-google-sheet.png differ diff --git a/flow-docs/media/flic-button-flows/flic-search-trigger.png b/flow-docs/media/flic-button-flows/flic-search-trigger.png new file mode 100644 index 000000000..165867b3e Binary files /dev/null and b/flow-docs/media/flic-button-flows/flic-search-trigger.png differ diff --git a/flow-docs/media/flic-button-flows/flic-template-details.png b/flow-docs/media/flic-button-flows/flic-template-details.png new file mode 100644 index 000000000..46e8577a5 Binary files /dev/null and b/flow-docs/media/flic-button-flows/flic-template-details.png differ diff --git a/flow-docs/media/flic-button-flows/flic-template-services-sign-in.png b/flow-docs/media/flic-button-flows/flic-template-services-sign-in.png new file mode 100644 index 000000000..9c8496ed1 Binary files /dev/null and b/flow-docs/media/flic-button-flows/flic-template-services-sign-in.png differ diff --git a/flow-docs/media/flic-button-flows/flic-templates.png b/flow-docs/media/flic-button-flows/flic-templates.png new file mode 100644 index 000000000..d2f2b9bec Binary files /dev/null and b/flow-docs/media/flic-button-flows/flic-templates.png differ diff --git a/flow-docs/media/flic-button-flows/flic-test-run-results-portal.png b/flow-docs/media/flic-button-flows/flic-test-run-results-portal.png new file mode 100644 index 000000000..6b5b86292 Binary files /dev/null and b/flow-docs/media/flic-button-flows/flic-test-run-results-portal.png differ diff --git a/flow-docs/media/flic-button-flows/flick-insert-row-card.png b/flow-docs/media/flic-button-flows/flick-insert-row-card.png new file mode 100644 index 000000000..845d32da5 Binary files /dev/null and b/flow-docs/media/flic-button-flows/flick-insert-row-card.png differ diff --git a/flow-docs/media/flic-button-flows/save.png b/flow-docs/media/flic-button-flows/save.png new file mode 100644 index 000000000..ec6bf4ea3 Binary files /dev/null and b/flow-docs/media/flic-button-flows/save.png differ diff --git a/flow-docs/media/flic-button-flows/search-flic.png b/flow-docs/media/flic-button-flows/search-flic.png new file mode 100644 index 000000000..5c9072cc8 Binary files /dev/null and b/flow-docs/media/flic-button-flows/search-flic.png differ diff --git a/flow-docs/media/flic-button-flows/select-flic.png b/flow-docs/media/flic-button-flows/select-flic.png new file mode 100644 index 000000000..8dcebcf03 Binary files /dev/null and b/flow-docs/media/flic-button-flows/select-flic.png differ diff --git a/flow-docs/media/flic-button-flows/sign-into-flow.png b/flow-docs/media/flic-button-flows/sign-into-flow.png new file mode 100644 index 000000000..0b06e0141 Binary files /dev/null and b/flow-docs/media/flic-button-flows/sign-into-flow.png differ diff --git a/flow-docs/media/gateway-reference/configure-new.png b/flow-docs/media/gateway-reference/configure-new.png new file mode 100644 index 000000000..8730975d1 Binary files /dev/null and b/flow-docs/media/gateway-reference/configure-new.png differ diff --git a/flow-docs/media/gateway-reference/event-logs.png b/flow-docs/media/gateway-reference/event-logs.png new file mode 100644 index 000000000..377a9001e Binary files /dev/null and b/flow-docs/media/gateway-reference/event-logs.png differ diff --git a/flow-docs/media/gateway-reference/gateway-arch.png b/flow-docs/media/gateway-reference/gateway-arch.png new file mode 100644 index 000000000..bc4dbd886 Binary files /dev/null and b/flow-docs/media/gateway-reference/gateway-arch.png differ diff --git a/flow-docs/media/gateway-reference/how-it-works.png b/flow-docs/media/gateway-reference/how-it-works.png new file mode 100644 index 000000000..67908d6b3 Binary files /dev/null and b/flow-docs/media/gateway-reference/how-it-works.png differ diff --git a/flow-docs/media/gateway-reference/laptop-reminder.png b/flow-docs/media/gateway-reference/laptop-reminder.png new file mode 100644 index 000000000..5876d7f03 Binary files /dev/null and b/flow-docs/media/gateway-reference/laptop-reminder.png differ diff --git a/flow-docs/media/gateway-reference/new-existing.png b/flow-docs/media/gateway-reference/new-existing.png new file mode 100644 index 000000000..9f6dcf2b1 Binary files /dev/null and b/flow-docs/media/gateway-reference/new-existing.png differ diff --git a/flow-docs/media/gateway-reference/recover-existing.png b/flow-docs/media/gateway-reference/recover-existing.png new file mode 100644 index 000000000..ef1c70536 Binary files /dev/null and b/flow-docs/media/gateway-reference/recover-existing.png differ diff --git a/flow-docs/media/gateway-reference/run-installer.png b/flow-docs/media/gateway-reference/run-installer.png new file mode 100644 index 000000000..6398061e4 Binary files /dev/null and b/flow-docs/media/gateway-reference/run-installer.png differ diff --git a/flow-docs/media/gateway-reference/sign-in.png b/flow-docs/media/gateway-reference/sign-in.png new file mode 100644 index 000000000..12226168e Binary files /dev/null and b/flow-docs/media/gateway-reference/sign-in.png differ diff --git a/flow-docs/media/get-started-logic-flow/add-action-bar.png b/flow-docs/media/get-started-logic-flow/add-action-bar.png new file mode 100644 index 000000000..ebfa11ed8 Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/add-action-bar.png differ diff --git a/flow-docs/media/get-started-logic-flow/add-action-icon.png b/flow-docs/media/get-started-logic-flow/add-action-icon.png new file mode 100644 index 000000000..dec289366 Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/add-action-icon.png differ diff --git a/flow-docs/media/get-started-logic-flow/add-parameter.png b/flow-docs/media/get-started-logic-flow/add-parameter.png new file mode 100644 index 000000000..25f4364e7 Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/add-parameter.png differ diff --git a/flow-docs/media/get-started-logic-flow/blank-email.png b/flow-docs/media/get-started-logic-flow/blank-email.png new file mode 100644 index 000000000..8ba6401d4 Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/blank-email.png differ diff --git a/flow-docs/media/get-started-logic-flow/create-button.png b/flow-docs/media/get-started-logic-flow/create-button.png new file mode 100644 index 000000000..36bd61bf0 Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/create-button.png differ diff --git a/flow-docs/media/get-started-logic-flow/create-logic-flow.png b/flow-docs/media/get-started-logic-flow/create-logic-flow.png new file mode 100644 index 000000000..2392cc11c Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/create-logic-flow.png differ diff --git a/flow-docs/media/get-started-logic-flow/delete-icon.png b/flow-docs/media/get-started-logic-flow/delete-icon.png new file mode 100644 index 000000000..7b93a8b3c Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/delete-icon.png differ diff --git a/flow-docs/media/get-started-logic-flow/done-button.png b/flow-docs/media/get-started-logic-flow/done-button.png new file mode 100644 index 000000000..9195ceae4 Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/done-button.png differ diff --git a/flow-docs/media/get-started-logic-flow/flow-run.png b/flow-docs/media/get-started-logic-flow/flow-run.png new file mode 100644 index 000000000..23aaad4d5 Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/flow-run.png differ diff --git a/flow-docs/media/get-started-logic-flow/from-blank.png b/flow-docs/media/get-started-logic-flow/from-blank.png new file mode 100644 index 000000000..df4e9c596 Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/from-blank.png differ diff --git a/flow-docs/media/get-started-logic-flow/info-icon.png b/flow-docs/media/get-started-logic-flow/info-icon.png new file mode 100644 index 000000000..b4ca86c13 Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/info-icon.png differ diff --git a/flow-docs/media/get-started-logic-flow/message-token.png b/flow-docs/media/get-started-logic-flow/message-token.png new file mode 100644 index 000000000..0cda97e0d Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/message-token.png differ diff --git a/flow-docs/media/get-started-logic-flow/pause-flow.png b/flow-docs/media/get-started-logic-flow/pause-flow.png new file mode 100644 index 000000000..4ab1985a7 Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/pause-flow.png differ diff --git a/flow-docs/media/get-started-logic-flow/resume-flow.png b/flow-docs/media/get-started-logic-flow/resume-flow.png new file mode 100644 index 000000000..ed62e2c5b Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/resume-flow.png differ diff --git a/flow-docs/media/get-started-logic-flow/select-flow.png b/flow-docs/media/get-started-logic-flow/select-flow.png new file mode 100644 index 000000000..216f5009e Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/select-flow.png differ diff --git a/flow-docs/media/get-started-logic-flow/send-email.png b/flow-docs/media/get-started-logic-flow/send-email.png new file mode 100644 index 000000000..988e40654 Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/send-email.png differ diff --git a/flow-docs/media/get-started-logic-flow/sign-in-office.png b/flow-docs/media/get-started-logic-flow/sign-in-office.png new file mode 100644 index 000000000..4f09462c4 Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/sign-in-office.png differ diff --git a/flow-docs/media/get-started-logic-flow/twitter-keyword.png b/flow-docs/media/get-started-logic-flow/twitter-keyword.png new file mode 100644 index 000000000..11cd7e8e7 Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/twitter-keyword.png differ diff --git a/flow-docs/media/get-started-logic-flow/twitter-search.png b/flow-docs/media/get-started-logic-flow/twitter-search.png new file mode 100644 index 000000000..30d1a3e3a Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/twitter-search.png differ diff --git a/flow-docs/media/get-started-logic-flow/twitter-signin.png b/flow-docs/media/get-started-logic-flow/twitter-signin.png new file mode 100644 index 000000000..571d4b8a8 Binary files /dev/null and b/flow-docs/media/get-started-logic-flow/twitter-signin.png differ diff --git a/flow-docs/media/get-started-logic-template/confirm-connections.png b/flow-docs/media/get-started-logic-template/confirm-connections.png new file mode 100644 index 000000000..077682f57 Binary files /dev/null and b/flow-docs/media/get-started-logic-template/confirm-connections.png differ diff --git a/flow-docs/media/get-started-logic-template/create-logic-flow.png b/flow-docs/media/get-started-logic-template/create-logic-flow.png new file mode 100644 index 000000000..a1e217450 Binary files /dev/null and b/flow-docs/media/get-started-logic-template/create-logic-flow.png differ diff --git a/flow-docs/media/get-started-logic-template/customize-subject.png b/flow-docs/media/get-started-logic-template/customize-subject.png new file mode 100644 index 000000000..34014f0e0 Binary files /dev/null and b/flow-docs/media/get-started-logic-template/customize-subject.png differ diff --git a/flow-docs/media/get-started-logic-template/done.png b/flow-docs/media/get-started-logic-template/done.png new file mode 100644 index 000000000..9195ceae4 Binary files /dev/null and b/flow-docs/media/get-started-logic-template/done.png differ diff --git a/flow-docs/media/get-started-logic-template/select-template.png b/flow-docs/media/get-started-logic-template/select-template.png new file mode 100644 index 000000000..f7fd95312 Binary files /dev/null and b/flow-docs/media/get-started-logic-template/select-template.png differ diff --git a/flow-docs/media/get-started-logic-template/specify-keyword.png b/flow-docs/media/get-started-logic-template/specify-keyword.png new file mode 100644 index 000000000..27d4df689 Binary files /dev/null and b/flow-docs/media/get-started-logic-template/specify-keyword.png differ diff --git a/flow-docs/media/get-started-logic-template/template-default.png b/flow-docs/media/get-started-logic-template/template-default.png new file mode 100644 index 000000000..8918ab6a7 Binary files /dev/null and b/flow-docs/media/get-started-logic-template/template-default.png differ diff --git a/flow-docs/media/getting-started/build-a-flow.png b/flow-docs/media/getting-started/build-a-flow.png new file mode 100644 index 000000000..943662648 Binary files /dev/null and b/flow-docs/media/getting-started/build-a-flow.png differ diff --git a/flow-docs/media/getting-started/configure-email-details.png b/flow-docs/media/getting-started/configure-email-details.png new file mode 100644 index 000000000..73485166c Binary files /dev/null and b/flow-docs/media/getting-started/configure-email-details.png differ diff --git a/flow-docs/media/getting-started/create-connection.png b/flow-docs/media/getting-started/create-connection.png new file mode 100644 index 000000000..bdf42c312 Binary files /dev/null and b/flow-docs/media/getting-started/create-connection.png differ diff --git a/flow-docs/media/getting-started/flowhome1.png b/flow-docs/media/getting-started/flowhome1.png new file mode 100644 index 000000000..1ecb5d172 Binary files /dev/null and b/flow-docs/media/getting-started/flowhome1.png differ diff --git a/flow-docs/media/getting-started/flowhome2.png b/flow-docs/media/getting-started/flowhome2.png new file mode 100644 index 000000000..42610430b Binary files /dev/null and b/flow-docs/media/getting-started/flowhome2.png differ diff --git a/flow-docs/media/getting-started/flowhome3.png b/flow-docs/media/getting-started/flowhome3.png new file mode 100644 index 000000000..d24ad76d1 Binary files /dev/null and b/flow-docs/media/getting-started/flowhome3.png differ diff --git a/flow-docs/media/getting-started/home-page.png b/flow-docs/media/getting-started/home-page.png new file mode 100644 index 000000000..1c10606a0 Binary files /dev/null and b/flow-docs/media/getting-started/home-page.png differ diff --git a/flow-docs/media/getting-started/template-details.png b/flow-docs/media/getting-started/template-details.png new file mode 100644 index 000000000..48ab69232 Binary files /dev/null and b/flow-docs/media/getting-started/template-details.png differ diff --git a/flow-docs/media/introduction-to-button-flows/activity-details-1.png b/flow-docs/media/introduction-to-button-flows/activity-details-1.png new file mode 100644 index 000000000..30d8be132 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/activity-details-1.png differ diff --git a/flow-docs/media/introduction-to-button-flows/buttons-montage.png b/flow-docs/media/introduction-to-button-flows/buttons-montage.png new file mode 100644 index 000000000..ec6cf0235 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/buttons-montage.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-1.png b/flow-docs/media/introduction-to-button-flows/create-button-1.png new file mode 100644 index 000000000..0cff69bcb Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-1.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-10.png b/flow-docs/media/introduction-to-button-flows/create-button-10.png new file mode 100644 index 000000000..15f02db29 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-10.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-11.png b/flow-docs/media/introduction-to-button-flows/create-button-11.png new file mode 100644 index 000000000..0db7e9ea7 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-11.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-2.png b/flow-docs/media/introduction-to-button-flows/create-button-2.png new file mode 100644 index 000000000..2780eaa0d Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-2.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-3.png b/flow-docs/media/introduction-to-button-flows/create-button-3.png new file mode 100644 index 000000000..8a5688f8f Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-3.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-4.png b/flow-docs/media/introduction-to-button-flows/create-button-4.png new file mode 100644 index 000000000..56e25afef Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-4.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-5.png b/flow-docs/media/introduction-to-button-flows/create-button-5.png new file mode 100644 index 000000000..e3fada8f3 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-5.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-6.png b/flow-docs/media/introduction-to-button-flows/create-button-6.png new file mode 100644 index 000000000..1b801bcdc Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-6.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-7.png b/flow-docs/media/introduction-to-button-flows/create-button-7.png new file mode 100644 index 000000000..51f278cb6 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-7.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-8.png b/flow-docs/media/introduction-to-button-flows/create-button-8.png new file mode 100644 index 000000000..8757e2207 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-8.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-9.png b/flow-docs/media/introduction-to-button-flows/create-button-9.png new file mode 100644 index 000000000..23db12441 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-9.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-1.png b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-1.png new file mode 100644 index 000000000..c998aa4e2 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-1.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-10.png b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-10.png new file mode 100644 index 000000000..83bc8c676 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-10.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-11.png b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-11.png new file mode 100644 index 000000000..3cf5d74b6 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-11.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-12.png b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-12.png new file mode 100644 index 000000000..76d66fa27 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-12.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-13.png b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-13.png new file mode 100644 index 000000000..2139966a3 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-13.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-2.png b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-2.png new file mode 100644 index 000000000..daa6bc4c4 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-2.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-3.png b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-3.png new file mode 100644 index 000000000..0e8604d16 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-3.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-4.png b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-4.png new file mode 100644 index 000000000..9a48a9eb6 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-4.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-5.png b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-5.png new file mode 100644 index 000000000..49c7ed853 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-5.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-6.png b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-6.png new file mode 100644 index 000000000..40670ee88 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-6.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-7.png b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-7.png new file mode 100644 index 000000000..719664b1d Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-7.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-8.png b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-8.png new file mode 100644 index 000000000..5ce9bfd2c Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-8.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-9.png b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-9.png new file mode 100644 index 000000000..0e4fe4ddd Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-from-mobile-9.png differ diff --git a/flow-docs/media/introduction-to-button-flows/create-button-pre-req-1.png b/flow-docs/media/introduction-to-button-flows/create-button-pre-req-1.png new file mode 100644 index 000000000..dfe6b7e59 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/create-button-pre-req-1.png differ diff --git a/flow-docs/media/introduction-to-button-flows/manage-flow-1.png b/flow-docs/media/introduction-to-button-flows/manage-flow-1.png new file mode 100644 index 000000000..11f0ff959 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/manage-flow-1.png differ diff --git a/flow-docs/media/introduction-to-button-flows/manage-flow-2.png b/flow-docs/media/introduction-to-button-flows/manage-flow-2.png new file mode 100644 index 000000000..9b276943f Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/manage-flow-2.png differ diff --git a/flow-docs/media/introduction-to-button-flows/manage-flow-3.png b/flow-docs/media/introduction-to-button-flows/manage-flow-3.png new file mode 100644 index 000000000..414457b4f Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/manage-flow-3.png differ diff --git a/flow-docs/media/introduction-to-button-flows/manage-flow-4.png b/flow-docs/media/introduction-to-button-flows/manage-flow-4.png new file mode 100644 index 000000000..7045a4c15 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/manage-flow-4.png differ diff --git a/flow-docs/media/introduction-to-button-flows/manage-flow-5.png b/flow-docs/media/introduction-to-button-flows/manage-flow-5.png new file mode 100644 index 000000000..3c0e9a2fc Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/manage-flow-5.png differ diff --git a/flow-docs/media/introduction-to-button-flows/trigger-button-1.png b/flow-docs/media/introduction-to-button-flows/trigger-button-1.png new file mode 100644 index 000000000..03e173574 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/trigger-button-1.png differ diff --git a/flow-docs/media/introduction-to-button-flows/trigger-button-2.png b/flow-docs/media/introduction-to-button-flows/trigger-button-2.png new file mode 100644 index 000000000..dcef814ec Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/trigger-button-2.png differ diff --git a/flow-docs/media/introduction-to-button-flows/trigger-button-3.png b/flow-docs/media/introduction-to-button-flows/trigger-button-3.png new file mode 100644 index 000000000..2c2b4ef76 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/trigger-button-3.png differ diff --git a/flow-docs/media/introduction-to-button-flows/trigger-button-4.png b/flow-docs/media/introduction-to-button-flows/trigger-button-4.png new file mode 100644 index 000000000..13bfd8497 Binary files /dev/null and b/flow-docs/media/introduction-to-button-flows/trigger-button-4.png differ diff --git a/flow-docs/media/introduction-to-button-trigger-tokens/1.png b/flow-docs/media/introduction-to-button-trigger-tokens/1.png new file mode 100644 index 000000000..441027579 Binary files /dev/null and b/flow-docs/media/introduction-to-button-trigger-tokens/1.png differ diff --git a/flow-docs/media/introduction-to-button-trigger-tokens/10.png b/flow-docs/media/introduction-to-button-trigger-tokens/10.png new file mode 100644 index 000000000..acbbf2217 Binary files /dev/null and b/flow-docs/media/introduction-to-button-trigger-tokens/10.png differ diff --git a/flow-docs/media/introduction-to-button-trigger-tokens/11.png b/flow-docs/media/introduction-to-button-trigger-tokens/11.png new file mode 100644 index 000000000..6639c2be7 Binary files /dev/null and b/flow-docs/media/introduction-to-button-trigger-tokens/11.png differ diff --git a/flow-docs/media/introduction-to-button-trigger-tokens/12.png b/flow-docs/media/introduction-to-button-trigger-tokens/12.png new file mode 100644 index 000000000..18a7b83c7 Binary files /dev/null and b/flow-docs/media/introduction-to-button-trigger-tokens/12.png differ diff --git a/flow-docs/media/introduction-to-button-trigger-tokens/2.png b/flow-docs/media/introduction-to-button-trigger-tokens/2.png new file mode 100644 index 000000000..dcd988d3a Binary files /dev/null and b/flow-docs/media/introduction-to-button-trigger-tokens/2.png differ diff --git a/flow-docs/media/introduction-to-button-trigger-tokens/3-5.png b/flow-docs/media/introduction-to-button-trigger-tokens/3-5.png new file mode 100644 index 000000000..7394b05e6 Binary files /dev/null and b/flow-docs/media/introduction-to-button-trigger-tokens/3-5.png differ diff --git a/flow-docs/media/introduction-to-button-trigger-tokens/3.png b/flow-docs/media/introduction-to-button-trigger-tokens/3.png new file mode 100644 index 000000000..9f0f61745 Binary files /dev/null and b/flow-docs/media/introduction-to-button-trigger-tokens/3.png differ diff --git a/flow-docs/media/introduction-to-button-trigger-tokens/4.png b/flow-docs/media/introduction-to-button-trigger-tokens/4.png new file mode 100644 index 000000000..c9f78bbc4 Binary files /dev/null and b/flow-docs/media/introduction-to-button-trigger-tokens/4.png differ diff --git a/flow-docs/media/introduction-to-button-trigger-tokens/5.png b/flow-docs/media/introduction-to-button-trigger-tokens/5.png new file mode 100644 index 000000000..9a2213427 Binary files /dev/null and b/flow-docs/media/introduction-to-button-trigger-tokens/5.png differ diff --git a/flow-docs/media/introduction-to-button-trigger-tokens/6.png b/flow-docs/media/introduction-to-button-trigger-tokens/6.png new file mode 100644 index 000000000..c90cde330 Binary files /dev/null and b/flow-docs/media/introduction-to-button-trigger-tokens/6.png differ diff --git a/flow-docs/media/introduction-to-button-trigger-tokens/7.png b/flow-docs/media/introduction-to-button-trigger-tokens/7.png new file mode 100644 index 000000000..01d55645b Binary files /dev/null and b/flow-docs/media/introduction-to-button-trigger-tokens/7.png differ diff --git a/flow-docs/media/introduction-to-button-trigger-tokens/8.png b/flow-docs/media/introduction-to-button-trigger-tokens/8.png new file mode 100644 index 000000000..ed605b9c4 Binary files /dev/null and b/flow-docs/media/introduction-to-button-trigger-tokens/8.png differ diff --git a/flow-docs/media/introduction-to-button-trigger-tokens/9.png b/flow-docs/media/introduction-to-button-trigger-tokens/9.png new file mode 100644 index 000000000..e5b85fb2f Binary files /dev/null and b/flow-docs/media/introduction-to-button-trigger-tokens/9.png differ diff --git a/flow-docs/media/introduction-to-data-groups/add-to-data-group-1.png b/flow-docs/media/introduction-to-data-groups/add-to-data-group-1.png new file mode 100644 index 000000000..46de1706b Binary files /dev/null and b/flow-docs/media/introduction-to-data-groups/add-to-data-group-1.png differ diff --git a/flow-docs/media/introduction-to-data-groups/add-to-data-group-2.png b/flow-docs/media/introduction-to-data-groups/add-to-data-group-2.png new file mode 100644 index 000000000..5dee27fd0 Binary files /dev/null and b/flow-docs/media/introduction-to-data-groups/add-to-data-group-2.png differ diff --git a/flow-docs/media/introduction-to-data-groups/add-to-data-group-3.png b/flow-docs/media/introduction-to-data-groups/add-to-data-group-3.png new file mode 100644 index 000000000..b5ce5bfda Binary files /dev/null and b/flow-docs/media/introduction-to-data-groups/add-to-data-group-3.png differ diff --git a/flow-docs/media/introduction-to-data-groups/add-to-data-group-4.png b/flow-docs/media/introduction-to-data-groups/add-to-data-group-4.png new file mode 100644 index 000000000..ba2b9ba93 Binary files /dev/null and b/flow-docs/media/introduction-to-data-groups/add-to-data-group-4.png differ diff --git a/flow-docs/media/introduction-to-data-groups/default-data-group-0.png b/flow-docs/media/introduction-to-data-groups/default-data-group-0.png new file mode 100644 index 000000000..24cbe9de4 Binary files /dev/null and b/flow-docs/media/introduction-to-data-groups/default-data-group-0.png differ diff --git a/flow-docs/media/introduction-to-data-groups/default-data-group-1.png b/flow-docs/media/introduction-to-data-groups/default-data-group-1.png new file mode 100644 index 000000000..82e5670af Binary files /dev/null and b/flow-docs/media/introduction-to-data-groups/default-data-group-1.png differ diff --git a/flow-docs/media/introduction-to-data-groups/default-data-group-2.png b/flow-docs/media/introduction-to-data-groups/default-data-group-2.png new file mode 100644 index 000000000..3f0870288 Binary files /dev/null and b/flow-docs/media/introduction-to-data-groups/default-data-group-2.png differ diff --git a/flow-docs/media/introduction-to-the-admin-center/overview.png b/flow-docs/media/introduction-to-the-admin-center/overview.png new file mode 100644 index 000000000..a547acb39 Binary files /dev/null and b/flow-docs/media/introduction-to-the-admin-center/overview.png differ diff --git a/flow-docs/media/manage-gateway/list-gateways.png b/flow-docs/media/manage-gateway/list-gateways.png new file mode 100644 index 000000000..74a851439 Binary files /dev/null and b/flow-docs/media/manage-gateway/list-gateways.png differ diff --git a/flow-docs/media/manage-gateway/view-gateways.png b/flow-docs/media/manage-gateway/view-gateways.png new file mode 100644 index 000000000..b7b5d5e9d Binary files /dev/null and b/flow-docs/media/manage-gateway/view-gateways.png differ diff --git a/flow-docs/media/mobile-approvals/approved.png b/flow-docs/media/mobile-approvals/approved.png new file mode 100644 index 000000000..6bcefb9bd Binary files /dev/null and b/flow-docs/media/mobile-approvals/approved.png differ diff --git a/flow-docs/media/mobile-approvals/enter-comment-for-approval.png b/flow-docs/media/mobile-approvals/enter-comment-for-approval.png new file mode 100644 index 000000000..250073d97 Binary files /dev/null and b/flow-docs/media/mobile-approvals/enter-comment-for-approval.png differ diff --git a/flow-docs/media/mobile-approvals/open-app.png b/flow-docs/media/mobile-approvals/open-app.png new file mode 100644 index 000000000..74548de8c Binary files /dev/null and b/flow-docs/media/mobile-approvals/open-app.png differ diff --git a/flow-docs/media/mobile-approvals/select-add-comment.png b/flow-docs/media/mobile-approvals/select-add-comment.png new file mode 100644 index 000000000..195552508 Binary files /dev/null and b/flow-docs/media/mobile-approvals/select-add-comment.png differ diff --git a/flow-docs/media/mobile-approvals/select-approvals.png b/flow-docs/media/mobile-approvals/select-approvals.png new file mode 100644 index 000000000..55d91678a Binary files /dev/null and b/flow-docs/media/mobile-approvals/select-approvals.png differ diff --git a/flow-docs/media/mobile-approvals/select-approve.png b/flow-docs/media/mobile-approvals/select-approve.png new file mode 100644 index 000000000..bffe6bf11 Binary files /dev/null and b/flow-docs/media/mobile-approvals/select-approve.png differ diff --git a/flow-docs/media/mobile-approvals/show-pending-approval-requests.png b/flow-docs/media/mobile-approvals/show-pending-approval-requests.png new file mode 100644 index 000000000..6baf7db43 Binary files /dev/null and b/flow-docs/media/mobile-approvals/show-pending-approval-requests.png differ diff --git a/flow-docs/media/mobile-approvals/tap-confirm-button.png b/flow-docs/media/mobile-approvals/tap-confirm-button.png new file mode 100644 index 000000000..803ac2e5d Binary files /dev/null and b/flow-docs/media/mobile-approvals/tap-confirm-button.png differ diff --git a/flow-docs/media/mobile-create-flow/browse-icon.png b/flow-docs/media/mobile-create-flow/browse-icon.png new file mode 100644 index 000000000..30d18fc32 Binary files /dev/null and b/flow-docs/media/mobile-create-flow/browse-icon.png differ diff --git a/flow-docs/media/mobile-create-flow/browse-tab.png b/flow-docs/media/mobile-create-flow/browse-tab.png new file mode 100644 index 000000000..16b8b75aa Binary files /dev/null and b/flow-docs/media/mobile-create-flow/browse-tab.png differ diff --git a/flow-docs/media/mobile-create-flow/choose-template.png b/flow-docs/media/mobile-create-flow/choose-template.png new file mode 100644 index 000000000..cf762cc29 Binary files /dev/null and b/flow-docs/media/mobile-create-flow/choose-template.png differ diff --git a/flow-docs/media/mobile-create-flow/confirm-template.png b/flow-docs/media/mobile-create-flow/confirm-template.png new file mode 100644 index 000000000..153ba3314 Binary files /dev/null and b/flow-docs/media/mobile-create-flow/confirm-template.png differ diff --git a/flow-docs/media/mobile-create-flow/create-flow.png b/flow-docs/media/mobile-create-flow/create-flow.png new file mode 100644 index 000000000..f86b24a69 Binary files /dev/null and b/flow-docs/media/mobile-create-flow/create-flow.png differ diff --git a/flow-docs/media/mobile-create-flow/flow-structure.png b/flow-docs/media/mobile-create-flow/flow-structure.png new file mode 100644 index 000000000..ddf1e8f03 Binary files /dev/null and b/flow-docs/media/mobile-create-flow/flow-structure.png differ diff --git a/flow-docs/media/mobile-create-flow/list-services.png b/flow-docs/media/mobile-create-flow/list-services.png new file mode 100644 index 000000000..ab1ec8063 Binary files /dev/null and b/flow-docs/media/mobile-create-flow/list-services.png differ diff --git a/flow-docs/media/mobile-create-flow/next.png b/flow-docs/media/mobile-create-flow/next.png new file mode 100644 index 000000000..69a03acbf Binary files /dev/null and b/flow-docs/media/mobile-create-flow/next.png differ diff --git a/flow-docs/media/mobile-create-flow/office-signin.png b/flow-docs/media/mobile-create-flow/office-signin.png new file mode 100644 index 000000000..dc3d52628 Binary files /dev/null and b/flow-docs/media/mobile-create-flow/office-signin.png differ diff --git a/flow-docs/media/mobile-create-flow/push-notifications.png b/flow-docs/media/mobile-create-flow/push-notifications.png new file mode 100644 index 000000000..46d099d3e Binary files /dev/null and b/flow-docs/media/mobile-create-flow/push-notifications.png differ diff --git a/flow-docs/media/mobile-create-flow/rename-flow.png b/flow-docs/media/mobile-create-flow/rename-flow.png new file mode 100644 index 000000000..f471af6c3 Binary files /dev/null and b/flow-docs/media/mobile-create-flow/rename-flow.png differ diff --git a/flow-docs/media/mobile-manage-flows/create-event.png b/flow-docs/media/mobile-manage-flows/create-event.png new file mode 100644 index 000000000..859fafb12 Binary files /dev/null and b/flow-docs/media/mobile-manage-flows/create-event.png differ diff --git a/flow-docs/media/mobile-manage-flows/create-trigger.png b/flow-docs/media/mobile-manage-flows/create-trigger.png new file mode 100644 index 000000000..d2be55fd0 Binary files /dev/null and b/flow-docs/media/mobile-manage-flows/create-trigger.png differ diff --git a/flow-docs/media/mobile-manage-flows/flow-details.png b/flow-docs/media/mobile-manage-flows/flow-details.png new file mode 100644 index 000000000..7c402e5dc Binary files /dev/null and b/flow-docs/media/mobile-manage-flows/flow-details.png differ diff --git a/flow-docs/media/mobile-manage-flows/flow-event-action.png b/flow-docs/media/mobile-manage-flows/flow-event-action.png new file mode 100644 index 000000000..cffba0a83 Binary files /dev/null and b/flow-docs/media/mobile-manage-flows/flow-event-action.png differ diff --git a/flow-docs/media/mobile-manage-flows/flow-list.png b/flow-docs/media/mobile-manage-flows/flow-list.png new file mode 100644 index 000000000..21a00a8d0 Binary files /dev/null and b/flow-docs/media/mobile-manage-flows/flow-list.png differ diff --git a/flow-docs/media/mobile-manage-flows/flow-run.png b/flow-docs/media/mobile-manage-flows/flow-run.png new file mode 100644 index 000000000..0b61af073 Binary files /dev/null and b/flow-docs/media/mobile-manage-flows/flow-run.png differ diff --git a/flow-docs/media/mobile-manage-flows/history-mixed.png b/flow-docs/media/mobile-manage-flows/history-mixed.png new file mode 100644 index 000000000..448295a5a Binary files /dev/null and b/flow-docs/media/mobile-manage-flows/history-mixed.png differ diff --git a/flow-docs/media/mobile-monitor-activity/activity-day.png b/flow-docs/media/mobile-monitor-activity/activity-day.png new file mode 100644 index 000000000..4750653c5 Binary files /dev/null and b/flow-docs/media/mobile-monitor-activity/activity-day.png differ diff --git a/flow-docs/media/mobile-monitor-activity/activity-day2.png b/flow-docs/media/mobile-monitor-activity/activity-day2.png new file mode 100644 index 000000000..9cce1ab72 Binary files /dev/null and b/flow-docs/media/mobile-monitor-activity/activity-day2.png differ diff --git a/flow-docs/media/mobile-monitor-activity/activity-filter.png b/flow-docs/media/mobile-monitor-activity/activity-filter.png new file mode 100644 index 000000000..217cc1ea4 Binary files /dev/null and b/flow-docs/media/mobile-monitor-activity/activity-filter.png differ diff --git a/flow-docs/media/mobile-monitor-activity/activity-flow-name.png b/flow-docs/media/mobile-monitor-activity/activity-flow-name.png new file mode 100644 index 000000000..5588b4e1b Binary files /dev/null and b/flow-docs/media/mobile-monitor-activity/activity-flow-name.png differ diff --git a/flow-docs/media/mobile-monitor-activity/activity-icons.png b/flow-docs/media/mobile-monitor-activity/activity-icons.png new file mode 100644 index 000000000..8b008a758 Binary files /dev/null and b/flow-docs/media/mobile-monitor-activity/activity-icons.png differ diff --git a/flow-docs/media/mobile-monitor-activity/activity-notification-list.png b/flow-docs/media/mobile-monitor-activity/activity-notification-list.png new file mode 100644 index 000000000..61af84bde Binary files /dev/null and b/flow-docs/media/mobile-monitor-activity/activity-notification-list.png differ diff --git a/flow-docs/media/mobile-monitor-activity/activity-notification.png b/flow-docs/media/mobile-monitor-activity/activity-notification.png new file mode 100644 index 000000000..41d8d0346 Binary files /dev/null and b/flow-docs/media/mobile-monitor-activity/activity-notification.png differ diff --git a/flow-docs/media/mobile-monitor-activity/activity-summary.png b/flow-docs/media/mobile-monitor-activity/activity-summary.png new file mode 100644 index 000000000..a92400955 Binary files /dev/null and b/flow-docs/media/mobile-monitor-activity/activity-summary.png differ diff --git a/flow-docs/media/mobile-monitor-activity/create-event.png b/flow-docs/media/mobile-monitor-activity/create-event.png new file mode 100644 index 000000000..859fafb12 Binary files /dev/null and b/flow-docs/media/mobile-monitor-activity/create-event.png differ diff --git a/flow-docs/media/mobile-monitor-activity/create-trigger.png b/flow-docs/media/mobile-monitor-activity/create-trigger.png new file mode 100644 index 000000000..d2be55fd0 Binary files /dev/null and b/flow-docs/media/mobile-monitor-activity/create-trigger.png differ diff --git a/flow-docs/media/mobile-monitor-activity/history-mixed.png b/flow-docs/media/mobile-monitor-activity/history-mixed.png new file mode 100644 index 000000000..448295a5a Binary files /dev/null and b/flow-docs/media/mobile-monitor-activity/history-mixed.png differ diff --git a/flow-docs/media/mobile-monitor-activity/history-successes.png b/flow-docs/media/mobile-monitor-activity/history-successes.png new file mode 100644 index 000000000..7c5a0ccd5 Binary files /dev/null and b/flow-docs/media/mobile-monitor-activity/history-successes.png differ diff --git a/flow-docs/media/modern-approvals/add-action-after-condition.png b/flow-docs/media/modern-approvals/add-action-after-condition.png new file mode 100644 index 000000000..21325e4f1 Binary files /dev/null and b/flow-docs/media/modern-approvals/add-action-after-condition.png differ diff --git a/flow-docs/media/modern-approvals/add-response-condition.png b/flow-docs/media/modern-approvals/add-response-condition.png new file mode 100644 index 000000000..c7d51626b Binary files /dev/null and b/flow-docs/media/modern-approvals/add-response-condition.png differ diff --git a/flow-docs/media/modern-approvals/add-update-item-action.png b/flow-docs/media/modern-approvals/add-update-item-action.png new file mode 100644 index 000000000..13ae3957d Binary files /dev/null and b/flow-docs/media/modern-approvals/add-update-item-action.png differ diff --git a/flow-docs/media/modern-approvals/approval-selection-card.png b/flow-docs/media/modern-approvals/approval-selection-card.png new file mode 100644 index 000000000..2f89de5e0 Binary files /dev/null and b/flow-docs/media/modern-approvals/approval-selection-card.png differ diff --git a/flow-docs/media/modern-approvals/approvals-cards.png b/flow-docs/media/modern-approvals/approvals-cards.png new file mode 100644 index 000000000..a6023fbae Binary files /dev/null and b/flow-docs/media/modern-approvals/approvals-cards.png differ diff --git a/flow-docs/media/modern-approvals/approvals-tab.png b/flow-docs/media/modern-approvals/approvals-tab.png new file mode 100644 index 000000000..2f5fbcd13 Binary files /dev/null and b/flow-docs/media/modern-approvals/approvals-tab.png differ diff --git a/flow-docs/media/modern-approvals/blank-template.png b/flow-docs/media/modern-approvals/blank-template.png new file mode 100644 index 000000000..42979908d Binary files /dev/null and b/flow-docs/media/modern-approvals/blank-template.png differ diff --git a/flow-docs/media/modern-approvals/completed-flow.png b/flow-docs/media/modern-approvals/completed-flow.png new file mode 100644 index 000000000..a96539c39 Binary files /dev/null and b/flow-docs/media/modern-approvals/completed-flow.png differ diff --git a/flow-docs/media/modern-approvals/configure-approved-email.png b/flow-docs/media/modern-approvals/configure-approved-email.png new file mode 100644 index 000000000..5b0d8c0d8 Binary files /dev/null and b/flow-docs/media/modern-approvals/configure-approved-email.png differ diff --git a/flow-docs/media/modern-approvals/configure-rejected-email.png b/flow-docs/media/modern-approvals/configure-rejected-email.png new file mode 100644 index 000000000..e6cbf47fb Binary files /dev/null and b/flow-docs/media/modern-approvals/configure-rejected-email.png differ diff --git a/flow-docs/media/modern-approvals/configure-update-item-no.png b/flow-docs/media/modern-approvals/configure-update-item-no.png new file mode 100644 index 000000000..7d7906829 Binary files /dev/null and b/flow-docs/media/modern-approvals/configure-update-item-no.png differ diff --git a/flow-docs/media/modern-approvals/configure-update-item.png b/flow-docs/media/modern-approvals/configure-update-item.png new file mode 100644 index 000000000..80bc0621e Binary files /dev/null and b/flow-docs/media/modern-approvals/configure-update-item.png differ diff --git a/flow-docs/media/modern-approvals/create-flow-overview.png b/flow-docs/media/modern-approvals/create-flow-overview.png new file mode 100644 index 000000000..2c9157cb1 Binary files /dev/null and b/flow-docs/media/modern-approvals/create-flow-overview.png differ diff --git a/flow-docs/media/modern-approvals/edit-flow.png b/flow-docs/media/modern-approvals/edit-flow.png new file mode 100644 index 000000000..dee853763 Binary files /dev/null and b/flow-docs/media/modern-approvals/edit-flow.png differ diff --git a/flow-docs/media/modern-approvals/email-approval-request.png b/flow-docs/media/modern-approvals/email-approval-request.png new file mode 100644 index 000000000..22f7e14a3 Binary files /dev/null and b/flow-docs/media/modern-approvals/email-approval-request.png differ diff --git a/flow-docs/media/modern-approvals/mobile-approval-confirmation.png b/flow-docs/media/modern-approvals/mobile-approval-confirmation.png new file mode 100644 index 000000000..9d65bb3a7 Binary files /dev/null and b/flow-docs/media/modern-approvals/mobile-approval-confirmation.png differ diff --git a/flow-docs/media/modern-approvals/mobile-approval.png b/flow-docs/media/modern-approvals/mobile-approval.png new file mode 100644 index 000000000..fb0a99884 Binary files /dev/null and b/flow-docs/media/modern-approvals/mobile-approval.png differ diff --git a/flow-docs/media/modern-approvals/pending-requests.png b/flow-docs/media/modern-approvals/pending-requests.png new file mode 100644 index 000000000..43bc5a5f9 Binary files /dev/null and b/flow-docs/media/modern-approvals/pending-requests.png differ diff --git a/flow-docs/media/modern-approvals/provide-approval-config-info.png b/flow-docs/media/modern-approvals/provide-approval-config-info.png new file mode 100644 index 000000000..71c47f396 Binary files /dev/null and b/flow-docs/media/modern-approvals/provide-approval-config-info.png differ diff --git a/flow-docs/media/modern-approvals/request-in-approval-center.png b/flow-docs/media/modern-approvals/request-in-approval-center.png new file mode 100644 index 000000000..82156b213 Binary files /dev/null and b/flow-docs/media/modern-approvals/request-in-approval-center.png differ diff --git a/flow-docs/media/modern-approvals/response-condition-test.png b/flow-docs/media/modern-approvals/response-condition-test.png new file mode 100644 index 000000000..b179ddd24 Binary files /dev/null and b/flow-docs/media/modern-approvals/response-condition-test.png differ diff --git a/flow-docs/media/modern-approvals/save.png b/flow-docs/media/modern-approvals/save.png new file mode 100644 index 000000000..2f123746e Binary files /dev/null and b/flow-docs/media/modern-approvals/save.png differ diff --git a/flow-docs/media/modern-approvals/search-approvals.png b/flow-docs/media/modern-approvals/search-approvals.png new file mode 100644 index 000000000..e5d468940 Binary files /dev/null and b/flow-docs/media/modern-approvals/search-approvals.png differ diff --git a/flow-docs/media/modern-approvals/search-for-profile.png b/flow-docs/media/modern-approvals/search-for-profile.png new file mode 100644 index 000000000..25652aa50 Binary files /dev/null and b/flow-docs/media/modern-approvals/search-for-profile.png differ diff --git a/flow-docs/media/modern-approvals/search-for-response.png b/flow-docs/media/modern-approvals/search-for-response.png new file mode 100644 index 000000000..ff3c774df Binary files /dev/null and b/flow-docs/media/modern-approvals/search-for-response.png differ diff --git a/flow-docs/media/modern-approvals/search-for-sharepoint.png b/flow-docs/media/modern-approvals/search-for-sharepoint.png new file mode 100644 index 000000000..0db7ff7c6 Binary files /dev/null and b/flow-docs/media/modern-approvals/search-for-sharepoint.png differ diff --git a/flow-docs/media/modern-approvals/search-send-email-no.png b/flow-docs/media/modern-approvals/search-send-email-no.png new file mode 100644 index 000000000..f4ffd2c37 Binary files /dev/null and b/flow-docs/media/modern-approvals/search-send-email-no.png differ diff --git a/flow-docs/media/modern-approvals/search-send-email-yes.png b/flow-docs/media/modern-approvals/search-send-email-yes.png new file mode 100644 index 000000000..2387151dd Binary files /dev/null and b/flow-docs/media/modern-approvals/search-send-email-yes.png differ diff --git a/flow-docs/media/modern-approvals/search-update-item-rejected.png b/flow-docs/media/modern-approvals/search-update-item-rejected.png new file mode 100644 index 000000000..935584b88 Binary files /dev/null and b/flow-docs/media/modern-approvals/search-update-item-rejected.png differ diff --git a/flow-docs/media/modern-approvals/search-update-item.png b/flow-docs/media/modern-approvals/search-update-item.png new file mode 100644 index 000000000..9fdaa4235 Binary files /dev/null and b/flow-docs/media/modern-approvals/search-update-item.png differ diff --git a/flow-docs/media/modern-approvals/select-approvals.png b/flow-docs/media/modern-approvals/select-approvals.png new file mode 100644 index 000000000..bbb10f756 Binary files /dev/null and b/flow-docs/media/modern-approvals/select-approvals.png differ diff --git a/flow-docs/media/modern-approvals/select-my-flows.png b/flow-docs/media/modern-approvals/select-my-flows.png new file mode 100644 index 000000000..1ff58a282 Binary files /dev/null and b/flow-docs/media/modern-approvals/select-my-flows.png differ diff --git a/flow-docs/media/modern-approvals/select-my-profile.png b/flow-docs/media/modern-approvals/select-my-profile.png new file mode 100644 index 000000000..78d12f58f Binary files /dev/null and b/flow-docs/media/modern-approvals/select-my-profile.png differ diff --git a/flow-docs/media/modern-approvals/select-profile-add-action.png b/flow-docs/media/modern-approvals/select-profile-add-action.png new file mode 100644 index 000000000..9e523360e Binary files /dev/null and b/flow-docs/media/modern-approvals/select-profile-add-action.png differ diff --git a/flow-docs/media/modern-approvals/select-send-email-no.png b/flow-docs/media/modern-approvals/select-send-email-no.png new file mode 100644 index 000000000..935ca0f63 Binary files /dev/null and b/flow-docs/media/modern-approvals/select-send-email-no.png differ diff --git a/flow-docs/media/modern-approvals/select-send-email-yes.png b/flow-docs/media/modern-approvals/select-send-email-yes.png new file mode 100644 index 000000000..8cb6b0478 Binary files /dev/null and b/flow-docs/media/modern-approvals/select-send-email-yes.png differ diff --git a/flow-docs/media/modern-approvals/select-sharepoint-add-action.png b/flow-docs/media/modern-approvals/select-sharepoint-add-action.png new file mode 100644 index 000000000..67e4bee95 Binary files /dev/null and b/flow-docs/media/modern-approvals/select-sharepoint-add-action.png differ diff --git a/flow-docs/media/modern-approvals/select-sharepoint-new-item.png b/flow-docs/media/modern-approvals/select-sharepoint-new-item.png new file mode 100644 index 000000000..055332d6f Binary files /dev/null and b/flow-docs/media/modern-approvals/select-sharepoint-new-item.png differ diff --git a/flow-docs/media/modern-approvals/select-sharepoint-site-info.png b/flow-docs/media/modern-approvals/select-sharepoint-site-info.png new file mode 100644 index 000000000..fde63f062 Binary files /dev/null and b/flow-docs/media/modern-approvals/select-sharepoint-site-info.png differ diff --git a/flow-docs/media/modern-approvals/select-update-item-no.png b/flow-docs/media/modern-approvals/select-update-item-no.png new file mode 100644 index 000000000..c4466830a Binary files /dev/null and b/flow-docs/media/modern-approvals/select-update-item-no.png differ diff --git a/flow-docs/media/modern-approvals/select-update-item-yes.png b/flow-docs/media/modern-approvals/select-update-item-yes.png new file mode 100644 index 000000000..114350a6d Binary files /dev/null and b/flow-docs/media/modern-approvals/select-update-item-yes.png differ diff --git a/flow-docs/media/modern-approvals/sharepoint-list-fields.png b/flow-docs/media/modern-approvals/sharepoint-list-fields.png new file mode 100644 index 000000000..3e469f18d Binary files /dev/null and b/flow-docs/media/modern-approvals/sharepoint-list-fields.png differ diff --git a/flow-docs/media/modern-approvals/sign-in.png b/flow-docs/media/modern-approvals/sign-in.png new file mode 100644 index 000000000..65789eb5b Binary files /dev/null and b/flow-docs/media/modern-approvals/sign-in.png differ diff --git a/flow-docs/media/modern-approvals/update.png b/flow-docs/media/modern-approvals/update.png new file mode 100644 index 000000000..2ea652cfc Binary files /dev/null and b/flow-docs/media/modern-approvals/update.png differ diff --git a/flow-docs/media/modern-approvals/vacation-request.png b/flow-docs/media/modern-approvals/vacation-request.png new file mode 100644 index 000000000..e1bb1cee6 Binary files /dev/null and b/flow-docs/media/modern-approvals/vacation-request.png differ diff --git a/flow-docs/media/modern-approvals/yes-email-config.png b/flow-docs/media/modern-approvals/yes-email-config.png new file mode 100644 index 000000000..91cc80bb9 Binary files /dev/null and b/flow-docs/media/modern-approvals/yes-email-config.png differ diff --git a/flow-docs/media/multi-step-logic-flow/add-action.png b/flow-docs/media/multi-step-logic-flow/add-action.png new file mode 100644 index 000000000..0401bcd76 Binary files /dev/null and b/flow-docs/media/multi-step-logic-flow/add-action.png differ diff --git a/flow-docs/media/multi-step-logic-flow/add-row.png b/flow-docs/media/multi-step-logic-flow/add-row.png new file mode 100644 index 000000000..1e72a4652 Binary files /dev/null and b/flow-docs/media/multi-step-logic-flow/add-row.png differ diff --git a/flow-docs/media/multi-step-logic-flow/advanced.png b/flow-docs/media/multi-step-logic-flow/advanced.png new file mode 100644 index 000000000..c8271c09b Binary files /dev/null and b/flow-docs/media/multi-step-logic-flow/advanced.png differ diff --git a/flow-docs/media/multi-step-logic-flow/collapsed.png b/flow-docs/media/multi-step-logic-flow/collapsed.png new file mode 100644 index 000000000..3cc035bd9 Binary files /dev/null and b/flow-docs/media/multi-step-logic-flow/collapsed.png differ diff --git a/flow-docs/media/multi-step-logic-flow/create-file-folder.png b/flow-docs/media/multi-step-logic-flow/create-file-folder.png new file mode 100644 index 000000000..2fd5c0c14 Binary files /dev/null and b/flow-docs/media/multi-step-logic-flow/create-file-folder.png differ diff --git a/flow-docs/media/multi-step-logic-flow/create-file-name-and-contents.png b/flow-docs/media/multi-step-logic-flow/create-file-name-and-contents.png new file mode 100644 index 000000000..94aff3bab Binary files /dev/null and b/flow-docs/media/multi-step-logic-flow/create-file-name-and-contents.png differ diff --git a/flow-docs/media/multi-step-logic-flow/create-file-search.png b/flow-docs/media/multi-step-logic-flow/create-file-search.png new file mode 100644 index 000000000..646f6e342 Binary files /dev/null and b/flow-docs/media/multi-step-logic-flow/create-file-search.png differ diff --git a/flow-docs/media/multi-step-logic-flow/delete.png b/flow-docs/media/multi-step-logic-flow/delete.png new file mode 100644 index 000000000..43a50fc12 Binary files /dev/null and b/flow-docs/media/multi-step-logic-flow/delete.png differ diff --git a/flow-docs/media/multi-step-logic-flow/deletemenu.png b/flow-docs/media/multi-step-logic-flow/deletemenu.png new file mode 100644 index 000000000..9dc120b57 Binary files /dev/null and b/flow-docs/media/multi-step-logic-flow/deletemenu.png differ diff --git a/flow-docs/media/multi-step-logic-flow/down-arrows.png b/flow-docs/media/multi-step-logic-flow/down-arrows.png new file mode 100644 index 000000000..80d186cd7 Binary files /dev/null and b/flow-docs/media/multi-step-logic-flow/down-arrows.png differ diff --git a/flow-docs/media/multi-step-logic-flow/draggingaction.png b/flow-docs/media/multi-step-logic-flow/draggingaction.png new file mode 100644 index 000000000..5047300a5 Binary files /dev/null and b/flow-docs/media/multi-step-logic-flow/draggingaction.png differ diff --git a/flow-docs/media/multi-step-logic-flow/dropbox.png b/flow-docs/media/multi-step-logic-flow/dropbox.png new file mode 100644 index 000000000..69fa731d7 Binary files /dev/null and b/flow-docs/media/multi-step-logic-flow/dropbox.png differ diff --git a/flow-docs/media/multi-step-logic-flow/turnoffflow.png b/flow-docs/media/multi-step-logic-flow/turnoffflow.png new file mode 100644 index 000000000..d4d2a0b75 Binary files /dev/null and b/flow-docs/media/multi-step-logic-flow/turnoffflow.png differ diff --git a/flow-docs/media/organization-q-and-a/data-loss-prevention-policy.png b/flow-docs/media/organization-q-and-a/data-loss-prevention-policy.png new file mode 100644 index 000000000..f8ab61847 Binary files /dev/null and b/flow-docs/media/organization-q-and-a/data-loss-prevention-policy.png differ diff --git a/flow-docs/media/organization-q-and-a/licenses1.png b/flow-docs/media/organization-q-and-a/licenses1.png new file mode 100644 index 000000000..196c7aa03 Binary files /dev/null and b/flow-docs/media/organization-q-and-a/licenses1.png differ diff --git a/flow-docs/media/organization-q-and-a/licenses2.png b/flow-docs/media/organization-q-and-a/licenses2.png new file mode 100644 index 000000000..b8e588f6e Binary files /dev/null and b/flow-docs/media/organization-q-and-a/licenses2.png differ diff --git a/flow-docs/media/organization-q-and-a/office-home.png b/flow-docs/media/organization-q-and-a/office-home.png new file mode 100644 index 000000000..e63da5b10 Binary files /dev/null and b/flow-docs/media/organization-q-and-a/office-home.png differ diff --git a/flow-docs/media/organization-q-and-a/office-waffle.png b/flow-docs/media/organization-q-and-a/office-waffle.png new file mode 100644 index 000000000..e87f47a2f Binary files /dev/null and b/flow-docs/media/organization-q-and-a/office-waffle.png differ diff --git a/flow-docs/media/organization-q-and-a/remove-license.png b/flow-docs/media/organization-q-and-a/remove-license.png new file mode 100644 index 000000000..219ecbb18 Binary files /dev/null and b/flow-docs/media/organization-q-and-a/remove-license.png differ diff --git a/flow-docs/media/organization-q-and-a/remove-service-plan.png b/flow-docs/media/organization-q-and-a/remove-service-plan.png new file mode 100644 index 000000000..525f3a1bc Binary files /dev/null and b/flow-docs/media/organization-q-and-a/remove-service-plan.png differ diff --git a/flow-docs/media/parallel-modern-approvals/add-parallel-branch.png b/flow-docs/media/parallel-modern-approvals/add-parallel-branch.png new file mode 100644 index 000000000..47253de3e Binary files /dev/null and b/flow-docs/media/parallel-modern-approvals/add-parallel-branch.png differ diff --git a/flow-docs/media/parallel-modern-approvals/configure-approval-condition.png b/flow-docs/media/parallel-modern-approvals/configure-approval-condition.png new file mode 100644 index 000000000..2085befe5 Binary files /dev/null and b/flow-docs/media/parallel-modern-approvals/configure-approval-condition.png differ diff --git a/flow-docs/media/parallel-modern-approvals/configure-update-item.png b/flow-docs/media/parallel-modern-approvals/configure-update-item.png new file mode 100644 index 000000000..08fb14fe4 Binary files /dev/null and b/flow-docs/media/parallel-modern-approvals/configure-update-item.png differ diff --git a/flow-docs/media/parallel-modern-approvals/final-email-card.png b/flow-docs/media/parallel-modern-approvals/final-email-card.png new file mode 100644 index 000000000..97b4e9efd Binary files /dev/null and b/flow-docs/media/parallel-modern-approvals/final-email-card.png differ diff --git a/flow-docs/media/parallel-modern-approvals/flow-with-parallel-branches.png b/flow-docs/media/parallel-modern-approvals/flow-with-parallel-branches.png new file mode 100644 index 000000000..fff5073bb Binary files /dev/null and b/flow-docs/media/parallel-modern-approvals/flow-with-parallel-branches.png differ diff --git a/flow-docs/media/parallel-modern-approvals/save.png b/flow-docs/media/parallel-modern-approvals/save.png new file mode 100644 index 000000000..f3c0d5937 Binary files /dev/null and b/flow-docs/media/parallel-modern-approvals/save.png differ diff --git a/flow-docs/media/parallel-modern-approvals/sharepoint-columns.png b/flow-docs/media/parallel-modern-approvals/sharepoint-columns.png new file mode 100644 index 000000000..f449926cc Binary files /dev/null and b/flow-docs/media/parallel-modern-approvals/sharepoint-columns.png differ diff --git a/flow-docs/media/parallel-modern-approvals/update.png b/flow-docs/media/parallel-modern-approvals/update.png new file mode 100644 index 000000000..ea1ac14e7 Binary files /dev/null and b/flow-docs/media/parallel-modern-approvals/update.png differ diff --git a/flow-docs/media/postman-collection/export.png b/flow-docs/media/postman-collection/export.png new file mode 100644 index 000000000..e5ec20eb3 Binary files /dev/null and b/flow-docs/media/postman-collection/export.png differ diff --git a/flow-docs/media/postman-collection/export2.png b/flow-docs/media/postman-collection/export2.png new file mode 100644 index 000000000..af036b448 Binary files /dev/null and b/flow-docs/media/postman-collection/export2.png differ diff --git a/flow-docs/media/postman-collection/request-response-save.png b/flow-docs/media/postman-collection/request-response-save.png new file mode 100644 index 000000000..57e00e42b Binary files /dev/null and b/flow-docs/media/postman-collection/request-response-save.png differ diff --git a/flow-docs/media/postman-collection/request.png b/flow-docs/media/postman-collection/request.png new file mode 100644 index 000000000..df0cfb93a Binary files /dev/null and b/flow-docs/media/postman-collection/request.png differ diff --git a/flow-docs/media/postman-collection/save-request-note.png b/flow-docs/media/postman-collection/save-request-note.png new file mode 100644 index 000000000..feec6fb7e Binary files /dev/null and b/flow-docs/media/postman-collection/save-request-note.png differ diff --git a/flow-docs/media/postman-collection/save-response.png b/flow-docs/media/postman-collection/save-response.png new file mode 100644 index 000000000..a4d003a41 Binary files /dev/null and b/flow-docs/media/postman-collection/save-response.png differ diff --git a/flow-docs/media/prevent-data-loss/1.png b/flow-docs/media/prevent-data-loss/1.png new file mode 100644 index 000000000..d82d9bc17 Binary files /dev/null and b/flow-docs/media/prevent-data-loss/1.png differ diff --git a/flow-docs/media/prevent-data-loss/10.png b/flow-docs/media/prevent-data-loss/10.png new file mode 100644 index 000000000..0fdfa7653 Binary files /dev/null and b/flow-docs/media/prevent-data-loss/10.png differ diff --git a/flow-docs/media/prevent-data-loss/2.png b/flow-docs/media/prevent-data-loss/2.png new file mode 100644 index 000000000..cda549ae0 Binary files /dev/null and b/flow-docs/media/prevent-data-loss/2.png differ diff --git a/flow-docs/media/prevent-data-loss/3-delete.png b/flow-docs/media/prevent-data-loss/3-delete.png new file mode 100644 index 000000000..7f823ae7c Binary files /dev/null and b/flow-docs/media/prevent-data-loss/3-delete.png differ diff --git a/flow-docs/media/prevent-data-loss/3.png b/flow-docs/media/prevent-data-loss/3.png new file mode 100644 index 000000000..d2d80c8d9 Binary files /dev/null and b/flow-docs/media/prevent-data-loss/3.png differ diff --git a/flow-docs/media/prevent-data-loss/4.png b/flow-docs/media/prevent-data-loss/4.png new file mode 100644 index 000000000..2e7739df9 Binary files /dev/null and b/flow-docs/media/prevent-data-loss/4.png differ diff --git a/flow-docs/media/prevent-data-loss/create-policy-1.png b/flow-docs/media/prevent-data-loss/create-policy-1.png new file mode 100644 index 000000000..5a14256ce Binary files /dev/null and b/flow-docs/media/prevent-data-loss/create-policy-1.png differ diff --git a/flow-docs/media/prevent-data-loss/create-policy-2.png b/flow-docs/media/prevent-data-loss/create-policy-2.png new file mode 100644 index 000000000..32882b378 Binary files /dev/null and b/flow-docs/media/prevent-data-loss/create-policy-2.png differ diff --git a/flow-docs/media/prevent-data-loss/create-policy-3.png b/flow-docs/media/prevent-data-loss/create-policy-3.png new file mode 100644 index 000000000..bb16046c5 Binary files /dev/null and b/flow-docs/media/prevent-data-loss/create-policy-3.png differ diff --git a/flow-docs/media/prevent-data-loss/create-policy-4.png b/flow-docs/media/prevent-data-loss/create-policy-4.png new file mode 100644 index 000000000..97f2f9857 Binary files /dev/null and b/flow-docs/media/prevent-data-loss/create-policy-4.png differ diff --git a/flow-docs/media/prevent-data-loss/create-policy-5.png b/flow-docs/media/prevent-data-loss/create-policy-5.png new file mode 100644 index 000000000..215e17d9c Binary files /dev/null and b/flow-docs/media/prevent-data-loss/create-policy-5.png differ diff --git a/flow-docs/media/prevent-data-loss/create-policy-6.png b/flow-docs/media/prevent-data-loss/create-policy-6.png new file mode 100644 index 000000000..7b632bf08 Binary files /dev/null and b/flow-docs/media/prevent-data-loss/create-policy-6.png differ diff --git a/flow-docs/media/prevent-data-loss/create-policy-7.png b/flow-docs/media/prevent-data-loss/create-policy-7.png new file mode 100644 index 000000000..1cd54f048 Binary files /dev/null and b/flow-docs/media/prevent-data-loss/create-policy-7.png differ diff --git a/flow-docs/media/prevent-data-loss/create-policy-8.png b/flow-docs/media/prevent-data-loss/create-policy-8.png new file mode 100644 index 000000000..d6cca79d3 Binary files /dev/null and b/flow-docs/media/prevent-data-loss/create-policy-8.png differ diff --git a/flow-docs/media/prevent-data-loss/create-policy-9.png b/flow-docs/media/prevent-data-loss/create-policy-9.png new file mode 100644 index 000000000..a3dde6804 Binary files /dev/null and b/flow-docs/media/prevent-data-loss/create-policy-9.png differ diff --git a/flow-docs/media/publish-a-template/context-menu.png b/flow-docs/media/publish-a-template/context-menu.png new file mode 100644 index 000000000..71e4bc027 Binary files /dev/null and b/flow-docs/media/publish-a-template/context-menu.png differ diff --git a/flow-docs/media/publish-a-template/ellipsis-button.png b/flow-docs/media/publish-a-template/ellipsis-button.png new file mode 100644 index 000000000..ae4678987 Binary files /dev/null and b/flow-docs/media/publish-a-template/ellipsis-button.png differ diff --git a/flow-docs/media/publish-a-template/template-options.png b/flow-docs/media/publish-a-template/template-options.png new file mode 100644 index 000000000..4d519e29a Binary files /dev/null and b/flow-docs/media/publish-a-template/template-options.png differ diff --git a/flow-docs/media/regions-overview/environments-list.png b/flow-docs/media/regions-overview/environments-list.png new file mode 100644 index 000000000..39fdda8df Binary files /dev/null and b/flow-docs/media/regions-overview/environments-list.png differ diff --git a/flow-docs/media/register-custom-api/authenticationtypes.png b/flow-docs/media/register-custom-api/authenticationtypes.png new file mode 100644 index 000000000..77601d0e7 Binary files /dev/null and b/flow-docs/media/register-custom-api/authenticationtypes.png differ diff --git a/flow-docs/media/register-custom-api/choosehowtocreate.png b/flow-docs/media/register-custom-api/choosehowtocreate.png new file mode 100644 index 000000000..c8378683a Binary files /dev/null and b/flow-docs/media/register-custom-api/choosehowtocreate.png differ diff --git a/flow-docs/media/register-custom-api/definitiontab.png b/flow-docs/media/register-custom-api/definitiontab.png new file mode 100644 index 000000000..e5e3e47b2 Binary files /dev/null and b/flow-docs/media/register-custom-api/definitiontab.png differ diff --git a/flow-docs/media/register-custom-api/importfromsample.png b/flow-docs/media/register-custom-api/importfromsample.png new file mode 100644 index 000000000..d8df9bb02 Binary files /dev/null and b/flow-docs/media/register-custom-api/importfromsample.png differ diff --git a/flow-docs/media/register-custom-api/managecustomapi.png b/flow-docs/media/register-custom-api/managecustomapi.png new file mode 100644 index 000000000..387be2da4 Binary files /dev/null and b/flow-docs/media/register-custom-api/managecustomapi.png differ diff --git a/flow-docs/media/register-custom-api/newcustomapi.png b/flow-docs/media/register-custom-api/newcustomapi.png new file mode 100644 index 000000000..439e8c99f Binary files /dev/null and b/flow-docs/media/register-custom-api/newcustomapi.png differ diff --git a/flow-docs/media/register-custom-api/sharecustomapi.png b/flow-docs/media/register-custom-api/sharecustomapi.png new file mode 100644 index 000000000..5f09718e7 Binary files /dev/null and b/flow-docs/media/register-custom-api/sharecustomapi.png differ diff --git a/flow-docs/media/register-custom-api/testapiresponse.png b/flow-docs/media/register-custom-api/testapiresponse.png new file mode 100644 index 000000000..d9d574439 Binary files /dev/null and b/flow-docs/media/register-custom-api/testapiresponse.png differ diff --git a/flow-docs/media/register-custom-api/testcustomapi.png b/flow-docs/media/register-custom-api/testcustomapi.png new file mode 100644 index 000000000..18d1620b3 Binary files /dev/null and b/flow-docs/media/register-custom-api/testcustomapi.png differ diff --git a/flow-docs/media/register-custom-api/view-properties.png b/flow-docs/media/register-custom-api/view-properties.png new file mode 100644 index 000000000..44bcf6f96 Binary files /dev/null and b/flow-docs/media/register-custom-api/view-properties.png differ diff --git a/flow-docs/media/run-tasks-on-a-schedule/add-action.png b/flow-docs/media/run-tasks-on-a-schedule/add-action.png new file mode 100644 index 000000000..4e806cc53 Binary files /dev/null and b/flow-docs/media/run-tasks-on-a-schedule/add-action.png differ diff --git a/flow-docs/media/run-tasks-on-a-schedule/add-delay.png b/flow-docs/media/run-tasks-on-a-schedule/add-delay.png new file mode 100644 index 000000000..ef2160726 Binary files /dev/null and b/flow-docs/media/run-tasks-on-a-schedule/add-delay.png differ diff --git a/flow-docs/media/run-tasks-on-a-schedule/add-recurrence.png b/flow-docs/media/run-tasks-on-a-schedule/add-recurrence.png new file mode 100644 index 000000000..8dc8f00b7 Binary files /dev/null and b/flow-docs/media/run-tasks-on-a-schedule/add-recurrence.png differ diff --git a/flow-docs/media/run-tasks-on-a-schedule/create-flow.png b/flow-docs/media/run-tasks-on-a-schedule/create-flow.png new file mode 100644 index 000000000..5c2e46c43 Binary files /dev/null and b/flow-docs/media/run-tasks-on-a-schedule/create-flow.png differ diff --git a/flow-docs/media/run-tasks-on-a-schedule/create-from-blank.png b/flow-docs/media/run-tasks-on-a-schedule/create-from-blank.png new file mode 100644 index 000000000..9e65ccc0e Binary files /dev/null and b/flow-docs/media/run-tasks-on-a-schedule/create-from-blank.png differ diff --git a/flow-docs/media/run-tasks-on-a-schedule/specify-recurrence.png b/flow-docs/media/run-tasks-on-a-schedule/specify-recurrence.png new file mode 100644 index 000000000..87853d753 Binary files /dev/null and b/flow-docs/media/run-tasks-on-a-schedule/specify-recurrence.png differ diff --git a/flow-docs/media/see-a-flow-run/successful-flow-expanded-cards.png b/flow-docs/media/see-a-flow-run/successful-flow-expanded-cards.png new file mode 100644 index 000000000..fcc586bc7 Binary files /dev/null and b/flow-docs/media/see-a-flow-run/successful-flow-expanded-cards.png differ diff --git a/flow-docs/media/see-a-flow-run/successful-flow-run.png b/flow-docs/media/see-a-flow-run/successful-flow-run.png new file mode 100644 index 000000000..4cb529da3 Binary files /dev/null and b/flow-docs/media/see-a-flow-run/successful-flow-run.png differ diff --git a/flow-docs/media/sequential-modern-approvals/completed-flow.png b/flow-docs/media/sequential-modern-approvals/completed-flow.png new file mode 100644 index 000000000..9017ca657 Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/completed-flow.png differ diff --git a/flow-docs/media/sequential-modern-approvals/configure-rejected-email.png b/flow-docs/media/sequential-modern-approvals/configure-rejected-email.png new file mode 100644 index 000000000..7a9a1436c Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/configure-rejected-email.png differ diff --git a/flow-docs/media/sequential-modern-approvals/configure-update-item-approved.png b/flow-docs/media/sequential-modern-approvals/configure-update-item-approved.png new file mode 100644 index 000000000..65eb6b460 Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/configure-update-item-approved.png differ diff --git a/flow-docs/media/sequential-modern-approvals/configure-update-item.png b/flow-docs/media/sequential-modern-approvals/configure-update-item.png new file mode 100644 index 000000000..181617cbe Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/configure-update-item.png differ diff --git a/flow-docs/media/sequential-modern-approvals/final-rejection-email-card.png b/flow-docs/media/sequential-modern-approvals/final-rejection-email-card.png new file mode 100644 index 000000000..1cb7e84da Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/final-rejection-email-card.png differ diff --git a/flow-docs/media/sequential-modern-approvals/final-rejection-update-sharepoint.png b/flow-docs/media/sequential-modern-approvals/final-rejection-update-sharepoint.png new file mode 100644 index 000000000..4e46b0411 Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/final-rejection-update-sharepoint.png differ diff --git a/flow-docs/media/sequential-modern-approvals/provide-approval-config-info.png b/flow-docs/media/sequential-modern-approvals/provide-approval-config-info.png new file mode 100644 index 000000000..0c887f434 Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/provide-approval-config-info.png differ diff --git a/flow-docs/media/sequential-modern-approvals/save.png b/flow-docs/media/sequential-modern-approvals/save.png new file mode 100644 index 000000000..79cead4ce Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/save.png differ diff --git a/flow-docs/media/sequential-modern-approvals/select-sharepoint-site-info.png b/flow-docs/media/sequential-modern-approvals/select-sharepoint-site-info.png new file mode 100644 index 000000000..937f05600 Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/select-sharepoint-site-info.png differ diff --git a/flow-docs/media/sequential-modern-approvals/sharepoint-columns.png b/flow-docs/media/sequential-modern-approvals/sharepoint-columns.png new file mode 100644 index 000000000..4e6a3db63 Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/sharepoint-columns.png differ diff --git a/flow-docs/media/sequential-modern-approvals/update-sharepoint-with-rejection.png b/flow-docs/media/sequential-modern-approvals/update-sharepoint-with-rejection.png new file mode 100644 index 000000000..e6d1110a9 Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/update-sharepoint-with-rejection.png differ diff --git a/flow-docs/media/sequential-modern-approvals/update.png b/flow-docs/media/sequential-modern-approvals/update.png new file mode 100644 index 000000000..86ebe302b Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/update.png differ diff --git a/flow-docs/media/sequential-modern-approvals/vacatioin-request-approved-email-template.png b/flow-docs/media/sequential-modern-approvals/vacatioin-request-approved-email-template.png new file mode 100644 index 000000000..b883c7fdb Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/vacatioin-request-approved-email-template.png differ diff --git a/flow-docs/media/sequential-modern-approvals/vacation-request.png b/flow-docs/media/sequential-modern-approvals/vacation-request.png new file mode 100644 index 000000000..39677d053 Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/vacation-request.png differ diff --git a/flow-docs/media/sequential-modern-approvals/visio-overview.png b/flow-docs/media/sequential-modern-approvals/visio-overview.png new file mode 100644 index 000000000..56cacad97 Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/visio-overview.png differ diff --git a/flow-docs/media/sequential-modern-approvals/yes-email-config.png b/flow-docs/media/sequential-modern-approvals/yes-email-config.png new file mode 100644 index 000000000..8fc7dcc5c Binary files /dev/null and b/flow-docs/media/sequential-modern-approvals/yes-email-config.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-added-shared-button.png b/flow-docs/media/share-buttons/share-button-flows-added-shared-button.png new file mode 100644 index 000000000..a3dc1af49 Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-added-shared-button.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-banner.png b/flow-docs/media/share-buttons/share-button-flows-banner.png new file mode 100644 index 000000000..37718b0c8 Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-banner.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-button-users-list-no-more.png b/flow-docs/media/share-buttons/share-button-flows-button-users-list-no-more.png new file mode 100644 index 000000000..654439d67 Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-button-users-list-no-more.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-button-users-list.png b/flow-docs/media/share-buttons/share-button-flows-button-users-list.png new file mode 100644 index 000000000..d2c48ec94 Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-button-users-list.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-button-users.png b/flow-docs/media/share-buttons/share-button-flows-button-users.png new file mode 100644 index 000000000..500506295 Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-button-users.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-buttons-shared-with-me.png b/flow-docs/media/share-buttons/share-button-flows-buttons-shared-with-me.png new file mode 100644 index 000000000..dc67418c1 Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-buttons-shared-with-me.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-buttons-tab-get-more.png b/flow-docs/media/share-buttons/share-button-flows-buttons-tab-get-more.png new file mode 100644 index 000000000..0647bc8a6 Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-buttons-tab-get-more.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-buttons-tab.png b/flow-docs/media/share-buttons/share-button-flows-buttons-tab.png new file mode 100644 index 000000000..d61b2690c Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-buttons-tab.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-flows-tab.png b/flow-docs/media/share-buttons/share-button-flows-flows-tab.png new file mode 100644 index 000000000..810a38363 Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-flows-tab.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-invite-others-done.png b/flow-docs/media/share-buttons/share-button-flows-invite-others-done.png new file mode 100644 index 000000000..15ffd0c91 Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-invite-others-done.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-invite-others-ok.png b/flow-docs/media/share-buttons/share-button-flows-invite-others-ok.png new file mode 100644 index 000000000..594f79a7e Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-invite-others-ok.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-invite-others-select.png b/flow-docs/media/share-buttons/share-button-flows-invite-others-select.png new file mode 100644 index 000000000..566fe91a8 Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-invite-others-select.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-invite-others-send.png b/flow-docs/media/share-buttons/share-button-flows-invite-others-send.png new file mode 100644 index 000000000..650b22c34 Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-invite-others-send.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-invite-others.png b/flow-docs/media/share-buttons/share-button-flows-invite-others.png new file mode 100644 index 000000000..4c6f58eb8 Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-invite-others.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-remove-user-list.png b/flow-docs/media/share-buttons/share-button-flows-remove-user-list.png new file mode 100644 index 000000000..5dbc9d634 Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-remove-user-list.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-remove-user-result.png b/flow-docs/media/share-buttons/share-button-flows-remove-user-result.png new file mode 100644 index 000000000..0b8a38de9 Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-remove-user-result.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-remove-user.png b/flow-docs/media/share-buttons/share-button-flows-remove-user.png new file mode 100644 index 000000000..7b5ec81c2 Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-remove-user.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-run-only.png b/flow-docs/media/share-buttons/share-button-flows-run-only.png new file mode 100644 index 000000000..e2956e68b Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-run-only.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-select-button-shared-with-me.png b/flow-docs/media/share-buttons/share-button-flows-select-button-shared-with-me.png new file mode 100644 index 000000000..317fcb8ae Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-select-button-shared-with-me.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-share-no-more.png b/flow-docs/media/share-buttons/share-button-flows-share-no-more.png new file mode 100644 index 000000000..5a5e5136f Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-share-no-more.png differ diff --git a/flow-docs/media/share-buttons/share-button-flows-tab-run-only.png b/flow-docs/media/share-buttons/share-button-flows-tab-run-only.png new file mode 100644 index 000000000..9d72cf78f Binary files /dev/null and b/flow-docs/media/share-buttons/share-button-flows-tab-run-only.png differ diff --git a/flow-docs/media/sign-up-sign-in/signin.png b/flow-docs/media/sign-up-sign-in/signin.png new file mode 100644 index 000000000..153918eee Binary files /dev/null and b/flow-docs/media/sign-up-sign-in/signin.png differ diff --git a/flow-docs/media/sign-up-sign-in/signup.png b/flow-docs/media/sign-up-sign-in/signup.png new file mode 100644 index 000000000..25ef8af49 Binary files /dev/null and b/flow-docs/media/sign-up-sign-in/signup.png differ diff --git a/flow-docs/media/wait-for-approvals/SPO-list-name.png b/flow-docs/media/wait-for-approvals/SPO-list-name.png new file mode 100644 index 000000000..f495cdfa0 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/SPO-list-name.png differ diff --git a/flow-docs/media/wait-for-approvals/SPO-site-url.png b/flow-docs/media/wait-for-approvals/SPO-site-url.png new file mode 100644 index 000000000..8cf75da48 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/SPO-site-url.png differ diff --git a/flow-docs/media/wait-for-approvals/SPO-trigger.png b/flow-docs/media/wait-for-approvals/SPO-trigger.png new file mode 100644 index 000000000..e151703b9 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/SPO-trigger.png differ diff --git a/flow-docs/media/wait-for-approvals/add-a-condition.png b/flow-docs/media/wait-for-approvals/add-a-condition.png new file mode 100644 index 000000000..e30007e8c Binary files /dev/null and b/flow-docs/media/wait-for-approvals/add-a-condition.png differ diff --git a/flow-docs/media/wait-for-approvals/add-action.png b/flow-docs/media/wait-for-approvals/add-action.png new file mode 100644 index 000000000..e3b53a796 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/add-action.png differ diff --git a/flow-docs/media/wait-for-approvals/add-an-action.png b/flow-docs/media/wait-for-approvals/add-an-action.png new file mode 100644 index 000000000..4b4bac831 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/add-an-action.png differ diff --git a/flow-docs/media/wait-for-approvals/approval-mail.png b/flow-docs/media/wait-for-approvals/approval-mail.png new file mode 100644 index 000000000..f2c07d417 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/approval-mail.png differ diff --git a/flow-docs/media/wait-for-approvals/approval-search.png b/flow-docs/media/wait-for-approvals/approval-search.png new file mode 100644 index 000000000..4bd9e7e53 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/approval-search.png differ diff --git a/flow-docs/media/wait-for-approvals/condition-card-2.png b/flow-docs/media/wait-for-approvals/condition-card-2.png new file mode 100644 index 000000000..a823f8b0c Binary files /dev/null and b/flow-docs/media/wait-for-approvals/condition-card-2.png differ diff --git a/flow-docs/media/wait-for-approvals/condition-card.png b/flow-docs/media/wait-for-approvals/condition-card.png new file mode 100644 index 000000000..5d5df8574 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/condition-card.png differ diff --git a/flow-docs/media/wait-for-approvals/create-a-new-flow.png b/flow-docs/media/wait-for-approvals/create-a-new-flow.png new file mode 100644 index 000000000..142de0361 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/create-a-new-flow.png differ diff --git a/flow-docs/media/wait-for-approvals/create-flow.png b/flow-docs/media/wait-for-approvals/create-flow.png new file mode 100644 index 000000000..0f5323bcd Binary files /dev/null and b/flow-docs/media/wait-for-approvals/create-flow.png differ diff --git a/flow-docs/media/wait-for-approvals/edit-flow.png b/flow-docs/media/wait-for-approvals/edit-flow.png new file mode 100644 index 000000000..8c41d8d34 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/edit-flow.png differ diff --git a/flow-docs/media/wait-for-approvals/entire-flow.png b/flow-docs/media/wait-for-approvals/entire-flow.png new file mode 100644 index 000000000..b624bfc4e Binary files /dev/null and b/flow-docs/media/wait-for-approvals/entire-flow.png differ diff --git a/flow-docs/media/wait-for-approvals/flow-sequence.png b/flow-docs/media/wait-for-approvals/flow-sequence.png new file mode 100644 index 000000000..5e95ffaf7 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/flow-sequence.png differ diff --git a/flow-docs/media/wait-for-approvals/if-yes-send-email-card-2.png b/flow-docs/media/wait-for-approvals/if-yes-send-email-card-2.png new file mode 100644 index 000000000..ea91b16be Binary files /dev/null and b/flow-docs/media/wait-for-approvals/if-yes-send-email-card-2.png differ diff --git a/flow-docs/media/wait-for-approvals/if-yes-send-email-card-3.png b/flow-docs/media/wait-for-approvals/if-yes-send-email-card-3.png new file mode 100644 index 000000000..c3c99f695 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/if-yes-send-email-card-3.png differ diff --git a/flow-docs/media/wait-for-approvals/if-yes-send-email-card.png b/flow-docs/media/wait-for-approvals/if-yes-send-email-card.png new file mode 100644 index 000000000..4d78ceb02 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/if-yes-send-email-card.png differ diff --git a/flow-docs/media/wait-for-approvals/my-flows.png b/flow-docs/media/wait-for-approvals/my-flows.png new file mode 100644 index 000000000..660972103 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/my-flows.png differ diff --git a/flow-docs/media/wait-for-approvals/nav-flows.png b/flow-docs/media/wait-for-approvals/nav-flows.png new file mode 100644 index 000000000..73ac8855b Binary files /dev/null and b/flow-docs/media/wait-for-approvals/nav-flows.png differ diff --git a/flow-docs/media/wait-for-approvals/no-send-email-2.png b/flow-docs/media/wait-for-approvals/no-send-email-2.png new file mode 100644 index 000000000..60ed7edf5 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/no-send-email-2.png differ diff --git a/flow-docs/media/wait-for-approvals/no-send-email.png b/flow-docs/media/wait-for-approvals/no-send-email.png new file mode 100644 index 000000000..cbebd195f Binary files /dev/null and b/flow-docs/media/wait-for-approvals/no-send-email.png differ diff --git a/flow-docs/media/wait-for-approvals/project-tracker.png b/flow-docs/media/wait-for-approvals/project-tracker.png new file mode 100644 index 000000000..8da5910b6 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/project-tracker.png differ diff --git a/flow-docs/media/wait-for-approvals/send-approval-email-select-2.png b/flow-docs/media/wait-for-approvals/send-approval-email-select-2.png new file mode 100644 index 000000000..45b22f195 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/send-approval-email-select-2.png differ diff --git a/flow-docs/media/wait-for-approvals/send-approval-email-select.png b/flow-docs/media/wait-for-approvals/send-approval-email-select.png new file mode 100644 index 000000000..831379508 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/send-approval-email-select.png differ diff --git a/flow-docs/media/wait-for-approvals/send-approval-email-to.png b/flow-docs/media/wait-for-approvals/send-approval-email-to.png new file mode 100644 index 000000000..4e9134986 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/send-approval-email-to.png differ diff --git a/flow-docs/media/wait-for-approvals/send-approval-mail.png b/flow-docs/media/wait-for-approvals/send-approval-mail.png new file mode 100644 index 000000000..55a50ba21 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/send-approval-mail.png differ diff --git a/flow-docs/media/wait-for-approvals/yes-add-an-action.png b/flow-docs/media/wait-for-approvals/yes-add-an-action.png new file mode 100644 index 000000000..ad6dc00c3 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/yes-add-an-action.png differ diff --git a/flow-docs/media/wait-for-approvals/yes-send-email.png b/flow-docs/media/wait-for-approvals/yes-send-email.png new file mode 100644 index 000000000..99acfe824 Binary files /dev/null and b/flow-docs/media/wait-for-approvals/yes-send-email.png differ diff --git a/flow-docs/mobile-approvals.md b/flow-docs/mobile-approvals.md new file mode 100644 index 000000000..fc00a14af --- /dev/null +++ b/flow-docs/mobile-approvals.md @@ -0,0 +1,76 @@ +--- +title: Approve requests on a mobile device | Microsoft Docs +description: Use a mobile device to approve requests created in Microsoft Flow. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 07/20/2017 +ms.author: deonhe + +--- +# Approve requests on your mobile device by using Microsoft Flow +If a flow identifies you as an approver and you've installed the mobile app for Microsoft Flow, you receive a push notification whenever your approval is requested. + +This article walks you through a few common scenarios that you’re likely to encounter while you manage approval requests in the mobile app for Microsoft Flow. + +> [!NOTE] +> The images in this topic are from an Android device; however, the experience on iOS is similar. +> +> + +## Prerequisites +To complete this walkthrough, you need: + +* An [Android](https://aka.ms/flowmobiledocsandroid) or [iOS](https://aka.ms/flowmobiledocsios) device running the mobile app for Microsoft Flow. +* To be designated as the approver in an approval flow. +* Pending requests for approval. + +## View pending requests +1. Open the mobile app for Microsoft Flow. + + ![start the mobile app](./media/mobile-approvals/open-app.png) +2. Select **APPROVALS** in the upper-right corner. + + ![select approvals](./media/mobile-approvals/select-approvals.png) +3. View all pending approvals: + + ![see pending approval requests](./media/mobile-approvals/show-pending-approval-requests.png) + +If you don't have any pending approval requests, create an [approval flow](modern-approvals.md), set yourself as an approver, and then trigger the flow. Approval requests appear in the approval center a few seconds after the flow triggers and sends a request for approval. + +## Approve requests and leave an optional comment +1. If you haven't done so, follow the preceding steps to [display all pending approval requests](mobile-approvals.md#view-pending-approval-requests). +2. Select **APPROVE** on the request that you want to approve. + + ![select approve](./media/mobile-approvals/select-approve.png) +3. (Optional) select **Add comment (optional)**. + + ![select add a comment](./media/mobile-approvals/select-add-comment.png) + + Enter a comment on the **Add comment** screen. + + ![enter your comment](./media/mobile-approvals/enter-comment-for-approval.png) +4. Select **CONFIRM** in the upper-right corner. + + ![confirm you are finished](./media/mobile-approvals/tap-confirm-button.png) + + The success screen displays after the flow records your decision. + + ![success screen](./media/mobile-approvals/approved.png) + +## Reject requests and leave an optional comment +Follow the [steps to approve a request](mobile-approvals.md#approve-requests-and-leave-an-optional-comment), but select **REJECT** in the second step. + +## Learn more +[Create modern approval flows](modern-approvals.md). + diff --git a/flow-docs/mobile-create-flow.md b/flow-docs/mobile-create-flow.md new file mode 100644 index 000000000..8743f475a --- /dev/null +++ b/flow-docs/mobile-create-flow.md @@ -0,0 +1,88 @@ +--- +title: Create a flow from your phone | Microsoft Docs +description: Create a flow from a template that, for example, sends a push notification when you receive mail from an address that you specify +services: '' +suite: flow +documentationcenter: na +author: adiregev +manager: erikre +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 09/18/2016 +ms.author: adiregev + +--- +# Create a flow from your phone by using Microsoft Flow +Create a flow from your phone by using a template, which you can find by searching through a list of services, browsing categories, or specifying keywords. Follow the steps in this topic to create a flow that sends a push notification to your phone when you get mail from your manager. + +If you're unfamiliar with Microsoft Flow, [get an overview](getting-started.md). + +## Prerequisites +* An [account for Microsoft Flow](sign-up-sign-in.md). +* The Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows) on a [supported device](getting-started.md#use-the-mobile-app). The graphics in this topic reflect the iPhone version of the app, but the interface on an Android device or Windows Phone is similar. +* To use the template demonstrated in this topic, you'll also need: + + * Office 365 credentials. + * Push notifications enabled on your phone. + +## Find a template +1. Open the mobile app, and then tap **Browse** at the bottom of the screen. + + ![Browse icon](./media/mobile-create-flow/browse-icon.png) + + You can find a template in any of these ways: + + * Specify a keyword in the search box at the top of the screen. + * Tap an option in the list of services. + * Scroll down to show a variety of categories, and then tap a template in any category. + + ![Browse tab](./media/mobile-create-flow/browse-tab.png) + + For this tutorial, you'll open the template that sends a push notification when you get mail from your manager. +2. In the list of services, tap **See all**. + + ![Show list of services](./media/mobile-create-flow/list-services.png) +3. Tap the icon for **Push notification**. + + ![Push notifications](./media/mobile-create-flow/push-notifications.png) +4. In the search bar, type **email**, and then tap the template to send a push notification when you receive a message from your manager. + + ![Choose template](./media/mobile-create-flow/choose-template.png) +5. In the screen that gives details about the template that you've selected, tap **Use this template**. + + ![Confirm template](./media/mobile-create-flow/confirm-template.png) + +## Finish the flow +1. If prompted, tap **Sign in**, and provide your credentials for Office 365 Outlook, Office 365 Users, or both. + + ![Sign in to Office 365](./media/mobile-create-flow/office-signin.png) + + You can use the same connections when you create other flows. +2. In the upper-right corner, tap **Next**. + + ![Tap Next](./media/mobile-create-flow/next.png) + + The next screen shows the trigger event and all of the resulting actions. + + ![Trigger event and actions](./media/mobile-create-flow/flow-structure.png) + + For this template, new mail triggers the flow, which retrieves your information (including your manager's address) and sends you a push notification when you get mail from that address. Some templates require some customization to work properly, but this template doesn't. +3. (optional) Near the top of the screen, type a different name for the flow. + + ![Rename flow](./media/mobile-create-flow/rename-flow.png) +4. In the upper-right corner, tap **Create**. + + ![Create flow](./media/mobile-create-flow/create-flow.png) + + Your flow is created and will check for mail from your manager until you pause or delete the flow. + +## Next steps +* [Monitor your flow activity](mobile-monitor-activity.md). +* [Manage your flows](mobile-manage-flows.md). + diff --git a/flow-docs/mobile-manage-flows.md b/flow-docs/mobile-manage-flows.md new file mode 100644 index 000000000..356b08717 --- /dev/null +++ b/flow-docs/mobile-manage-flows.md @@ -0,0 +1,60 @@ +--- +title: Manage flows from your phone | Microsoft Docs +description: View a list of your flows, enable or disable them, and view each flow's event/s, action/s, and run history +services: '' +suite: flow +documentationcenter: na +author: adiregev +manager: erikre +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 06/11/2016 +ms.author: adiregev + +--- +# Manage flows in Microsoft Flow from your phone +View a list of all flows that you created and, for each flow, view its events and actions, enable or disable it, and explore its run history. + +**Prerequisites** + +* Install the Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows) on a [supported device](getting-started.md#use-the-mobile-app). The graphics in this topic reflect the iPhone version of the app, but the graphics on Android and Windows Phone look similar. +* If you don't already have a flow, create one on [the website for Microsoft Flow](https://flow.microsoft.com/). For easier testing, use one that you can trigger yourself instead of waiting for an external event. + +The flow in this tutorial runs when you receive mail from a specific address: + +![Trigger flow on receipt of mail from specific address](./media/mobile-manage-flows/create-trigger.png) + +You could configure such a flow with your personal email address for testing and a different address (for example, your manager's) when the flow is ready for real use. + +When the flow runs, it sends a custom push notification, with this syntax, to your phone: + +![Send message to Slack](./media/mobile-manage-flows/create-event.png) + +**Note**: You can also [monitor flow activity](mobile-monitor-activity.md) from the mobile app. + +## Manage a flow +1. Open the mobile app, and then tap **My flows** at the bottom of the screen to list all your flows. + + Each entry shows the name of the flow, icons for its events and actions, the time when it ran most recently, and an icon that indicates whether the most recent run succeeded. + + ![List of flows](./media/mobile-manage-flows/flow-list.png) +2. Tap a flow to show options for managing it. + + ![Options to manage a flow](./media/mobile-manage-flows/flow-details.png) +3. Tap the **Enable flow** toggle to enable or disable the flow. +4. Tap **See flow** to show the events and actions for that flow, tap each event or an action to expand it, and then tap **Back**. + + ![Events and actions for a flow](./media/mobile-manage-flows/flow-event-action.png) +5. Tap **Run history** to show the flow's successes, failures, or both. + + ![List of runs](./media/mobile-manage-flows/history-mixed.png) +6. Tap a run to show whether each event and action succeeded and, if so, how much time (in seconds) it took. + + ![Run details](./media/mobile-manage-flows/flow-run.png) + diff --git a/flow-docs/mobile-monitor-activity.md b/flow-docs/mobile-monitor-activity.md new file mode 100644 index 000000000..b4cbd9954 --- /dev/null +++ b/flow-docs/mobile-monitor-activity.md @@ -0,0 +1,85 @@ +--- +title: Monitor activity from your phone | Microsoft Docs +description: View how many times each flow succeeded or failed, when each run occurred, and how long it took +services: '' +suite: flow +documentationcenter: na +author: adiregev +manager: erikre +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 06/11/2016 +ms.author: adiregev + +--- +# Monitor activity in Microsoft Flow from your phone +View a summary of how many times each flow succeeded or failed today, yesterday, and previous days. Explore details about each run, such as when it ran, how long each step took and, if it failed, why. + +**Prerequisites** + + + +* Install the Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows) on a [supported device](getting-started.md#use-the-mobile-app). The graphics in this topic reflect the iPhone version of the app, but the graphics on Android and Windows Phone are similar. +* If you don't already have a flow, create one on [the website for Microsoft Flow](https://flow.microsoft.com/). For easier testing, use one that you can trigger yourself instead of waiting for an external event. + +The flow in this tutorial runs when you receive mail from a specific address: + +![Trigger flow on receipt of mail from specific address](./media/mobile-monitor-activity/create-trigger.png) + +You could configure such a flow with your personal email address for testing and a different address (for example, your manager's) when the flow is ready for real use. + +When the flow runs, it sends a custom push notification, with this syntax, to your phone: + +![Send push notification](./media/mobile-monitor-activity/create-event.png) + +**Note:** You can also [manage your flows](mobile-manage-flows.md) from the mobile app. + +## Display a summary of activity + + +1. If your flow hasn't run before, trigger a run to generate data. + + It might take some time for the data to appear in the app. +2. Open the mobile app, which shows the **Activity** tab by default. + + This tab organizes data by day, with today's data at the top. + + ![Activity organized by day](./media/mobile-monitor-activity/activity-day2.png) + + Each entry shows the name of a flow with icons that correspond to its trigger events and actions. + + ![Name and icons for each flow](./media/mobile-monitor-activity/activity-flow-name.png) + + If at least one run of a flow has succeeded in a day, an entry shows the number of successes and the time when it succeeded most recently. A different entry shows similar information if a flow has failed. + + ![Summary of successes or failures](./media/mobile-monitor-activity/activity-summary.png) + + If a flow sends a push notification, the text of the most recent notification appears at the bottom of the entry for successful runs. + + ![Example of push notification](./media/mobile-monitor-activity/activity-notification.png) +3. If multiple push notifications were sent in a day, swipe left on the notification to view notifications from up to three previous runs. If more than four notifications were sent in a day, swipe left until **See more** appears, and then tap it to view a list of all notifications. + + ![Example of push notification](./media/mobile-monitor-activity/activity-notification-list.png) +4. Tap **Back** to return to the activity summary. +5. To filter the activity summary, tap the icon in the upper-right corner. + + You can show all entries, only the failure entries, or only the entries that include push notifications. + + ![Show all runs, only failures, or only notifications](./media/mobile-monitor-activity/activity-filter.png) + +## Show details of a run +1. In the activity summary, tap an entry to show details for the most recent run. + + Each event and action appears with an icon that indicates whether the event or action succeeded or failed. If it succeeded, the amount of time it took (in seconds) also appears. + + ![Details of a run](./media/mobile-monitor-activity/activity-icons.png) +2. At the bottom of the screen, tap **See previous runs** to list all runs of the flow, and then tap a run to show its details. + + ![Success/failure history](./media/mobile-monitor-activity/history-mixed.png) + diff --git a/flow-docs/modern-approvals.md b/flow-docs/modern-approvals.md new file mode 100644 index 000000000..a08b15b51 --- /dev/null +++ b/flow-docs/modern-approvals.md @@ -0,0 +1,137 @@ +--- +title: Easily Automate approval workflows. | Microsoft Docs +description: Automate approval workflows that integrate with SharePoint, Dynamics CRM, Salesforce, OneDrive for Business, Zendesk, or WordPress. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 06/15/2017 +ms.author: deonhe + +--- +# Create and test an approval workflow with Microsoft Flow +To automate an approval workflow, add the **Approvals - Start an approval** action to any flow. After you add this action, your flow can manage the approval of documents or processes. For example, you can create document approval flows that approve invoices, work orders, or sales quotations. You can also create process approval flows that approve vacation requests, overtime work, or travel plans. + +Approval flows can leverage several services, including SharePoint, Dynamics CRM, Salesforce, OneDrive for Business, Zendesk, or WordPress. + +Approvers manage requests from their email inbox, [the approvals center](https://flow.microsoft.com/manage/approvals/received/) on the Microsoft Flow website, or the Microsoft Flow app. + +## Create an approval flow +Here's an overview of the flow we'll create: + + ![overview of flow](./media/modern-approvals/create-flow-overview.png) + +The flow performs the following steps: + +1. Starts when someone creates a vacation request in a SharePoint Online list. +2. Adds the vacation request to the approval center, and then emails it to the approver. +3. Sends an email with the approver's decision to the person who requested vacation. +4. Updates the SharePoint Online list with the approver's decision comments. + +## Prerequisites +To complete this walkthrough, you must have access to: + +[!INCLUDE [prerequisites-for-modern-approvals](includes/prerequisites-for-modern-approvals.md)] + +Create these columns in your SharePoint Online list: + + ![SharePoint Online list columns](./media/modern-approvals/sharepoint-list-fields.png) + +Make note of the name and URL of the SharePoint Online list. You'll need these items later when you configure the **SharePoint - When a new item is created** trigger. + +### Create your flow from the blank template +[!INCLUDE [sign-in-and-create-flow-from-blank-template](includes/sign-in-and-create-flow-from-blank-template.md)] + +### Add a trigger +[!INCLUDE [add-trigger-when-sharepoint-item-created](includes/add-trigger-when-sharepoint-item-created.md)] + +The **Site Address** and the **List Name** are the items you noted earlier in this walkthrough. + +![SharePoint info](./media/modern-approvals/select-sharepoint-site-info.png) + +### Add a profile action +1. Select **New step**, and then select **Add an action**. + + ![new step](./media/modern-approvals/select-sharepoint-add-action.png) +2. Enter **profile** into the **Choose an action** search box. + + ![search for profile](./media/modern-approvals/search-for-profile.png) +3. Find, and then select the **Office 365 Users - Get my profile** action. + + ![select office users](./media/modern-approvals/select-my-profile.png) +4. Provide a name for your flow, and then select **Create flow** to save the work we've done so far. + + ![save flow](./media/modern-approvals/save.png) + +### Add an approval action +[!INCLUDE [add-an-approval-action](includes/add-an-approval-action.md)] + +Note: This action sends the approval request to the email address in the **Assigned To** box. + +### Add a condition +[!INCLUDE [add-approval-condition-response](includes/add-approval-condition-response.md)] + +### Add an email action for approvals +Follow these steps to send an email if the vacation request is approved: + +[!INCLUDE [add-action-to-send-email-when-vacation-approved](includes/add-action-to-send-email-when-vacation-approved.md)] + + ![configure approved email template](./media/sequential-modern-approvals/yes-email-config.png) + +### Add an update action for approved requests +[!INCLUDE [add-action-to-update-sharepoint-with-approval](includes/add-action-to-update-sharepoint-with-approval.md)] + +Note: **Site Address**, **List Name**, **Id**, and **Title** are required. + +![update item configuration](./media/modern-approvals/configure-update-item.png) + +### Add an email action for rejections +[!INCLUDE [add-action-to-send-email-when-vacation-rejected](includes/add-action-to-send-email-when-vacation-rejected.md)] + +![configuration for rejected requests](./media/modern-approvals/configure-rejected-email.png) + +### Add update action for rejected requests +[!INCLUDE [add-action-to-update-sharepoint-with-rejection](includes/add-action-to-update-sharepoint-with-rejection.md)] + + Note: **Site Address**, **List Name**, **Id**, and **Title** are required. + +![update item card](./media/modern-approvals/configure-update-item-no.png) + +1. Select **Update flow** to save the work we've done. + + ![select update action](./media/modern-approvals/update.png) + +If you've followed along, your flow should resemble this screenshot: + +![overview of flow](./media/modern-approvals/completed-flow.png) + +Now that we've created the flow, it's time to test it! + +## Request an approval +[!INCLUDE [request-vacation-approval](includes/request-vacation-approval.md)] + +## View pending approval requests +[!INCLUDE [view-pending-approvals](includes/view-pending-approvals.md)] + +## Approve a request +[!INCLUDE [approve-request-from-different-locations](includes/approve-request-from-different-locations.md)] + +## Reject a request +[!INCLUDE [reject-a-request](includes/reject-a-request.md)] + +Now that you've created and tested your flow, be sure to let others know how to use it. + +## Learn more +* Create [sequential approval flows.](sequential-modern-approvals.md) +* Create [parallel approval flows.](parallel-modern-approvals.md) +* Install the Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows). + diff --git a/flow-docs/multi-step-logic-flow.md b/flow-docs/multi-step-logic-flow.md new file mode 100644 index 000000000..7204914e7 --- /dev/null +++ b/flow-docs/multi-step-logic-flow.md @@ -0,0 +1,82 @@ +--- +title: Add an advanced option and multiple actions | Microsoft Docs +description: Expand a flow to include an advanced option, such as setting email to high priority, and add another action for the same event. +services: '' +suite: flow +documentationcenter: na +author: stepsic-microsoft-com +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 04/20/2017 +ms.author: stepsic + +--- +# Add multiple actions and advanced options to a flow +Customize a flow by adding one or more advanced options and multiple actions for the same trigger. For example, add an advanced option that sends an email message as high priority. In addition to sending mail when an item is added to a SharePoint list, create a file in Dropbox that contains the same information. + +## Prerequisites +* [Create a flow](get-started-logic-flow.md) + +## Add another action +In this procedure, you'll add an action in the middle of the flow. This action will save a file in your Dropbox, archiving the item in the list. + +1. In [flow.microsoft.com](https://flow.microsoft.com), select **My flows** in the top navigation bar. +2. In the list of flows, select the flow that you want to edit. +3. Select **New step**, and then select **Add an action**. + + ![Collapsed add](./media/multi-step-logic-flow/add-action.png) +4. In the list of possible actions, search for **Create file**, and then select **Dropbox - Create file**. + + ![search create file](./media/multi-step-logic-flow/create-file-search.png) +5. If prompted, provide your Dropbox credentials. +6. Select the folder icon on the right side of the **Folder path** box. +7. Find and then select the folder in which you want to place the new file. + + ![search create file](./media/multi-step-logic-flow/create-file-folder.png) +8. Enter the name of the new file into the **File name** box. Be sure to append an extension, such as ".txt", to the file name. Here, let's use the **TweetId** in the file's name to ensure uniqueness of the files. You may have to select **See more** to find the **TweetId** token. +9. Add the text that you want the file to contain by typing into the **File content** box. You can also add tokens into the **File content** box. + + ![file name and contents](./media/multi-step-logic-flow/create-file-name-and-contents.png) + + > [!IMPORTANT] + > If you give the file a name that matches an existing file's name (in the selected folder), the existing file will be overwritten. + > + > +10. Select **Update flow**, which is located on the menu at the top of the screen. +11. Send a tweet that contains the keyword you specified. + + Within a minute, a file is created in your Dropbox account. + +## Reorder or delete an action +To receive email after the file is created in Dropbox, move the Dropbox action by dragging its title bar above the email action. Release the Dropbox action over the arrow between the trigger (**When a new tweet is posted**) and the email action. (The cursor indicates whether the action is positioned correctly.) + + **Note:** You can't move a step before another if you're using any outputs from that step. + + ![Delete the menu](./media/multi-step-logic-flow/draggingaction.png) + +* To delete an action, select the ellipsis (...) near the right edge of the title bar for the action you want to delete, select **Delete**, and then select **OK**. + + ![Delete the menu](./media/multi-step-logic-flow/deletemenu.png) + + **Note:** You can't delete an action if you're using any outputs from it anywhere in the flow. First, remove those outputs from the fields, and then you can delete the action. + +## Add advanced options +Start with a flow that has a **Send an email** action. + +1. Select **Show advanced options**, which is located at the bottom of the **Send an email** card. + + You'll then see the advanced options for sending an email. + + ![Sharepoint triggers](./media/multi-step-logic-flow/advanced.png) +2. Select **High** from the **Importance** list, and then select **Hide advanced options** to hide the advanced options. +3. Select **Update flow**, which is located on the menu at the top of the screen. + + This step saves your changes. + diff --git a/flow-docs/organization-q-and-a.md b/flow-docs/organization-q-and-a.md new file mode 100644 index 000000000..bbe92ffb2 --- /dev/null +++ b/flow-docs/organization-q-and-a.md @@ -0,0 +1,156 @@ +--- +title: Flow sign-up Q&A in your organization | Microsoft Docs +description: Common questions and answers about licenses, administration, and users signing up for Flow in your Office 365 tenant +services: '' +suite: flow +documentationcenter: na +author: stepsic-microsoft-com +manager: erikre +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 12/05/2016 +ms.author: stepsic + +--- +# Flow in your organization Q&A +This topic describes how users in your organization can use Flow, and how you can control the Flow service. + +## Signing up for Flow +### What is Microsoft Flow? +Microsoft Flow is a public cloud service to help individuals and teams to set up automated workflows between their favorite apps and services to synchronize, get notifications, collect data, and more. + +### How do people sign up for Flow? +There are two possible ways for individuals to sign up for Flow through the web portal: + +#### Option 1 +Anyone can sign up by going to [flow.microsoft.com](https://flow.microsoft.com), selecting **Sign up free**, and then completing the sign-up process for Flow through [portal.office.com](https://portal.office.com/Start?sku=flow_free) or [signup.live.com](https://signup.live.com). + +#### Option 2 +Anyone can sign up by going to [flow.microsoft.com](https://flow.microsoft.com), selecting **Sign in**, signing in with their work, school or personal email, and accepting the Flow terms of use. + +When a user in your organization signs up for Flow with Option 2, that user will be assigned a Microsoft Flow Free license automatically. + +[Sign up for Flow](sign-up-sign-in.md) includes more details. + +### Can I block another person from signing up for Flow? +Microsoft Flow is a fully public cloud service, and everyone in the world can sign up and use it to automate their day-to-day tasks. To use Microsoft Flow there is no requirements that users have or use an Office 365 account. Because of this, there’s no mechanism at this time for you to block another person from using Flow (as everyone in the world can, irrespective of their email address). + +However, if a person signs up for Microsoft Flow, and you choose to not support them inside of your organization, they can in no way incur costs to your company. When an individual signs up for Microsoft Flow, the relationship is between that individual and Microsoft, which is like many other cloud services from Microsoft such as Bing, Wunderlist, OneDrive, or Outlook.com. An individual's use of Microsoft Flow does not in any way imply that the service is provided by your organization. + +Finally, if your company wishes to restrict the use of organizational-only data inside of Microsoft Flow, that is possible through Data loss prevention (DLP) policies. + +### How can people gain access to the paid features of Microsoft Flow? +Individuals can gain access to the paid features of Microsoft Flow in three different ways: + +1. They can individually sign up for a Flow Plan 1 or Flow Plan 2 trial 90 days for free +2. You can assign a Flow license to them within the Office 365 admin portal. +3. The user has been assigned an Office 365 and Dynamics 365 plans that includes access to the Flow service. See the [Flow pricing page](https://flow.microsoft.com/pricing/) for the list of Office 365 and Dynamics 365 plans that include Flow capabilities. + +### Can I block another person from using the paid features of Flow? +Any individual can try out the paid features of Microsoft Flow for 90 days, and incur no costs. However, you can fully manage the assignment of the perpetual paid licenses inside of your organization through the Office 365 admin portal. + +As with the free offerings, if an individual chooses to sign up for the trial that is a direct relationship between the individual and Microsoft, not necessarily endorsed by your company. + +## Administration of Flow +### Why has the Flow icon appeared in the Office 365 app launcher? +As announced in August, Microsoft Flow is now a fundamental part of the Office 365 suite. Three months after this announcement Microsoft Flow was enabled as a service as a part of all existing Office 365 SKU's. As users everywhere in the world can now use Microsoft Flow, it has appeared in the app launcher for them. + +See the following section if you'd like to remove the Flow tile from the app launcher by default. + +### How do I remove Microsoft Flow from the app launcher for my organization? +If a user was assigned a Flow Plan 1 or Flow Plan 2 license then you can take the following steps to remove the Flow license for that user, which will remove the Flow icon from the app launcher: + +1. Go to the [Office 365 Admin Portal](https://portal.microsoftonline.com/). +2. In the left navigation bar, select **Users**, and then select **Active Users**. +3. Find the user you want to remove the license for, and then select their name. +4. On the user details pane, in the **Product licenses** section select **Edit**. +5. Find the license called **Microsoft Flow Plan 1** or **Microsoft Flow Plan 2**, set the toggle to **Off** and then select **Save**. + + ![](./media/organization-q-and-a/remove-license.png) + +If a user has access to Flow through their Office 365 and Dynamics 365 plan license, then you can disable their access to the additional features included in this plan by taking the following steps: + +1. Go to the [Office 365 Admin Portal](https://portal.microsoftonline.com/). +2. In the left navigation bar, select **Users**, and then select **Active Users**. +3. Find the user you want to remove access for, and then select their name. +4. On the user details pane, in the **Product licenses** section select **Edit**. +5. Expand the user's Office 365 or Dynamics 365 license, disable access to the service called **Flow for Office 365** or **Flow for Dynamics 365** and then select **Save**. + + ![](./media/organization-q-and-a/remove-service-plan.png) + +Bulk removal of licenses is also possible through PowerShell. See [Remove licenses from user accounts with Office 365 PowerShell](https://technet.microsoft.com/library/dn771774.aspx) for a detailed example. Finally, further guidance about bulk removal of services within a license can be found at [Disable access to services with Office 365 PowerShell](https://technet.microsoft.com/library/dn771769.aspx). + +Removing of the Flow license or service for a user in your organization will result in the removal of the Flow icon from the following locations for that user: + +1. [Office.com](https://office.com) + + ![](./media/organization-q-and-a/office-home.png) +2. Office 365 App Launcher + + ![](./media/organization-q-and-a/office-waffle.png) + +Note that this will only remove the Flow tile by default. A user may still choose to use Microsoft Flow as an individual. + +### Why did 10,000 licenses for Microsoft Flow show up in my Office 365 tenant? +Any person is the world can try out Microsoft Flow Plan 1 or 2 for 90 days, and these trial licenses represent the available capacity for new Flow users in your tenant. There is no charge for these licenses. Specifically, there are two possible reasons why you may see a capacity 10,000 (trial) licenses for Flow showing up in the Office 365 admin portal: + +1. If at least one user in your tenant participated in the Flow public preview that spanned from April 2016 to October 2016 then you will see 10,000 licenses labeled as "Microsoft PowerApps and Logic flows" + + ![](./media/organization-q-and-a/licenses2.png) +2. If at least one user in your tenant has signed-up for a Flow Plan 2 trial by going through trial signup **Option 1** outlined in the [How do users sign up for PowerApps](#how-do-users-sign-up-for-powerapps) section then you will see 10,000 licenses labeled "Microsoft Power Apps & Flow" + + ![](./media/organization-q-and-a/licenses1.png) + +You can choose to assign additional licenses to users yourself through the Office 365 admin portal, but please note that these are trial licenses for Microsoft Flow Plan 2 and they will expire after 90 days of being assigned to a user. + +### Is this free? Will I be charged for these licenses? +No user can incur any cost to your organization without your express consent, so neither free nor trial licenses can cause any charges to your organization. Moreover, they also do not use any quotas, such as run quotas. + +### I removed the Microsoft Flow Free license and users can still access Flow? +The Microsoft Flow Free license is included only for tracking purposes. As covered in the first section, it is not possible to prevent another person from using Microsoft Flow for individual purposes. Thus, the presence of a Microsoft Flow Free license does not actually grant or remove any capabilities. + +### Why can't I see all Flow licenses in the Office 365 Admin portal? +Users can use Microsoft Flow either as individuals or as a part of their organization. Licenses at the organization level will always be visible in the Office 365 portal. However, if a user signs up for a trial as an individual then that is not managed by their Office 365 admin and will not show up in the portal. + +### How does an individual find out what plan they are on? +Anyone can see the plan they have by visiting the Flow pricing page at [https://flow.microsoft.com/pricing](https://flow.microsoft.com/pricing). The plan or trial they are currently on will be shown there. + +### Will Microsoft Flow sign up impact the identities in my organization? +If your organization already has an existing Office 365 environment and all users in your organization have Office 365 accounts, then identity management is not impacted. + +If your organization already has an existing Office 365 environment but not all users in your organization have Office 365 accounts, then we create a user in the tenant and assign licenses based on the user’s work or school email address. This means that the number of users you are managing at any particular time will grow as users in your organization sign up for the service. + +If your organization does not have an Office 365 environment connected to your email domain, there is no change in how you manage identity. Users will be added to a new, cloud-only user directory, and you will have the option to take over as the tenant admin and manage them. + +### A new tenant was created by Microsoft Flow, how do I manage this? +If a new tenant was created by Microsoft Flow, then you can claim and manage that tenant using the following steps: + +1. Join the tenant by signing up for Flow using an email address domain that matches the tenant domain you want to manage. For example, if Microsoft created the contoso.com tenant, then join the tenant with an email address ending with @contoso.com. +2. Claim admin control by verifying domain ownership: once you are in the tenant, you can promote yourself to the admin role by verifying domain ownership. To do so, follow these steps: + + 1. Go to [https://portal.office.com](https://portal.office.com/Start?sku=flow_free). + 2. Select the app launcher icon in the upper-left and choose Admin. + 3. Read the instructions on the **Become the admin** page, and then choose **Yes, I want to be the admin**. + + **NOTE**: If this option doesn’t appear, an Office 365 administrator is already in place. + +### If I have multiple domains, can I control the Office 365 tenant that users are added to? +If you do nothing, a tenant is created for each user email domain and subdomain. + +If you want all users to be in the same tenant regardless of their email address extensions: + +* Create a target tenant ahead of time or use an existing tenant. Add all the existing domains and subdomains that you want consolidated within that tenant. Then all the users with email addresses ending in those domains and subdomains automatically join the target tenant when they sign up. + +**IMPORTANT**: There is no supported automated mechanism to move users across tenants once they have been created. To learn about adding domains to a single Office 365 tenant, see [Add your users and domain to Office 365](https://support.office.com/article/Add-your-users-and-domain-to-Office-365-ffdb2216-330d-4d73-832b-3e31bcb5b2a7). + +### How can I restrict my users' ability to access my organization's business data? +Microsoft Flow allows you to create data zones for business and non-business data, as shown below. Once these data loss prevention policies are implemented, users are prevented from designing or running Flow that combine business and non-business data. For more details, See [Data loss prevention (DLP) policies](prevent-data-loss.md). + + ![](./media/organization-q-and-a/data-loss-prevention-policy.png) + diff --git a/flow-docs/parallel-modern-approvals.md b/flow-docs/parallel-modern-approvals.md new file mode 100644 index 000000000..2fd09f935 --- /dev/null +++ b/flow-docs/parallel-modern-approvals.md @@ -0,0 +1,163 @@ +--- +title: Create a parallel modern approval workflow | Microsoft Docs +description: Create a parallel modern approval workflow +services: '' +suite: flow +documentationcenter: na +author: MSFTMan +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 06/24/2017 +ms.author: deonhe + +--- +# Create parallel approval workflows with Microsoft Flow +In a parallel approval workflow, multiple persons are required to approve items including invoices, purchase orders, vacation requests, etc. Each person's approval is independent of all other approvers. + +In this walkthrough, we use Microsoft Flow to create a flow that automates a parallel approval workflow. This flow automates an employee vacation request process that requires approval from all persons (or teams) that the employee supports regularly. Employees use a [SharePoint list](https://support.office.com/article/Introduction-to-lists-0a1c3ace-def0-44af-b225-cfa8d92c52d7) to request vacation. Vacation approvals are required from the employee's direct manager, the Sales team, and the Human Resources team. Each vacation request is routed to each approver for a decision. The flow sends email with status changes and then updates SharePoint with the decisions. + +## Prerequisites +[!INCLUDE [prerequisites-for-modern-approvals](includes/prerequisites-for-modern-approvals.md)] + +The SharePoint Online list you create must include the following columns: + + ![SharePoint list columns](./media/parallel-modern-approvals/sharepoint-columns.png) + +Make note of the name and URL of the SharePoint Online list. We use these items later to configure the **SharePoint - When a new item is created** trigger. + +## Create your flow from the blank template +[!INCLUDE [sign-in-and-create-flow-from-blank-template](includes/sign-in-and-create-flow-from-blank-template.md)] + +## Add a trigger +[!INCLUDE [add-trigger-when-sharepoint-item-created](includes/add-trigger-when-sharepoint-item-created.md)] + + ![SharePoint info](media/parallel-modern-approvals/select-sharepoint-site-info.png) + +## Get the manager for the person who created the vacation request +[!INCLUDE [add-get-manager-action](includes/add-get-manager-action.md)] + +## Name and save your flow +1. Provide a name for your flow, and then select **Create flow** to save the work we've done so far. + + ![save flow](./media/parallel-modern-approvals/save.png) + +> [!NOTE] +> Select **Update flow** from the top of the screen periodically to save the changes to your flow. +> +> + + ![select update action](./media/parallel-modern-approvals/update.png) + +To continue making changes after you save or update your flow, select **Edit flow** from the top of the screen, and then continue making changes. + +## Add an approval action for immediate manager +[!INCLUDE [add-an-approval-action](includes/add-an-approval-action.md)] + +> [!IMPORTANT] +> This action sends the vacation request to the email address in the **Assigned To** box, so insert the **Email** token from the **Get manager** list. +> +> + +## Insert a parallel branch approval action for the sales team +1. Select the down arrow that's located between the **Get manager** card and the **Start an approval** card. +2. Select the plus sign that shows up on the down arrow after you select it. +3. Select **Add a parallel branch**. +4. Select **Add an action**. + + ![get manager config](./media/parallel-modern-approvals/add-parallel-branch.png) +5. Search for, select, and then configure a **Start an approval** action that sends the vacation request to the sales team. See the [steps used to Add an approval action for immediate manager](parallel-modern-approvals.md#Add-an-approval-action-for-immediate-manager) if you're not sure how to add the **Start an approval** action. + +> [!IMPORTANT] +> Use the sales team's email address in the **Assigned To** box of the **Start an approval** action. +> +> + +## Insert a parallel branch approval action for the human resources team +1. Repeat the steps to [insert a parallel branch for the sales team](parallel-modern-approvals.md#Insert-a-parallel-branch-approval-action-for-the-sales-team) to add, and then configure a **Start an approval** action to send vacation requests to human resources. + +> [!IMPORTANT] +> Use the human resources team's email address in the **Assigned To** box of the **Start an approval** action. +> +> + +If you've followed along, your flow should resemble this example: + + ![flow with parallel branches](./media/parallel-modern-approvals/flow-with-parallel-branches.png) + +## Options after adding parallel branches +After you've added actions to parallel branches, you have two options for adding more steps to your flow: + +* Use the small **Insert a new step** button (the circular plus button that appears when you select any white space on a branch or the area immediately below a branch). This button adds a step to that **specific branch**. Steps you add with this button run after this specific branch completes. +* Use the larger **New step** button at the bottom of the entire workflow. This button adds an action that runs after **all branches** complete. Steps you add with this button run after all branches complete. + +In the following sections, we use the small **Insert a new step** button to perform the following steps on each branch: + +* Add a condition that checks if the vacation request was approved or rejected. +* Send an email that informs the employee of the decision. +* Update the vacation request in SharePoint with the approval decision. + +Then, we use the larger **New step** button to send an email that summarizes all decisions made on the vacation request. + +Let's continue: + +## Add a condition to each branch +1. Select any white space on the **Start an approval** branch. +2. Select the small **Insert a new step** button (the circular plus button that appears after you select the white space in the previous step). +3. Select **Add a condition** from the menu that appears. +4. Select the first box on the **Condition** card, and then select the **Response** token from the **Start an approval** category in the dynamic content list. + + ![flow with parallel branches condition](./media/parallel-modern-approvals/configure-approval-condition.png) +5. Confirm the list (in the middle of the **Condition card**) is set to **is equal to**. +6. Enter **Approve** (this text is case-sensitive) into the last box. +7. Your condition card should now resemble this example: + + ![flow with parallel branches condition](media/parallel-modern-approvals/condition-card.png) + + > [!NOTE] + > This condition checks the response from the **Start an approval** action that goes to the employee's manager. + > + > +8. Repeat the preceding steps on the **Start an approval 2** (the approval request to sales) and **Start an approval 3** (the approval request to human resources) branches. + +## Add email actions to each branch +Perform the following steps on the **IF YES, DO NOTHING** side of the **Condition** branch. + + Note: Your flow uses these steps to send an email when the request is approved: + +[!INCLUDE [add-action-to-send-email-when-vacation-approved](includes/add-action-to-send-email-when-vacation-approved.md)] + + ![configure pre-approved email template](media/parallel-modern-approvals/yes-email-config.png) + +To send an email when a request is rejected, use the **IF NO, DO NOTHING** side of the **Condition** branch, and then repeat the preceding steps to add a template for the rejection email. + +Repeat the preceding steps on the **Start an approval 2** (the approval request to sales) and **Start an approval 3** (the approval request to human resources) branches. + +## Update the vacation request with the decision +Perform the following steps to update SharePoint when decisions are made. + + Note: Be sure perform these steps on both the **IF YES** and the **IF NO** sides of the branch. + +[!INCLUDE [add-action-to-update-sharepoint-with-approval](includes/add-action-to-update-sharepoint-with-approval.md)] + + ![update item configuration](./media/parallel-modern-approvals/configure-update-item.png) + +Repeat the preceding steps on the **Start an approval 2** and **Start an approval 3** branches. + +## Complete the flow +1. Select **New step** > **Add an action** + + ![update item configuration](media/parallel-modern-approvals/add-an-action-2-step.png) +2. Use the steps provided previously to send an email that summarizes the results of each approval. Send this email to the employee who requested vacation. Your card may resemble this example: + + ![update item configuration](./media/parallel-modern-approvals/final-email-card.png) + +## Learn more about modern approvals +[Introduction to modern approvals](modern-approvals.md) + diff --git a/flow-docs/postman-collection.md b/flow-docs/postman-collection.md new file mode 100644 index 000000000..c13cfca1c --- /dev/null +++ b/flow-docs/postman-collection.md @@ -0,0 +1,70 @@ +--- +title: Describe a custom connector with Postman | Microsoft Docs +description: Create a Postman Collection for registering custom connectors +services: '' +suite: flow +documentationcenter: '' +author: sunaysv +manager: anneta +editor: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 04/28/2017 +ms.author: sunayv + +--- +# Describe a custom connector with Postman +[Postman](https://www.getpostman.com/) is a tool for making your API development faster and easier. This tutorial demonstrates how to create a Postman collection, which you can then use to easily create [custom connectors](register-custom-api.md) in Microsoft Flow. + +## Prerequisites +* Install the [Postman app](https://www.getpostman.com/apps). + +## Create a Postman Collection +Let's build a Postman Collection for the Azure Cognitive Services [Text Analytics API](https://www.microsoft.com/cognitive-services/text-analytics-api). This API identifies the language, sentiment, and key phrases in text that you pass to it. + +1. The first step in creating a Postman Collection is to create a request. When creating the request, you can set the HTTP verb, the request URL, query or path parameters, headers, and the body. For more information, see [Sending Requests](https://www.getpostman.com/docs/requests) in the Postman documentation. For the Detect Language API endpoint, set the values as follows: + + ![Postman request](./media/postman-collection/request.png) + + Details of parameters and values used: + + | Parameter | Value | + | --- | --- | + | Verb |POST | + | Request URL |https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/languages | + | Params |numberOfLanguagesToDetect | + | Authorization |“No Auth” | + | Headers |Ocp-Apim-Subscription-Key =
Content-Type = application/json | + | Body |{
   "documents": [
     {
        "id": "1",
        "text": "Hello World"
     }
  ]
} | +2. Click **Send** to make the request and get the response back. +3. Click **Save** to save the request into a Postman Collection. + + ![Postman response](./media/postman-collection/request-response-save.png) +4. Provide a **Request name** and **Request description** in the **Save Request** dialog box. You will use these values in your custom connector. + + ![Postman Save Collection](./media/postman-collection/save-request-note.png) + + You can also save the response to the request. Custom connectors currently only support a single response per request. If you save multiple responses per request, only the first one is used. + + ![Postman Save Response](./media/postman-collection/save-response.png) +5. Continue building your Postman Collection by creating and saving other requests and responses. +6. Once you have completed building the Postman Collection for all your requests and responses, export the collection. + + ![Postman Export](./media/postman-collection/export.png) +7. Choose **Collection v1** as the export format. + + ![Postman Export](./media/postman-collection/export2.png) + +You can now use this Postman collection to create a custom connector in Microsoft Flow. + +> [!IMPORTANT] +> When creating a custom connector from a Postman collection, be sure to remove the `Content-type` header from actions and triggers, as this will be automatically added by Microsoft Flow. Authentication headers (for example, `Ocp-Apim-Subscription-Key`) should be defined in the **Security** section and must be removed from actions and triggers. +> +> + +For more information, see [Register and use custom connectors in Microsoft Flow](register-custom-api.md). + diff --git a/flow-docs/prevent-data-loss.md b/flow-docs/prevent-data-loss.md new file mode 100644 index 000000000..483fd772f --- /dev/null +++ b/flow-docs/prevent-data-loss.md @@ -0,0 +1,123 @@ +--- +title: Introduction to data loss prevention (DLP) policies. | Microsoft Docs +description: Introduction to data loss prevention policies for Microsoft Flow. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 01/24/2016 +ms.author: deonhe + +--- +# Data loss prevention (DLP) policies +## What is a data loss prevention policy? +An organization's data is critical to its success. Its data needs to be readily available for decision-making but it needs to be protected so that it isn't shared with audiences that should not have access to it. To protect this data, Microsoft Flow (Flow) provides you with the ability to create and enforce policies that define which consumer services/connectors specific business data can be shared with. These policies that define how data can be shared are referred to as data loss prevention (DLP) policies. + +## Why create a DLP policy? +You would create DLP policy to clearly define which consumer services business data may be shared with. For example, an organization that uses Flow may not want its business data that's stored in SharePoint to be automatically published to its Twitter feed. To prevent this, you can create a DLP policy that blocks SharePoint data from being used as the source for tweets. + +## Benefits of a DLP policy +* Ensures that data is managed in a uniform manner across the organization +* Prevents important business data from being accidentally published to services such as social media sites. + +## Managing DLP policies +**Prerequisites** +In order to create, edit, or delete DLP policies, the following items are required: + +* Either environment admin or tenant admin permissions. You can learn more about permissions in the [environments topic](environments-overview-admin.md). +* A [Flow P2 license](billing-questions.md). + +## Create a DLP policy +**Prerequisites** +In order to create a DLP policy, you must have permissions to at least one environment. + +Follow these steps to create a DLP policy that prevents data that is stored in your company’s SharePoint from being published to Twitter: + +1. While on the Data Policies tab, select the **New policy** link: + ![Sign in](./media/prevent-data-loss/create-policy-1.png) +2. Enter the name of the DLP policy as *Secure Data Access for Contoso* in the **Data Policy Name** label at the top of the page that opens: + ![Sign in](./media/prevent-data-loss/create-policy-2.png) +3. Select the [environment](environments-overview-admin.md) on the **Applies to** tab. + **Note:** As an environment admin, you can create policies that apply to only a single environment. As a tenant admin, you can create a policy that applies to all environments, one or more selected environments, or all environments except a selected set: + ![Sign in](./media/prevent-data-loss/create-policy-3.png) +4. Select the **Data groups** tab: + ![Sign in](./media/prevent-data-loss/create-policy-4.png) +5. Select the **+ Add** link located inside the **Business data only** group box: + ![Sign in](./media/prevent-data-loss/create-policy-5.png) +6. Select the **SharePoint** and **Salesforce** services from the **Add services** page: + ![Sign in](./media/prevent-data-loss/create-policy-6.png) +7. Select the **Add services** button to add the services that are allowed to share business data: + ![Sign in](./media/prevent-data-loss/create-policy-7.png) +8. Select **Save Policy**: + ![Sign in](./media/prevent-data-loss/create-policy-8.png) +9. After a few moments, your new DLP policy will be displayed in the data loss prevention policies list: + ![Sign in](./media/prevent-data-loss/create-policy-9.png) +10. **Optional** Send an email or other communication to your team, alerting them that a new DLP policy is now available. + +Congratulations, you have now created a DLP policy that allows app to share data between SharePoint and Saleforce and blocks the sharing of data with any other services. + +**Note**: Adding a service to one data group automatically removes it from the other data group. For example, if Twitter is currently located in the **business data only** data group, and you don't want to allow business data to be shared with Twitter, simply add the Twitter service to the **no business data allowed** data group. This will remove Twitter from the business data only data group. + +## Data sharing violations +Assuming you have created the DLP policy outlined above, if a user creates a flow that shares data between Salesforce (which is in the **business data only** data group) and Twitter (which is in the **no business data allowed** data group), the user will be informed that the flow is **suspended** due to a conflict with the data loss prevention policy you created. +![create flow](./media/prevent-data-loss/10.png) + +If your users contact you about suspended flows, here a few things to consider: + +1. In this example, if there is a valid business reason to share business data between SharePoint and Twitter, you can edit the the DLP policy. +2. Ask the user to edit the flow to comply with the DLP policy. +3. Ask the user to leave the flow in the suspended state until a decision is made regarding the sharing of data between these two entities. + +## Find a DLP policy +### Admins +Admins can use the search feature from the Admin center to find specific DLP policies. + +**NOTE** Admins should publish all DLP policies so that users in the organization are aware of the policies prior to creating flows. + +### Makers +If you don't have admin permissions and you wish to learn more about the DLP policies in your organization, contact your administrator. You can also learn more from the [maker environments topic](environments-overview-maker.md) + +**NOTE** Only admins can edit or delete DLP policies. + +## Edit a DLP policy +1. Launch the Admin center by browsing to https://admin.flow.microsoft.com. +2. In the Admin center that launches, select the **Data polices** link on the left side. + ![Sign in](./media/prevent-data-loss/2.png) +3. Search the list of existing DLP policies and select the edit button next to the policy you intend to edit: + ![Sign in](./media/prevent-data-loss/3.png) +4. Make the changes you wish to make. You can modify the environment or the services in the data groups, for example. +5. Select **Save Policy** to save your changes: + ![Sign in](./media/prevent-data-loss/create-policy-8.png) + +Your policy has now been updated. You can confirm that the changes have been made to your policy by finding it in the data loss prevention policies list and reviewing its properties. + +**Note** DLP policies created by tenant admins can be viewed by environment admins but cannot be edited by environment admins. + +## Delete a DLP policy +1. Launch the Admin center by browsing to https://admin.flow.microsoft.com. +2. In the Admin center that launches, select the **Data polices** link on the left side. + ![Sign in](./media/prevent-data-loss/2.png) +3. Search the list of existing DLP policies and select the delete button next to the policy you intend to delete: + ![Sign in](./media/prevent-data-loss/3-delete.png) +4. Confirm that you really want to delete the policy by selecting the **Delete** button: + ![Sign in](./media/prevent-data-loss/4.png) + +Your policy has now been deleted. You can confirm that the policy is no longer listed in the data loss prevention policies list by selecting the **Data Policies** link on the left and reviewing the list of policies. + +## DLP policy permissions +Only tenant and environment admins can create and modify DLP policies. Learn more about permissions in the [environments](environments-overview-admin.md) topic. + +## Next steps +* [Learn more about environments](environments-overview-admin.md) +* [Learn more about Microsoft Flow](getting-started.md) +* [Learn more about the admin center](introduction-to-the-admin-center.md) + diff --git a/flow-docs/publish-a-template.md b/flow-docs/publish-a-template.md new file mode 100644 index 000000000..408a20e7a --- /dev/null +++ b/flow-docs/publish-a-template.md @@ -0,0 +1,36 @@ +--- +title: Submit a flow template | Microsoft Docs +description: Submit your flow as a template so that other organizations can find it in the template gallery and use the flow that you created. +services: '' +suite: flow +documentationcenter: na +author: sunaysv +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 06/10/2017 +ms.author: sunayv + +--- +# Submit a template to the Microsoft Flow gallery +Submit a flow template to the gallery of templates for Microsoft Flow. Templates help people not only to create flows more easily but also to imagine additional scenarios that would benefit from a flow. + +1. On the **My Flows** page, select the ellipsis (...) for a flow. + + ![Ellipsis button](./media/publish-a-template/ellipsis-button.png) +2. In the menu that appears, select **Submit as a template**. + + ![Context menu](./media/publish-a-template/context-menu.png) +3. Specify a meaningful title, a clear description of the scenario that your template will help automate, and the categories that apply for the template. + + ![Template options](./media/publish-a-template/template-options.png) +4. Select **Submit**. + + The Microsoft Flow team will verify and *possibly modify* your template. If the team approves your template, it will appear in the gallery of templates for Microsoft Flow. + diff --git a/flow-docs/regions-overview.md b/flow-docs/regions-overview.md new file mode 100644 index 000000000..dc1f9dedd --- /dev/null +++ b/flow-docs/regions-overview.md @@ -0,0 +1,54 @@ +--- +title: Regions overview for Microsoft Flow | Microsoft Docs +description: Overview with question and answer about regions in Microsoft Flow +services: '' +suite: flow +documentationcenter: na +author: MSFTMan +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 05/11/2017 +ms.author: deonhe + +--- +# FAQ for regions in Microsoft Flow +## How do I find out where my flow is deployed? +Your flow is deployed in the region that hosts the environment. For example, if your environment is created in the Europe region, your flow is deployed in Europe data centers. + +Administrators can identify the region if they sign in to the Microsoft Flow [admin center](https://admin.flow.microsoft.com). The **Environments** tab lists all existing environments and their regions. + +![view environments](media/regions-overview/environments-list.png) + +## What regions are available? +* United States +* Europe +* Asia +* Australia +* India +* Japan +* Canada + +## What features are specific to a given region? +Environments can be created in different regions and are bound to that geographic location. When you create a flow in an environment, that flow is deployed in data centers in that geographic location. This applies to any items you create in that environment, including the common data model, flows, connections, gateways, apps, and custom connectors. + +For optimal performance, create your environment in the region that's closest to your users. For example, if your users are in Europe, create your environments in the Europe region. If your users are in the United States, create your environments in the United States region. + +## Gateways +Gateways are: + +* Not available in the India region. +* Supported in the default environment only, not in custom environments. + +## Is Microsoft Flow available in national clouds? +No, Microsoft Flow is not currently available in the US Gov, Germany or China regions. Availability for national clouds is planned for 2017. + +## What outbound IP addresses are used in each region? +See [Limits and configuration](limits-and-config.md). + diff --git a/flow-docs/register-custom-api.md b/flow-docs/register-custom-api.md new file mode 100644 index 000000000..c4ffcca20 --- /dev/null +++ b/flow-docs/register-custom-api.md @@ -0,0 +1,164 @@ +--- +title: Register and use custom connectors | Microsoft Docs +description: Register and use custom connectors in Microsoft Flow, using OpenAPI and Postman. +services: '' +suite: flow +documentationcenter: '' +author: sunaysv +manager: anneta +editor: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 05/09/2017 +ms.author: sunayv + +--- +# Register and use custom connectors in Microsoft Flow +Microsoft Flow enables you to build workflows with no code. But in some cases, you need to extend Microsoft Flow capabilites, and web services are a natual fit for this. Your flow can connect to a service, perform operations, and get data back. When you have a web service you want to connect to with Microsoft Flow, you register the service as a custom connector. This process enables Microsoft Flow to understand the characteristics of your web API, including the authentication that it requires, the operations that it supports, and the parameters and outputs for each of those operations. + +In this topic, we'll look at the steps required to register and use a custom connector, and we'll use the Azure Cognitive Services [Text Analytics API](https://www.microsoft.com/cognitive-services/text-analytics-api). This API identifies the language, sentiment, and key phrases in text that you pass to it. + +## Prerequisites +* A [Microsoft Flow account](https://flow.microsoft.com). +* An OpenAPI 2.0 (formerly known as Swagger) file in JSON format, a URL to an OpenAPI definition, or a Postman Collection for your API. If you don't have any of these, we'll provide guidance for you. +* An image to use as an icon for your custom connector (optional). + +## Steps in the custom connector process +The custom connector process has several steps, which we describe briefly below. This article assumes you already have a RESTful API with some type of authenticated access, so we'll focus on steps 3-6 in the rest of the article. For an example of steps 1 and 2, see [Create a custom Web API for Microsoft Flow](customapi-web-api-tutorial.md). + +1. **Build a RESTful API** in the language and platform of your choice. For Microsoft technologies, we recommend one of the following (but you can use any platform): + + * Azure Functions + * Azure Web Apps + * Azure API Apps +2. **Secure your API** using one of the following authentication mechanisms. You can allow unauthenticated access to your connectors, but we don't recommend it. + + * Azure Active Directory + * OAuth 2.0 for specific services like Dropbox, Facebook, and SalesForce + * Generic OAuth 2.0 + * API Key + * Basic Authentication +3. **Describe your API** in one of two industry-standard ways, so that Microsoft Flow can connect to it. + + * An OpenAPI file + * A Postman Collection + + You can also build an OpenAPI file in step 4 as part of the registration process. +4. **Register your custom connector** using a wizard in Microsoft Flow, where you specify an API description, security details, and other information. +5. **Use your custom connector** in an app. Create a connection to the connector in your app, and call any operations that the API provides, just like you call standard connections in Microsoft Flow. +6. **Share your custom connector** like you do other resources in Microsoft Flow. This step is optional, but it often makes sense to share custom connectors across multiple app creators. + +## Describe your API +Assuming you have an API with some type of authenticated access, you need a way to describe the API so that Microsoft Flow can connect to it. To do this, you create an OpenAPI file or a Postman Collection – which you can do from *any* REST API endpoint, including: + +* Publicly available connectors. Some examples include [Spotify](https://developer.spotify.com/), [Uber](https://developer.uber.com/), [Slack](https://api.slack.com/), [Rackspace](http://docs.rackspace.com/), and more. +* An API that you create and deploy to any cloud hosting provider, including Azure, Amazon Web Services (AWS), Heroku, Google Cloud, and more. +* A custom line-of-business API deployed on your network as long as the API is exposed on the public internet. + +OpenAPI 2.0 (formerly known as Swagger) and Postman Collections use different formats, but both are language-agnostic machine-readable documents that describe your API's operations and parameters: + +* You can generate these documents using a variety of tools depending on the language and platform that your API is built on. See the [Text Analytics API documentation](https://westus.dev.cognitive.microsoft.com/docs/services/TextAnalytics.V2.0/export?DocumentFormat=Swagger&ApiName=Azure) for an example of an OpenAPI file. +* If you don't already have an OpenAPI file for your API and don't want to create one, you can still easily create a custom connector by using a Postman Collection. See [Create a Postman Collection](postman-collection.md) for more information. +* Microsoft Flow ultimately uses OpenAPI behind the scenes, so a Postman Collection is parsed and translated into an OpenAPI definition file. + +**Note**: Your file size must be less than 1MB. + +### Getting started with OpenAPI and Postman +* If you're new to OpenAPI, see [Getting Started with OpenAPI](http://swagger.io/getting-started/) on the swagger.io site. +* If you're new to Postman, install the [Postman app](https://www.getpostman.com/apps) from their site. +* If your API is built with Azure API Apps or Azure Functions, see [Exporting an Azure hosted API to Microsoft Flow and Microsoft Flow](https://docs.microsoft.com/azure/app-service/app-service-export-api-to-powerapps-and-flow) for more information. + +## Register your custom connector +You will now use the OpenAPI file or Postman Collection to register your custom connector in Microsoft Flow. + +1. In [flow.microsoft.com](https://flow.microsoft.com), in the top bar, select the gear to open the settings menu. Select the **Custom Connectors** option. + + ![Create custom connector](./media/register-custom-api/managecustomapi.png) +2. Select **Create custom connector**. + + ![Custom connector properties](./media/register-custom-api/newcustomapi.png) +3. In the **General** tab, choose how you want to create the custom connector. + + * Upload OpenAPI + * Paste OpenAPI URL + * Upload a Postman Collection V1 + + ![How to create custom connector](./media/register-custom-api/choosehowtocreate.png) + + Upload an icon for your custom connector. Description, Host, and Base URL fields are typically auto-populated with the information from the OpenAPI file. If they are not auto-populated, you can add information to those fields. Select **Continue**. +4. In the **Security** tab, enter any authentication properties. + + ![Authentication types](./media/register-custom-api/authenticationtypes.png) + + * The authentication type is auto-populated based on what is defined in your OpenAPI `securityDefinitions` object. Below is an OAuth2.0 example. + + ``` + "securityDefinitions": { + "AAD": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://login.windows.net/common/oauth2/authorize", + "tokenUrl": "https://login.windows.net/common/oauth2/token" + "scopes": {} + } + }, + ``` + * If the OpenAPI file does not use the `securityDefintions` object, then no additional values are needed. + * When using a Postman Collection, authentication type is auto-populated only when using supported authentication types, such as OAuth 2.0 or Basic. + * For an example of setting up Azure Active Directory (AAD) authenthication, see [Create a custom Web API for Microsoft Flow](customapi-web-api-tutorial.md#set-up-azure-active-directory-authentication). +5. In the **Definitions** tab, all the operations defined in your OpenAPI file or Postman Collection, along with request and response values, are auto-populated. If all your required operations are defined, you can go to step 6 in the registration process without making changes on this screen. + + ![Definition tab](./media/register-custom-api/definitiontab.png) + + If you want to edit existing actions or add new actions to your custom connector, continue reading below. + + 1. If you want to add a new action that was not already in your OpenAPI file or Postman Collection, select **New action** in the left pane and fill in the **General** section with the name, description, and visibility of your operation. + 2. In the **Request** section, select **Import from sample** on the top right. In the form on the right, paste in a sample request. Sample requests are usually available in the API documentation, where you can get information to fill out the **Verb**, **Request URL**, **Headers**, and **Body** fields. See the [Text Analytics API documentation](https://westus.dev.cognitive.microsoft.com/docs/services/TextAnalytics.V2.0/operations/56f30ceeeda5650db055a3c6) for an example. + + > [!IMPORTANT] + > Make sure you remove the `Content-type` header from actions, as this will be automatically added by Microsoft Flow. Authentication headers that have been defined in the **Security** section should also be removed from actions and triggers. + > + > + + ![Import from sample](./media/register-custom-api/importfromsample.png) + 3. Select **Import** to complete the request definition. Define the response in a similar way. +6. Once you have all your operations defined, select **Create** to create your custom connector. +7. Once you have created your custom connector, go to the **Test** tab to test the operations defined in the API. Choose a connection, and provide input parameters to test an operation. + + ![Test custom connector](./media/register-custom-api/testcustomapi.png) + + If the call is successful, you get a valid response. + + ![Test connector Response](./media/register-custom-api/testapiresponse.png) + +### Quota and throttling +* See the [Microsoft Flow Pricing](https://flow.microsoft.com/pricing/) page for details about custom connector creation quotas. Custom connectors that are shared with you don't count against this quota. +* For each connection created on a custom connector, users can make up to 500 requests per minute. + +## Share your custom connector +Now that you have a custom connector, you can share it with other users in your organization. Keep in mind that when you share an custom connector, others might start to depend on it, and deleting a custom connector deletes all the connections to the connector. If you want to provide a connector for users outside your organization, see [Overview of certifying custom connectors in Microsoft Flow](api-connector-overview.md). + +1. In [flow.microsoft.com](https://flow.microsoft.com), in the top bar, select the gear to open the settings menu. Select the **Custom connectors** option. + + ![New connection](./media/register-custom-api/managecustomapi.png) +2. Select the ellipsis (**. . .**) button for your connector, then select **View properties**. + + ![View connector properties](./media/register-custom-api/view-properties.png) +3. Select **Share**, and then enter the users or groups to whom you want to grant access to your connector. + + ![Share custom connector](./media/register-custom-api/sharecustomapi.png) +4. Select **Save**. + +## Next steps +[Learn how to create a Postman Collection](postman-collection.md) + +[Learn about custom OpenAPI extensions](customapi-how-to-swagger.md). + +[Use an ASP.NET Web API](customapi-web-api-tutorial.md). + +[Register an Azure Resource Manager API](customapi-azure-resource-manager-tutorial.md). + diff --git a/flow-docs/release-notes.md b/flow-docs/release-notes.md new file mode 100644 index 000000000..2735acaaa --- /dev/null +++ b/flow-docs/release-notes.md @@ -0,0 +1,377 @@ +--- +title: Release notes | Microsoft Docs +description: Common issues and what's new for Microsoft Flow releases +services: '' +suite: flow +documentationcenter: na +author: stepsic-microsoft-com +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 06/06/2017 +ms.author: stepsic + +--- +# Release notes +## Top questions +1. My flow failed. How do I fix it? + + 1. Identify the failure. Start by going to the notifications icon at the top of the web portal, or selecting the **Activity** tab in the mobile app. You should see your flow there, and you can select it. + 2. You are now looking at the flow details. Find the step with the red exclamation icon, and you should see the error message for your flow there. + 3. Depending on the error message, you should be able to **Edit** the flow and fix it. [Read more about how to fix common flow failures](fix-flow-failures.md). +2. How do I use an advanced condition or a formula? + + * Read about [adding conditions](add-a-condition.md). + * If you want multiple cases in a flow, click or tap **Add condition** from inside of an existing condition. + * Create an advanced formula by referencing [a function in Logic Apps](https://docs.microsoft.com/rest/api/logic/definition-language). +3. How does licensing work with Office 365? + + * If you're an Office 365 user, you get full access through the Microsoft Flow for Office 365 plan. For more information, see the [pricing plans for Microsoft Flow](https://flow.microsoft.com/pricing/) . + * If you're an administrator, see information about [licensing for Microsoft Flow](organization-q-and-a.md), including with Office 365. + +## Known issues and resolutions +1. SharePoint lists on My Sites and that aren't of type *Custom List* aren't supported. To work around this issue, create a custom list on a standard SharePoint site. +2. SQL stored procedures can't be run on on-premises SQL Servers. Only SQL Azure supports stored procedures at this time. +3. Do-until cards have rendering errors that make it difficult to reference content from arrays. +4. Document Metadata isn't returned from triggers on SharePoint document libraries. +5. Flows can't write to Lookup, Choice, People and Groups, and Taxonomy fields in SharePoint lists. We recommend using a simple string field until this is corrected. +6. File triggers won't fire for files being added inside of nested folders inside the folder you select. + +## What's new +### Release 2017-06-28 +* **Update your language settings** - You can customize both the Language and Region that Microsoft Flow uses through the Settings menu. +* **Five new connectors** - Added support for Adobe Creative Cloud, Bing Maps, Bing Search, JotForm and Freshservice. +* **Configure timeouts** - Change the time long-running actions, such as approvals, run before they "timeout" and the flow continues. +* **Include comments in Outlook for approvals** - +* **Custom connector brand colors** - You can now enter a color for your Custom Connectors that will be used for the backgrounds. +* **Save As for team flows** - Make copies of any flows, including Team flows +* **Delete flow information** - When you delete a flow, you'll be shown the list of all pending runs for that flow. +* **Filtering on the Connectors page** - Search for the connectors you want on the Connectors page, and filter by type of connector. + +[Read more and ask questions](https://flow.microsoft.com/blog/language-settings-3-connectors/) about this release. + +### Release 2017-06-19 +You can now view the status of all of the pending approval requests you have sent. Additionally, you can browse and act on all your pending approvals directly from your mobile device. + +[Read more and ask questions](https://flow.microsoft.com/blog/sent-requests-flow-mobile/) about this release. + +### Release 2017-06-15 +* **Content conversion** - A new connector that can convert HTML content to plain text, useful for handling HTML formatted emails. +* **Three new database connectors** - Added read-only support for MySQL, PostgreSQL and Teradata. These connectors connect via the On-premises data gateway. +* **Three other connectors** - Connect to Azure Application Insights, Calendly and Teamwork Projects. +* **Better visualization for error handling** - Steps that run after errors are now shown with red dotted arrows so you can easily identify them. +* **Run details pane** - When a flow fails there is now a new right-hand pane that contains some helpful steps for how to correct your flow. + +[Read more and ask questions](https://flow.microsoft.com/blog/seven-connectors-and-html/) about this release. + +### Release 2017-06-04 +* **GA for Windows Phone** - [The Microsoft Flow mobile app has been released to General Availability for Windows Phone](https://flow.microsoft.com/blog/announcing-flow-windows-phone-app/). +* **Emails on flow failures** - Get notified via email when you have a flow that fails. These failure emails will only be sent out once a week, and can be turned on or off by the user. +* **Select action for tables** - Use the new Select action to change the set of columns that will be included in tables. +* **Microsoft Forms connector** - Microsoft Forms is a new part of Office 365 Education that allows teachers and students to create custom quizzes quickly and easily, surveys, questionnaires, registrations and more. +* **Office 365 Enterprise K1 plan** - PowerApps and Microsoft Flow are now included with the Office 365 Enterprise K1 plan with certain quotas. +* **HTTP headers are easier** - Just like the Select action you can provide a header name and header value by just filling out the text boxes on the action. + +[Read more and ask questions](https://flow.microsoft.com/blog/microsoft-forms-tables-flow-failures/) about this release. + +### Release 2017-05-23 +* **Microsoft Teams connector** - [Microsoft Teams](https://flow.microsoft.com/blog/introducing-the-microsoft-teams-connector-for-flow/) is a chat-based workspace in Office 365 that brings together people, conversations and content – along with the tools that teams need, so they can easily collaborate to achieve more. +* **Widgets on iOS and Android** - Microsoft Flow widgets are button shortcuts that provide you an easier and faster way for button triggering straight from your home screen. +* **Create "error handling" steps** - Define one or more steps to run after an action fails. For example, get a notification immediately if your flow fails to create a record in Dynamics 365. +* **Integer and float variables** - Initialize and increment or decrement counters inside of a flow run to count how many times a certain set of logic runs. +* **Flow details page** - When you select a flow in your **My flows** list, you'll see a page with details about that flow, such as who has access and the run history. +* **Flow run quotas for admins** - Administrators can now monitor flow run usage across an organization against the common company run quota and get a quota breakdown to understand what licenses contribute to their quota. +* **HTTP request trigger improvements** - Use different HTTP methods, and add path segments for the Request trigger. +* **Two partner connectors** - Microsoft Flow can now connect to Parserr, an email-parsing service, and Cognito Forms, an online-forms service. + +[Read more and ask questions](https://flow.microsoft.com/blog/error-handling/) about this release. + +### Release 2017-05-12 +* **SharePoint Document Libraries integration** - You can select any file in a document library and kick off a flow, for example to send it to your manager for approval, [and much more](https://flow.microsoft.com/blog/flow-in-spo-document-libraries/). +* **Microsoft Planner connector** - Microsoft Planner lets you easily bring together teams, tasks, documents, and conversations for better results. +* **Admin view of licenses** - Administrators can see all of the Microsoft Flow and PowerApps licenses (both trial and paid) in the Microsoft Flow Admin Center. +* **PowerApps Community Plan** - The PowerApps Community plan is a free plan for individuals to explore, learn, and build skills for PowerApps, Microsoft Flow, and Common Data Service. + +[Read more and ask questions](https://flow.microsoft.com/blog/planner-community-and-licenses/) about this release. + +### Release 2017-05-09 +* **Azure AD connector** - There is a new connector for performing administrator actions from Microsoft Flow, including creating users or adding them to groups. +* **Office 365 Outlook improvements** - Flows can now be triggered by Shared Mailboxes and send mail to a Shared Mailbox. They can also set or read automatic replies. +* **Available in Canada** - You can now create your flows in Canada. +* **Create custom API webhooks** - Custom connector developers can now add triggers to their custom APIs with webhooks. +* **Manage flow owners in the admin center** - Environment administrators can manage flow owners in the Microsoft Flow admin center. +* **Connector documentation reference** - We now have a [full connector reference on docs.microsoft.com](https://docs.microsoft.com/Connectors/). +* **Two partner services** - Two new partner services were released: Nexmo and Paylocity. + +[Read more and ask questions](https://flow.microsoft.com/blog/canada-mailboxes-aad) about this release. + +### Release 2017-04-27 +* **Build flows with parallel steps** - Create flows with parallel execution: meaning you can have two or more steps that run at exactly the same time. +* **Five new services supported** - Five new services: Approvals, Benchmark Email, Capsule CRM, LiveChat, and Outlook Customer Manager. +* **Monitor retries for actions** - Microsoft Flow will retry when there are failures with services. Now see how many automatic retries occurred and the details of what happened. + +[Read more and ask questions](https://flow.microsoft.com/blog/parallel-actions/) about this release. + +### Release 2017-04-17 - Q1 Update for Microsoft Flow +* **Modern approval experiences** - Create workflows where approvers can approve securely from inside the Microsoft Flow mobile app or the unified approvals center on the Microsoft Flow website. +* **Team flows general availability** - Multiple people can own and manage a flow together with team flows, which are now generally available. +* **Build connectors for Microsoft Flow** - Anyone can submit their own Microsoft Flow connector for free for the rest of the world to use. +* **A "diet" designer** - For certain templates, a new version of the designer presents just the fields that are required to create a flow, which simplifies the experience. + +[Read more and ask questions](https://flow.microsoft.com/blog/q1-2017-update/) about this release. + +### Release 2017-04-11 +* **New actions to build tables and lists** - New Create HTML Table, Create CSV Table and Join actions that can process lists of items (instead of the previous Apply-to-each only). +* **Insert steps anywhere** - You can now insert a new step anywhere in the workflow without needing to drag-and-drop. +* **Four new services** - Flow now supports 10 to 8 Scheduling, Act!, Inoreader and the Computer Vision API. With the Computer Vision API you can process images to get the text content (known as OCR), or automatically tag images based on their content. + +[Read more and ask questions](https://flow.microsoft.com/blog/html-tables-csvs-computer-vision/) about this release. + +### Release 2017-04-03 +* **Windows Phone Beta** - The Windows Phone App beta program is available to get a preview of the app on your Windows Phone. [Read more](https://flow.microsoft.com/blog/windows-phone-app-beta-is-now-available/). +* **Muhimbi PDF** - You can now convert Microsoft Word files to PDF, add watermarks, merge documents and more with Muhimbi PDF. [Read more](https://flow.microsoft.com/blog/convert-files-using-muhimbi/). +* **Trigger flows from physical buttons** - Announcing partnerships with two of the leading products in the physical button space: Flic by Shortcut Labs, and Bttn by The Button Corporation. [Read more](https://flow.microsoft.com/blog/physical-buttons/) + +### Release 2017-03-22 +* **Make a copy of your flow** - You can now make a copy of your flow to work on draft versions or duplicate a flow that you've created in the past. +* **Two new services** - Adding support for Toodledo - manage your to-do list by creating and updating tasks, and Zendesk, which provides a customer service and support ticketing platform. + +[Read more and ask questions](https://flow.microsoft.com/blog/make-a-copy/) about this release. + +### Release 2017-03-15 +* **Share buttons with co-workers** - You can now share flow buttons with other people, making it easy for any business user to perform quick tasks. +* **Trigger buttons from the home screen** - Shortcuts to flow buttons from the home and lock screens of mobile devices make it quicker than ever to trigger a flow. +* **Team flows in the Microsoft Flow app** - You can now see the flows that have other owners in the Microsoft Flow app for iOS or Android. + +[Read more and ask questions](https://flow.microsoft.com/blog/button-sharing/) about this release. + +### Release 2017-03-10 +* **Improved custom connector experience** - You can now use a Postman collection to create a custom connector, and edit, add, and test actions. +* **Two new services** - Added PowerApps Notifications and PivotalTracker support. + +[Read more and ask questions](https://flow.microsoft.com/blog/new-updates-custom-api/) about this release. + +### Release 2017-02-27 +* **Trigger your flow buttons** - You can now trigger flow buttons right from the Microsoft Flow website. When looking at your list of flows, simply select the "..." menu and choose the Run now command. +* **Five new services** - Added Oracle Database, Intercom, FreshBooks, LeanKit and WebMerge support. + +[Read more and ask questions](https://flow.microsoft.com/blog/trigger-flow-buttons-web/) about this release. + +### Release 2017-02-21 +* **View environment flows** - Environment administrators can now view the full list of all the flows inside a given environment, as well as enable, disable or delete flows. +* **Two new services** - Added Azure Automation and Basecamp 2 support. + +[Read more and ask questions](https://flow.microsoft.com/blog/managing-flow-resources-in-the-admin-center/) about this release. + +### Release 2017-02-16 +* **Five new services** - Added support for Azure Data Lake, Bitbucket (a web based hosting service for projects that use GIT revision control), Eventbrite, Infusionsoft and Pipedrive. +* **Custom HTTP authentication** - In the flow designer it's now possible to use authentication with custom HTTP endpoints. +* **Parse JSON messages** - You can parse JSON data from the HTTP Request trigger or that's returned from the HTTP action. +* **Flow run filtering** - Improved filtering for flow runs, with more specific options including seeing Running flows or Cancelled runs. + +[Read more and ask questions](https://flow.microsoft.com/blog/managing-flow-resources-in-the-admin-center/) about this release. + +### Release 2017-02-06 +* **Team flows** - Team flows make it possible for multiple people to own and manage a flow together, and, if someone leaves an organization, the flows they created can continue to run. +* **Sharing custom connectors** - custom connectors, like team flows, can be shared and collectively managed inside an organization. +* **Gmail and LUIS support** - Connect to Gmail and Azure Cognitive Services' Language Understanding Intelligent Service. + +[Read more and ask questions](https://flow.microsoft.com/blog/team-flows/) about this release. + +### Release 2017-01-30 +* **Flow button inputs** - Flow buttons can now receive user inputs at run time, so flow authors can define information that's passed in when the button is tapped. +* **Outlook Tasks and HelloSign** - Outlook Tasks service lets you manage tasks, and HelloSign enables secure electronic signatures. + +[Read more and ask questions](https://flow.microsoft.com/blog/button-user-inputs/) about this release. + +### Release 2017-01-23 +* **Search by service** - Browse by service when you add a trigger or action to see all the actions for each service. +* **Switch case** - Add Switch blocks to have several branches of parallel logic. +* **More email actions** - New functionality in the Office 365 Outlook and Outlook.com services to work with flagged mails. +* **Five new services** - Connect to Local or Network File Systems, the payment service Stripe, IBM Informix, IBM DB2, and UserVoice. + +[Read more and ask questions](https://flow.microsoft.com/blog/search-by-service/) about this release. + +### Release 2017-01-14 +* **Resubmit runs** - If a flow failed and you want to try to fix it and run again, you can resubmit the failed run. +* **Cancel runs** - When a flow gets stuck, you can now explicitly cancel the run. +* **Two new services** - Added support for GoToTraining and GoToWebinar. +* **Mobile links** - You can share templates right from the mobile app, and we've added a quick download link for the apps at the top of the website. + +[Read more and ask questions](https://flow.microsoft.com/blog/managing-runs/) about this release. + +### Release 2016-12-29 +Microsoft Flow now supports DocuSign, to handle eSignatures and Digital Transaction Management; SurveyMonkey, for web-based surveys; and the OneNote note-taking app (business accounts only). + +[Read more and ask questions](https://flow.microsoft.com/blog/final-2016-services/) about this release. + +### Release 2016-12-20 +* **Run now** - You can now fire off a recurring trigger on demand - for example, if you have a scheduled report every day, but you need the report to run **now** too. +* **Six new services** - Build flows that connect to MSN Weather, Medium, Google Contacts, Buffer, Harvest, and TypeForm. + +[Read more and ask questions](https://flow.microsoft.com/blog/run-now-and-six-more-services/) about this release. + +### Release 2016-12-14 +You can now leverage valuable information when triggering a button flow, such as from where the button was triggered, by whom, at what time, and more. + +[Read more and ask questions](https://flow.microsoft.com/blog/button-trigger-tokens/) about this release. + +### Release 2016-12-06 +* **Introducing Guided Learning** - Get started with a sequenced collection of courses that pair videos with documentation to help you understand the extensive and powerful capabilities of Microsoft Flow. +* **Two new services** - Flows can now use Freshdesk, a customer support solution, and GoToMeeting, an online meeting tool. +* **HTTP Webhook support** - A flow can now be an endpoint for webhooks that will automatically register and unregister itself. + +[Read more and ask questions](https://flow.microsoft.com/blog/guided-learning-and-two-services/) about this release. + +### Release 2016-11-23 +* **Power BI alert support in Flow** - Turn insights into action by triggering flows from Power BI data alerts. +* **Mobile application improvements** - Added the ability to create flows from blank, in addition to the already existing experience of creation from templates. We also improved performance when viewing flow runs. +* **Eight new services** - You can now connect to Azure Resource Manager, Azure Queues, Chatter, Disqus, Azure DocumentDB, Cognitive Services Face API, HipChat, and Wordpress. + +[Read more and ask questions](https://flow.microsoft.com/blog/power-bi-and-eight-other-services/) about this release. + +### Release 2016-11-15 +* **Microsoft Flow Partner Program** - Microsoft Flow now has a certified partner program to make connections and take advantage of different company’s talents and experience with Microsoft Flow around the world. +* **Six new services** - We're also releasing six services this week: Asana, Campfire, EasyRedmine, JIRA, Redmine, and Vimeo. + +[Read more and ask questions](https://flow.microsoft.com/blog/partner-program-six-new-services/) about this release. + +### Release 2016-10-31 - General Availability +* **Pricing and licensing** - Now available in both Free and paid plans, as well as included in Office 365 and Dynamics 365. +* **Microsoft Flow Admin Center** - Enterprise-ready with the new Admin Center. In the Admin Center you can manage the environments inside the organization. +* **Data loss prevention policies** - Administrators can create data loss prevention policies to control the flow of data between services. +* **Android availability** - The Microsoft Flow phone app is now available for both iOS and Android. The app enables you to get notifications, monitor activity, and start flows with the tap of a button. +* **New designer experiences** - You can now search over the dynamic content passed from step to step, making it much quicker to reference the data you want to. + +[Read more and ask questions](https://flow.microsoft.com/blog/announcing-ga/) about this release. + +### Release 2016-10-26 +* **Button flows** - There are countless operations we wish we could trigger anytime and anywhere. Now, with Button Flows, you can get those done at just a click of a button, from your mobile device. +* **Announcing environments** - Environments are distinct spaces to store and manage your organization's flows. Environments are geo-located, which means that the flows, apps and business data that lives within an environment will be in the region where the environment is located. +* **Six new services** - Adding support for Bit.ly, Cognitive Services Text Analytics, Dynamics NAV, Dynamics 365 for Financials, Instapaper, and Pinterest. + +[Read more and ask questions](https://flow.microsoft.com/blog/environments-for-makers/) about this release. + +### Release 2016-10-16 +* **Custom connectors support more authentication types** - Custom connectors now support API Key authentication and can authenticate against any service that supports the full OAuth 2.0 specification. +* **Three new services supported** - We've added support for Basecamp 3, Blogger and PagerDuty. +* **Designer improvements** - Improved performance, you can now update and repair your connections right from the "..." menu for every action, and we have added a new step called Terminate that you can use to end a flow's run. + +[Read more and ask questions](https://flow.microsoft.com/blog/early-october-updates/) about this release. + +### Release 2016-09-25 +Flow creation now available from your mobile phones. Browse our rich template gallery, navigate through our services list, or select a template category to drill into. [Read more and ask questions](https://flow.microsoft.com/blog/mobile-creation/) about this release. + +### Release 2016-09-22 +* **Microsoft Graph People Picker** - A new Microsoft Graph people picker is integrated directly into the Microsoft Flow UI to help you choose the right contact or email address. +* **Microsoft Dynamics AX support** - From inside your flows you can now take action on your Dynamics AX Online operations data, from creating new records to querying for data. +* **Two new services from partners** - Now use appFigures or Insightly from your flows. + +[Read more and ask questions](https://flow.microsoft.com/blog/more-september-updates/) about this release. + +### Release 2016-09-14 +* **Embedding in your web site or app** - Developers can now embed Microsoft Flow right into their apps or web sites to give their users a simple way to automate their personal or professional tasks. +* **Use a flow as an HTTP endpoint** - Now you can use a flow itself as an HTTP API. There is a trigger called Request inside of flow, and you can choose to respond to the incoming request by adding a Response card. +* **Todoist support** - Todoist gives you perspective over all your projects, at work and at home. + +[Read more and ask questions](https://flow.microsoft.com/blog/extend-web-site-application/) about this release. + +### Release 2016-09-01 +Microsoft Flow now available for everyone - we initially opened up the preview to only email addresses provided by your work or school, like those used with Office 365 Business or Office 365 Enterprise. Today, we are announcing that the preview is officially available, free to use, for all users, no matter what email you may have. [Read more and ask questions](https://flow.microsoft.com/blog/available-for-everyone/) about this release. + +### Release 2016-08-31 +* **Nested conditionals** - Now you can add a second (or third, etc…) condition inside of another. +* **Apply to each** - An apply to each loop makes it possible to control the list that you repeat over. +* **Do-until** - A do-until loop allows you to repeat a step until a certain condition is met. +* **Filter arrays** - There is a single native filter step that can make sure that every item in the list matches some expression that you define. +* **Compose string variables** - You can now compose a string variable. +* **Scopes** - Scopes are a simple way to group two or more actions together. + +[Read more and ask questions](https://flow.microsoft.com/blog/build-advanced-flows/) about this release. + +### Release 2016-08-27 +* **Comments on steps** - Comments make it easy to annotate each individual action with notes so that you can easily remember what the flow needs +* **Smartsheet support** - This week we added support to connect to Smartsheet. Smartsheet is a service that makes it easy to collaborate on sheets in the cloud. +* **UI refinements when authoring flows** - We have made the flow name front-and-center and moved the save button to the top of the page for easy access. + +[Read more and ask questions](https://flow.microsoft.com/blog/add-comments-smartsheet/) about this release. + +### Release 2016-08-18 +You can now preview the new SharePoint Online modern lists experience that includes the Microsoft Flow integration. [Read more and ask questions](https://flow.microsoft.com/blog/microsoft-flow-integration-with-sharepoint-modern-lists-preview/) about this release. + +### Release 2016-08-13 +* **Visual Studio Team Services** - With Flow, you can now connect VSTS to a wide variety of services such as O365 Email, Slack, Trello, and Wunderlist. +* **Enhancements to SharePoint** - SharePoint lists support a range of data types from simple objects like Single lines of text and Date and Time to complex objects such as Person or Group, Lookup, and Choice. +* **Test O365 Outlook Connections** - Whenever you create a new O365 Outlook connection, we will now test it to make sure you’re ready to use it. +* **Boolean Control** - We’ve also added a boolean control to clarify which values you should enter for boolean input fields, such as Has Attachments in the When a new email arrives trigger. + +[Read more and ask questions](https://flow.microsoft.com/blog/visual-studio-team-services-enhancements-to-sharepoint-and-o365-outlook-and-boolean-control/) about this release. + +### Release 2016-08-08 +Public preview of the Microsoft Common Data Service integrated in Microsoft Flow. [Read more and ask questions](https://flow.microsoft.com/blog/flow-and-common-data-model/) about this release. + +### Release 2016-08-05 +* **SharePoint On-Premises** - Just like with SharePoint Online, you can create flows around your SharePoint on-premises lists and doc libraries either using pre-defined templates or by building them from scratch. +* **Info-bubbles in the designer** - In order to elaborate on the capabilities of each trigger and action, we’ve added info-bubbles above each step of your flow. + +[Read more and ask questions](https://flow.microsoft.com/blog/sharepoint-on-premises-and-info-bubbles-2/) about this release. + +### Release 2016-07-15 +* **Four new services added** - Connect to Google Calendar, Google Tasks, YouTube and SparkPost. +* **Rename your actions** - Now, you can tell these different actions apart by renaming them. +* **Delay for different periods of time** - You can now select any number of Seconds, Minutes, Hours or Days. +* **Easier to use folder browser** - We've simplified the folder browser - now selecting on the left will choose that folder, and selecting on the right will open that folder so you can choose the subfolders inside. + +[Read more and ask questions](https://flow.microsoft.com/blog/new-google-services-rename-more/) about this release. + +### Release 2016-07-08 +On-premises connectivity for Microsoft Flow using the on-premises data gateway. This allows you to establish secured connections to SQL Server and integrate them with your flows. [Read more and ask questions](https://flow.microsoft.com/blog/on-premises-data-gateway/) about this release. + +### Release 2016-07-02 +* **Google Sheets support** - In the past, we have had both the ability to use Excel, as well as Google Drive, but this week we are adding native Google Sheets support. +* **Get started more quickly from templates** - We have also made some optimizations to the way you can start from templates. Now, you can select what accounts you want to use for a template right inline on the template page. +* **No expiring authorization for SharePoint and Office 365** - Now, Microsoft Flow will automatically renew your access to Azure Active Directory-based services, so all of your flows will continue working across password changes. + +[Read more and ask questions](https://flow.microsoft.com/blog/more-june-updates/) about this release. + +### Release 2016-06-20 +* **Introducing the new mobile app for Microsoft Flow** - Today, we are pleased to introduce another major piece of our offering: a mobile app now available for download on iOS (soon also on Android) that gives you the power to manage, track, and explore your automated workflows anytime and anywhere. +* **Single sign-on** - We've implemented single sign-on that allows you to authenticate to Microsoft Flow with other Microsoft services like Office 365. + +[Read more and ask questions](https://flow.microsoft.com/blog/welcome-to-flow-now-more-mobile/) about this release. + +### Release 2016-06-18 +* **New Mail service** - You can now send emails directly from Microsoft Flow, without needing to connect to your personal or work email accounts inside of Microsoft Flow. +* **Notifications in the portal** - Now, you'll see Notifications at the top of the portal whenever something is broken with your flows. +* **All Activity in the portal** - You can now see activity across all of your flows by clicking the new Activity tab in the flow website. + +[Read more and ask questions](https://flow.microsoft.com/blog/mail-and-all-activity/) about this release. + +### Release 2016-05-27 +* **Browse templates by service** - There is a now a way to see all of the services that we support (without having to log in). From this page you can see a description of each of the services, and check out the templates that we have for that service. +* **Create and use your custom connectors** - Just like you can create custom connectors in PowerApps, you can also connect to your own APIs right at flow.microsoft.com: +* **Test your flows before finishing** - Whenever you save a flow you can now see the results of the flow run live in the page, if you perform the starting action. + +[Read more and ask questions](https://flow.microsoft.com/blog/may-updates-to-microsoft-flow/) about this release. + +### Release 2016-05-07 +Added two new services: Microsoft Project Online and Mandrill by Mailchimp. [Read more and ask questions](https://flow.microsoft.com/blog/announcing-microsoft-flow-webinars/) about this release. + +### Release 2016-04-27 - Public Preview +If you used Logic flows as part of [Microsoft PowerApps](https://powerapps.microsoft.com), the Microsoft Flow Preview release offers several new features: + +* You can now browse a gallery of dozens of templates and sort by Popularity, Name, or Date published. +* You can [publish your own templates](publish-a-template.md) into the gallery after you customize a flow. +* You can see the history for every check and run of your flow. +* When you save a flow, you can [watch it in action immediately](see-a-flow-run.md) by just performing the trigger action. +* We have a [new community](http://go.microsoft.com/fwlink/?LinkID=787467) for you to discuss Flow or [submit your ideas](https://go.microsoft.com/fwlink/?LinkID=787474). + +## Next steps +If you have any issues not already covered in these release notes or in the [FAQ](frequently-asked-questions.md), please [join our community](http://go.microsoft.com/fwlink/?LinkID=787467) to ask questions, or [contact support](http://go.microsoft.com/fwlink/?LinkID=787479). + diff --git a/flow-docs/run-tasks-on-a-schedule.md b/flow-docs/run-tasks-on-a-schedule.md new file mode 100644 index 000000000..f830deffa --- /dev/null +++ b/flow-docs/run-tasks-on-a-schedule.md @@ -0,0 +1,61 @@ +--- +title: Run flows on a schedule | Microsoft Docs +description: Automate recurring tasks by running flows on a schedule, such as every day or every hour. +services: '' +suite: flow +documentationcenter: na +author: stepsic-microsoft-com +manager: erikre +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 10/22/2016 +ms.author: stepsic + +--- +# Run flows on a schedule +Create a flow that performs the same task or tasks, such as sending a report in email, every day, hour, or minute. As an alternative, create a flow that waits a certain number of minutes or until a certain date before performing a task or tasks. + +## Prerequisites +* An account on [flow.microsoft.com](https://flow.microsoft.com) + +## Create a recurring flow +1. In [flow.microsoft.com](https://flow.microsoft.com), select **My flows** in the top navigation bar. + + ![Create a flow from blank](./media/run-tasks-on-a-schedule/create-flow.png) +2. Select **Create from blank**. + + ![Create a flow from blank](./media/run-tasks-on-a-schedule/create-from-blank.png) +3. Select **Recurrence** in the box that says **How would you like to start?** + + ![Every day](./media/run-tasks-on-a-schedule/add-recurrence.png) +4. In the **Recurrence** dialog box, specify how often you want the flow to run. + + For example, specify **Day** under **Frequency** and **2** under **Interval** if you want the flow to run every two days. + + ![Recurrence dialog box](./media/run-tasks-on-a-schedule/specify-recurrence.png) +5. Add the action or actions that you want the flow to take, as [Create a flow from scratch](get-started-logic-flow.md) describes. + +## Delay a flow +1. In [flow.microsoft.com](https://flow.microsoft.com), select **My flows** in the top navigation bar. + + ![Create a flow from blank](./media/run-tasks-on-a-schedule/create-flow.png) +2. Select **Create from blank**. + + ![Create a flow from blank](./media/run-tasks-on-a-schedule/create-from-blank.png) +3. Specify an event as [Create a flow from scratch](get-started-logic-flow.md) describes. +4. Select the plus icon, and then select **Add an action**. + + ![Option to add an action to a flow](./media/run-tasks-on-a-schedule/add-action.png) +5. In the list of actions, do either of the following: + + * Select **Delay**, and then specify a number of minutes, + * Select **Delay until**, and then specify a date. + + ![Option to add an action to a flow](./media/run-tasks-on-a-schedule/add-delay.png) + diff --git a/flow-docs/see-a-flow-run.md b/flow-docs/see-a-flow-run.md new file mode 100644 index 000000000..be495e606 --- /dev/null +++ b/flow-docs/see-a-flow-run.md @@ -0,0 +1,40 @@ +--- +title: Watch a flow run | Microsoft Docs +description: View the inputs and outputs for each step of a flow before you finish it to verify that it behaves as you expect. +services: '' +suite: flow +documentationcenter: na +author: merwanhade +manager: erikre +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 04/25/2016 +ms.author: mhade + +--- +# Watch your flows in action + + +To ensure that your flows run as you expect, perform the starting action, and review the inputs and outputs that each step in your flow generates. + +1. Create or update a flow, but leave the designer open after you select **Create flow** or **Update flow**. + + For example, [create a flow](get-started-logic-flow.md) that sends mail whenever someone tweets using the **#azure** hashtag. +2. Perform the starting action for your flow. + + For example, send a tweet that contains the **#azure** hashtag. + + The starting action and each subsequent step indicates whether it succeeded and how long it took + + ![Image of a successful run](./media/see-a-flow-run/successful-flow-run.png) +3. Select an individual trigger or action to show its inputs and outputs. + + ![Image of a successful run with expanded cards](./media/see-a-flow-run/successful-flow-expanded-cards.png) +4. Select **Edit flow** to make more changes, or select **Done** if the flow works as you expect. + diff --git a/flow-docs/sequential-modern-approvals.md b/flow-docs/sequential-modern-approvals.md new file mode 100644 index 000000000..4ab89dc20 --- /dev/null +++ b/flow-docs/sequential-modern-approvals.md @@ -0,0 +1,184 @@ +--- +title: Create a modern approval workflow with multiple approvers | Microsoft Docs +description: 'Create a modern approval workflow with multiple approvers ' +services: '' +suite: flow +documentationcenter: na +author: MSFTMan +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 06/08/2017 +ms.author: deonhe + +--- +# Manage sequential approvals with Microsoft Flow +Some workflows require pre-approval before the final approver is required to sign off. For example, a company may have a sequential approval policy that requires pre-approval for invoices over $1000.00 before they're approved by the Finance department. + +In this walkthrough, we create a sequential approval flow that manages employee vacation requests. + +## Detailed steps in the flow +The flow: + +1. Starts when an employee creates vacation request in a [SharePoint Online list](https://support.office.com/article/Introduction-to-lists-0a1c3ace-def0-44af-b225-cfa8d92c52d7). +2. Adds the vacation request to the approval center and then emails the request to the pre-approver. +3. Emails the pre-approval decision to the employee. +4. Updates the SharePoint Online list with the pre-approver's decision and comments. + + Note: If the request is pre-approved, the flow continues with these steps: +5. Sends the request to the final approver. +6. Emails the final decision to the employee. +7. Updates the SharePoint list with the final decision. + +This image summarizes the preceding steps: + + ![visio diagram of the flow](./media/sequential-modern-approvals/visio-overview.png) + +## Prerequisites +[!INCLUDE [prerequisites-for-modern-approvals](includes/prerequisites-for-modern-approvals.md)] + +The SharePoint Online list that you create must include the following columns: + + ![SharePoint list columns](./media/sequential-modern-approvals/sharepoint-columns.png) + +Make note of the name and URL of the SharePoint Online list. We use these items later when you configure the **SharePoint - When a new item is created** trigger. + +## Create your flow from the blank template +[!INCLUDE [sign-in-and-create-flow-from-blank-template](includes/sign-in-and-create-flow-from-blank-template.md)] + +## Add a trigger +[!INCLUDE [add-trigger-when-sharepoint-item-created](includes/add-trigger-when-sharepoint-item-created.md)] + + ![sharepoint info](./media/sequential-modern-approvals/select-sharepoint-site-info.png) + +## Get the manager for the person who created the vacation request +[!INCLUDE [add-get-manager-action](includes/add-get-manager-action.md)] + +1. Provide a name for your flow, and then select **Create flow** to save the work we've done so far. + + ![save flow](./media/sequential-modern-approvals/save.png) + + > [!NOTE] + > Select **Update flow** from the top of the screen periodically to save the changes to your flow. + > + > + + ![select update action](./media/sequential-modern-approvals/update.png) + +After each save operation, select **Edit flow** from the top of the screen, and then continue making changes. + +## Add an approval action for pre-approvals +[!INCLUDE [add-an-approval-action](includes/add-an-approval-action.md)] + +Note: This action sends the pre-approval request to the email address in the **Assigned To** box. + +## Add a condition +[!INCLUDE [add-approval-condition-response](includes/add-approval-condition-response.md)] + +> [!NOTE] +> This condition checks the response from the **Start an approval** action. +> +> + +## Add an email action for pre-approvals +[!INCLUDE [add-action-to-send-email-when-vacation-approved](includes/add-action-to-send-email-when-vacation-approved.md)] + + ![configure pre-approved email template](./media/sequential-modern-approvals/yes-email-config.png) + +## Add an update action for pre-approved requests +[!INCLUDE [add-action-to-update-sharepoint-with-approval](includes/add-action-to-update-sharepoint-with-approval.md)] + + ![update item configuration](./media/sequential-modern-approvals/configure-update-item.png) + +## Get the pre-approver's manager +1. Use the [Get the manager for the person who created the vacation request](sequential-modern-approvals.md#Get-the-manager-for-the-person-who-created-the-vacation-request) steps we did earlier to add, and then configure another **Get manager** action. This time we get the pre-approver's manager. +2. The **Get manager 2** card should resemble this image when you're finished. Be sure to use the **Email** token from the **Get manager** category on the **Add dynamic content from the apps and services used in this flow.** card. + + ![get pre-approver's manager](media/modern-approvals/get-pre-approver-manager.png) + +## Add the final approval action +1. Use the [add an approval action for pre-approvals](sequential-modern-approvals.md#Add-an-approval-action-for-pre-approvals) steps we did earlier to add, and then configure another **Start an approval** action. This action sends an email request for final approval. +2. When you're done, the card should resemble this image: + + ![configure the approval](./media/sequential-modern-approvals/provide-approval-config-info.png) + +## Add the final approval condition +1. Repeat the steps from [add a condition](sequential-modern-approvals.md#Add-a-condition) to add, and then configure a **Condition** that checks the final approver's decision. + +## Send email with final approval +1. Use the steps from [Add an email action for pre-approvals](sequential-modern-approvals.md#Add-an-email-action-for-pre-approvals) to add, and then configure an action that sends an email when vacation requests are approved. +2. When you're finished, your card should resemble this image: + + ![final approval email template](./media/sequential-modern-approvals/vacatioin-request-approved-email-template.png) + +## Update SharePoint with approval +1. Use the steps from [Add an update action for pre-approved requests](sequential-modern-approvals.md#Add-an-update-action-for-pre-approved-requests) to add, and then configure an action that updates SharePoint when the vacation request is approved. +2. When you're finished, the card should resemble this image: + + ![update item configuration](./media/sequential-modern-approvals/configure-update-item-approved.png) + +## Send email with pre-approval rejection +[!INCLUDE [add-action-to-send-email-when-vacation-rejected](includes/add-action-to-send-email-when-vacation-rejected.md)] + + ![configuration for rejected requests](./media/sequential-modern-approvals/configure-rejected-email.png) + +Note: This action must be added to the **IF NO, DO NOTHING** branch below the **Condition** card. + +## Update SharePoint with pre-approval rejection +[!INCLUDE [add-action-to-update-sharepoint-with-rejection](includes/add-action-to-update-sharepoint-with-rejection.md)] + + ![update sharepoint for rejected requests](./media/sequential-modern-approvals/update-sharepoint-with-rejection.png) + +## Send email with final rejection +1. Use the steps from [Send email with pre-approval rejection](sequential-modern-approvals.md#Send-email-with-pre-approval-rejection) to add, and then configure an action that sends an email when the vacation request is rejected by the final approver. + + Note: This action must be added to the **IF NO, DO NOTHING** branch below the **Condition 2** card. +2. When you're finished, the card should resemble this image: + + ![configuration for rejected requests](./media/sequential-modern-approvals/final-rejection-email-card.png) + +## Update SharePoint with final rejection +1. Use the steps from [Update SharePoint with pre-approval rejection](sequential-modern-approvals.md#Update-SharePoint-with-pre-approval-rejection) to add, and then configure an action that updates SharePoint if the final approver rejects the vacation request. +2. When you're finished, the card should resemble this image: + + ![update item card](./media/sequential-modern-approvals/final-rejection-update-sharepoint.png) +3. Select **Update flow** to save the work we've done. + + ![select update action](./media/sequential-modern-approvals/update.png) + +If you've followed along, your flow should resemble this image: + +![overview of flow](./media/sequential-modern-approvals/completed-flow.png) + +Now that we've created the flow, let's see it in action. + +## Request an approval +[!INCLUDE [request-vacation-approval](includes/request-vacation-approval.md)] + +Your request should resemble this image: + +![vacation request](./media/sequential-modern-approvals/vacation-request.png) + +## View pending approval requests +[!INCLUDE [view-pending-approvals](includes/view-pending-approvals.md)] + +## Pre-approve a request +[!INCLUDE [approve-request-from-different-locations](includes/approve-request-from-different-locations.md)] + +## Approve the request +The steps to approve a request are identical to the steps to [pre-approve a request](sequential-modern-approvals.md#Pre-approve-a-request) + +Note: The final approver gets the vacation request only after the request has been pre-approved. + +## Reject a request +[!INCLUDE [reject-a-request](includes/reject-a-request.md)] + +## More information +[Single approver modern approvals walkthrough](modern-approvals.md) + diff --git a/flow-docs/share-buttons.md b/flow-docs/share-buttons.md new file mode 100644 index 000000000..f4dfd3770 --- /dev/null +++ b/flow-docs/share-buttons.md @@ -0,0 +1,121 @@ +--- +title: Share your buttons with others. | Microsoft Docs +description: Share your buttons with others so they can use your buttons and save time. +services: '' +suite: flow +documentationcenter: na +author: msftman +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 03/22/2017 +ms.author: deonhe + +--- +# Share button flows in Microsoft Flow +In the mobile app for Microsoft Flow, you can share [button flows](introduction-to-button-flows.md) (buttons) with other users or groups within your organization. When you share a button, the person or group with whom you share can trigger and run your button, the same way they run their own buttons. You can stop sharing your buttons at any time. + +> The screenshots used in this document were taken from an Android device. If you're using an iPhone, the images may appear differently, but the functionality is the same. +> +> + +Follow [these steps](share-buttons.md#use-shared-buttons) to use a button that someone shared with you. + +## Prerequisites +To share buttons, you need: + +* An account with access to [Microsoft Flow](https://flow.microsoft.com). +* A flow to share. +* A mobile device with the Microsoft Flow mobile app for [Android](https://aka.ms/flowmobiledocsandroid), [iOS](https://aka.ms/flowmobiledocsios), or [Windows Phone](https://aka.ms/flowmobilewindows). +* A group or user within your organization with whom to share your button. + +## Share a button +You can share a button from the **Buttons** tab of the Microsoft Flow mobile app. + +1. Tap **...** next to the button you want to share. + + ![share button](./media/share-buttons/share-button-flows-buttons-tab.png) +2. Tap **Share as run-only**. + + ![share button](./media/share-buttons/share-button-flows-run-only.png) +3. Tap **Invite others** from the **Button users** page. + + ![share button](./media/share-buttons/share-button-flows-button-users.png) +4. Search for, and then select the group or person with whom you'd like to share the button. + + ![share button](./media/share-buttons/share-button-flows-invite-others-select.png) +5. Tap **SEND** on the **Invite others** page. + + ![share button](./media/share-buttons/share-button-flows-invite-others-send.png) + + > [!NOTE] + > Shared buttons run with their creator's connections. However, nobody else can access these credentials, nor reuse them in any other flow. + > + > +6. Tap **OK** to acknowledge that your button will use the *connections* that exist in the button whenever the person or group you've shared it with runs it. + + ![share button](./media/share-buttons/share-button-flows-invite-others-ok.png) +7. Tap **DONE** on the page that indicates the button sharing operation completed successfully. + + ![share button](./media/share-buttons/share-button-flows-invite-others-done.png) + +## View the list of button users +You can view all groups or users with whom a button is shared by following these steps from the **Buttons** tab: + +1. Tap **...** next to the button in which you're interested, and then tap **Share as run-only**. +2. On the **Button users** page, view all groups or users with whom the button is shared. + + ![view button users](./media/share-buttons/share-button-flows-button-users-list.png) + +## Stop sharing a button +You can stop sharing a button by following these steps from the **Buttons** tab: + +1. Tap **...** next to the button you no longer want to share, and then tap **Share as run-only**. +2. On the **Button users** page, tap the user or group with whom you want to stop sharing the button. + + ![stop sharing button](./media/share-buttons/share-button-flows-remove-user-list.png) +3. Tap **Remove user** when the user's page is displayed. + + ![stop sharing button](./media/share-buttons/share-button-flows-remove-user.png) +4. Wait for the remove operation to complete. Notice the **Button users** list refreshes, and the user or group you removed is no longer listed. + + ![stop sharing button](./media/share-buttons/share-button-flows-remove-user-result.png) + +## Monitor the run history +All run history, including the runs initiated by a person with whom a button is shared, appear only on the **Activity** tab of the button creator's Microsoft Flow mobile app. + +## Use shared buttons +Before you can run a button that someone has shared with you, you must add it to your **Buttons** tab from the **Add buttons** page. + +1. Tap **GET MORE** (or the **New buttons are available** banner if it appears) on the **Buttons** tab. + + ![new button shared with me](./media/share-buttons/share-button-flows-banner.png) +2. Tap the button you want to use. + + The tapped button will be immediately added to the **Buttons** tab of the Microsoft Flow app. You can then use the button from the **Buttons** tab, just like any other button that's listed there. + + ![new button shared with me](./media/share-buttons/share-button-flows-buttons-shared-with-me.png) + +## Stop using a shared button +If you no longer want to use a button that was shared with you, remove it from the **Buttons** tab by taking these steps: + +1. On the **Buttons** tab, tap **...** next to the button you no longer want to use. + + ![remove button](./media/share-buttons/share-button-flows-added-shared-button.png) +2. Tap **Remove** from the menu that appears. + + ![remove button](./media/share-buttons/share-button-flows-share-no-more.png) + +That's it. The button will no longer appear on the **Buttons** tab of the Microsoft Flow app. + +> [!NOTE] +> After you remove a shared button, you can add it back by selecting **GET MORE** from the **Buttons** tab. +> +> + diff --git a/flow-docs/sign-up-sign-in.md b/flow-docs/sign-up-sign-in.md new file mode 100644 index 000000000..31e0dbf67 --- /dev/null +++ b/flow-docs/sign-up-sign-in.md @@ -0,0 +1,62 @@ +--- +title: Sign up and sign in | Microsoft Docs +description: Sign up and sign into Microsoft Flow, and troubleshoot issues with this process. +services: '' +suite: flow +documentationcenter: na +author: anjlic +manager: anneta +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 04/04/2017 +ms.author: anjlic + +--- +# Sign up and sign in for Microsoft Flow + + +Starting with Microsoft Flow, as an individual, is easy! Before you can create a flow, sign up by using any email address. If you've never used an online Microsoft product with that address, you'll need to take a few moments to register it. + +## Sign up free +If you haven't used other online Microsoft products, you'll need to sign up. + +1. In [flow.microsoft.com](https://flow.microsoft.com), click or tap **Sign up free** in the upper-right corner. +2. Enter your email address. +3. Click or tap the right arrow. + + ![Sign-up link](./media/sign-up-sign-in/signup.png) + +## Sign in +If you've used other Microsoft online products, either for work or yourself, all you need to do is sign in. + +1. In [flow.microsoft.com](https://flow.microsoft.com), click or tap **Sign in** in the upper-right corner. + + ![Sign-in link](./media/sign-up-sign-in/signin.png) +2. Enter your email address. +3. On the sign-in page, enter your email address and password. + +## Using paid features +Anyone can sign up and get a free plan for Microsoft Flow. If your organization has purchased Office 365 or Dynamics 365 for you, you may have access to additional features for Microsoft Flow. You can also start a 90-day free trial or purchase Microsoft Flow Plan 1 or Plan 2 if you would like to use the paid features. [Learn more about billing](billing-questions.md). + +For administration information, see [Flows in your organization Q&A](organization-q-and-a.md). + +## Troubleshooting +In many cases, you can register for Microsoft Flow by following the simple process described earlier in this topic. However, this table summarizes the most common reasons why you may not be able to sign up and describes available workarounds. + +| Symptom / Error Message | Cause and Workaround | +| --- | --- | +| **No Microsoft account created yet**
You receive a message after entering your email during signup:

*That Microsoft account doesn't exist. Enter a different account or get a new one.* |You signed up with an email that doesn't yet have a Microsoft account created for it. Select the **Sign up now** link on that page and you'll be able to create a new Microsoft account for your email. You can use your existing email to create a Microsoft account. | +| **.gov or .mil email addresses**
You receive a message like the following during signup:

*Microsoft Flow unavailable: Microsoft Flow is not available for users with .gov or .mil email addresses at this time. Use another work email address or check back later.* |You cannot currently sign up for Microsoft Flow with a .gov or .mil address. Instead, you can sign in with any Microsoft Account email address such as a *@outlook.com* address. | +| **Self-service signup disabled**

You receive a message like the following during signup:
*We can't finish signing you up. Your IT department has turned off signup for Microsoft Flow. Contact them to complete signup.*
or
*We can't finish signing you up. It looks like Microsoft Microsoft Flow isn't currently available for your work or school.* |You have selected **Sign up** instead of of **Sign in**. If you select **Sign in** in the top of the home page you will be able to access Microsoft Flow. | +| **Email address is not an Office 365 ID**

You receive a message like the following during signup:
*We can't find you at contoso.com. Do you use a different ID at work or school? Try signing in with that, and if it doesn't work, contact your IT department.* |Your organization uses IDs to sign in to Office 365 and other Microsoft services, and those IDs differ from your email address. For example, your email address might be Nancy.Smith@contoso.com, but your ID might be nancys@contoso.com. To complete signup, use the ID that your organization has assigned to you for signing in to Office 365 or other Microsoft services. | + +## Next steps +* [Start with a template](get-started-logic-template.md), which is a pre-built flow that's set up for you. +* [Start from blank](get-started-logic-flow.md) if you already have a process in mind and can't find a template for it. + diff --git a/flow-docs/wait-for-approvals.md b/flow-docs/wait-for-approvals.md new file mode 100644 index 000000000..7547231a3 --- /dev/null +++ b/flow-docs/wait-for-approvals.md @@ -0,0 +1,97 @@ +--- +title: Wait for approval in a flow | Microsoft Docs +description: Flows can wait for an external event to occur, such as a user approving or rejecting a change, before performing an action, such as sending notification of the decision. +services: '' +suite: flow +documentationcenter: na +author: merwanhade +manager: erikre +editor: '' +tags: '' + +ms.service: flow +ms.devlang: na +ms.topic: article +ms.tgt_pltfrm: na +ms.workload: na +ms.date: 04/24/2016 +ms.author: merwanhade + +--- +# Wait for approval in Microsoft Flow + + +Create a flow that, if you create an item in SharePoint, sends approval mail and then notifies you whether the item was approved or rejected. To follow this tutorial exactly, create a simple SharePoint list as a trigger action, but you can use another data source such as Dropbox or OneDrive. + +**Prerequisites** + +* Create a simple SharePoint Online list that's named **Project Tracker** with a column named **Title**, and add a Person or Group column named **Assigned To**. + + ![Image of Project Tracker SPO list](./media/wait-for-approvals/project-tracker.png) + +## Add an event to trigger the flow +1. In [flow.microsoft.com](https://flow.microsoft.com), select **My flows** in the top navigation bar, and then select **Create new flow**. + + ![Image of create new flow](./media/wait-for-approvals/create-a-new-flow.png) +2. In the **How would you like to start?** box, type or paste **new item**, and then select **SharePoint Online - when a new item is created**. + + ![Image of SPO trigger](./media/wait-for-approvals/send-approval-email-select-2.png) +3. If prompted, sign in to SharePoint Online. +4. Under **Site url**, type or paste the URL of the site that contains your list. + + ![Image of SPO siteurl](./media/wait-for-approvals/SPO-site-url.png) +5. Under **List name**, select a list such as **Project Tracker**. + + ![Image of SPO listname](./media/wait-for-approvals/SPO-list-name.png) + +## Add the resulting action +1. Select the **+** button, and then select **Add an action.** + + ![Image of add an action](./media/wait-for-approvals/add-an-action.png) +2. In the **What would you like to do next?** box, type or paste **send email**, and then select **Office 365 Outlook - Send approval email**. + + ![Image of send approval email](./media/wait-for-approvals/send-approval-mail.png) +3. If prompted, sign in to Office 365 Outlook. +4. Select the **To** field, and then select **Assigned to EMail**. + + The user in the **Assigned To** column will receive the mail to approve or reject the item. When you create an item to test the flow, you'll specify yourself in this field. That way, you'll not only approve or reject the item but also receive the notification mail. + + **Note**: You can customize the **Subject** and **User Options** fields to suit your needs. + + ![Image of send approval email to field](./media/wait-for-approvals/send-approval-email-to.png) + +## Add a condition +1. Select the **+** button, and then select **Add a condition**. + + ![Image of add a condition](./media/wait-for-approvals/add-a-condition.png) +2. In the **Object Name** field, select **SelectedOption**. +3. In the **Value field**, type or paste **Approve**. + + ![Image of the condition card](./media/wait-for-approvals/condition-card-2.png) +4. In the **If yes** area, select **Add an action**. + + ![Image of yes-add an action](./media/wait-for-approvals/yes-add-an-action.png) +5. In the **What would you like to do next?** box, type or paste **send email**, and then select **Office 365 Outlook - Send Email**. + + ![Image of yes-send-email](./media/wait-for-approvals/yes-send-email.png) +6. In the **Subject** box, specify a subject. + + For example, select **Assigned To DisplayName**, type **has approved** with a space on each side, and then select **Title**. +7. In the **Body** box, specify an email body such as **Ready to proceed with the next phase of the project.** +8. In the **To** field, enter a recipient such as **Created by EMail**. + + The person who created the item in the SharePoint list will be notified whether the project was approved or rejected. + + ![Image of yes-send-email](./media/wait-for-approvals/if-yes-send-email-card-3.png) +9. In the **If no** area, repeat the last five steps except change the **Subject** and **Body** to reflect that the project was rejected. + + ![Image of no-send-email](./media/wait-for-approvals/no-send-email-2.png) + +## Finish and test your flow +1. Give your flow a name, and then select **Create flow**. + + ![Image of create-flow](./media/wait-for-approvals/create-flow.png) +2. Create an item in your SharePoint list. + + An approval mail is sent to the recipient that you specified. When the recipient selects **Approve** or **Reject** in that mail, you receive email that indicates the response. +