Jira Email/Form Intake to Issue
When a request arrives via a Microsoft Form or a monitored mailbox, the flow creates a Jira issue with mapped fields, attachments, priority, and component, assigns it by rules, and replies to the requester with the issue key. Turns inbound requests into triaged Jira issues automatically.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
This solution turns inbound work requests into triaged Jira issues and acknowledges the requester automatically. It ships as two flows in one solution, one per intake channel: a Microsoft Forms-triggered flow and a monitored-mailbox flow. Both map the request into a Jira issue (summary, description, issue type, priority, optional component, labels), apply assignment rules, and reply to the requester with the new issue key. A correlation id is minted at the start of each run and stamped onto the Jira description and the acknowledgement email.
Why it matters: requests that arrive by form or email get lost or manually re-keyed. Auto-creating structured Jira issues and acknowledging instantly speeds intake, removes double entry, and gives every requester a reference key.
Both flows ship Off (Stopped).
Use Case
A team takes work requests via a Microsoft Form and a shared/monitored mailbox, and runs delivery in Jira. Operations and developers want every request to land as a triaged Jira issue with the requester acknowledged, without anyone re-typing tickets.
Flow Architecture
Flow 1: When a Form Is Submitted
Microsoft Forms - CreateFormWebhookFires on each new Microsoft Forms response.
Map Form to Jira Fields
Forms GetFormResponseById + ComposeRetrieves the response, maps answers via the field map to summary/description/priority/request-type/requester, resolves the assignee by rules, and assembles the Jira fields object.
Create & Assign Issue
Jira - CreateIssue + UpdateIssueCreates the issue from the static fields object, then assigns by rules when a non-empty accountId resolved.
Acknowledge the Requester
Outlook - SendEmailV2Replies to the requester with the new issue key + correlation id.
Flow 2: When an Intake Email Arrives
Outlook - OnNewEmailV3Polls the monitored folder (every 3 min) for new request emails.
Map Email to Jira & Create
Compose + Jira CreateIssue/UpdateIssueMaps sender/subject/body-preview to Jira fields, creates the issue, assigns by rules, and replies to the sender with the issue key.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_FormID | String | REPLACE_WITH_FORM_ID | Microsoft Form id the Forms trigger subscribes to. |
| flowlibs_JiraProjectKey | String | REQ | Target Jira project key for created issues. |
| flowlibs_JiraIssueType | String | Task | Default issue type when the request does not specify one. |
| flowlibs_JiraDefaultPriority | String | Medium | Default priority when the request does not specify one. |
| flowlibs_JiraDefaultComponent | String | Intake | Optional component name; leave blank to omit components. |
| flowlibs_FieldMap | String | {"summary":"r1","description":"r2","priority":"r3","requestType":"r4","requesterEmail":"r5"} | Maps logical fields to Microsoft Forms question IDs - replace the rN placeholders. |
| flowlibs_AssignRules | String | {"Task":"","Bug":"","Story":""} | Maps issue type to Jira Cloud accountId; empty value = leave unassigned. |
| flowlibs_MailboxFolder | String | Inbox | Outlook folder path the email-intake flow monitors. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Jira | shared_jira | CreateIssue UpdateIssue |
| Microsoft Forms | shared_microsoftforms | CreateFormWebhook GetFormResponseById |
| Office 365 Outlook | shared_office365 | OnNewEmailV3 SendEmailV2 |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Attachments to Jira
- The Jira connector has no attachment operation. Add an HTTP POST to /rest/api/3/issue/{key}/attachments (X-Atlassian-Token: no-check, multipart) with a Key Vault-backed token after Create Issue.
- Component routing by keyword
- Replace the request-type constant in the email flow with a keyword test on subject/body, and/or set the component dynamically.
- Deduplication
- Stamp the Forms response id / email internet message id as a Jira label and skip creation if it already exists.
- Reply in-thread
- Swap SendEmailV2 for Outlook ReplyToV3 using the trigger message id to keep the acknowledgement in the original thread.
- Assignee format
- Assignment uses Jira Cloud accountId; for Server/Data Center use {assignee:{name}}.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Map a form answer
Reads an answer by its mapped question id, with a fallback.
EXPR.02Assignee by rules
Resolves an accountId for the request type (empty = unassigned).
EXPR.03Optional component array
Includes the component only when set.
EXPR.04Issue key from create response
The new issue key for the acknowledgement.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.