[{"data":1,"prerenderedAt":1357},["ShallowReactive",2],{"content-query-3T5zwMJaIo":3,"content-query-W4RtfFQaoh":1134,"content-query-yP1cWMns5L":1159,"content-query-M5aWdXgQKx":1163,"content-query-eJ9XWy0CGH":1170,"content-query-UP87PRcOMw":1183,"content-query-7VgBfxLOWV":1187,"content-query-Z6fTkbgt1D":1209,"content-query-9giMhwHrGj":1220,"content-query-j8GGVgf9na":1227,"content-query-IVhcXRs1sR":1240,"content-query-G03kJtQzJS":1250,"content-query-1mvwAKmUBq":1272,"content-query-zRSmsuVl55":1295,"content-query-No6iPTj4EO":1299,"content-query-MsdmgXewTK":1309,"content-query-BMhIInEJl2":1316},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"intro":10,"type":11,"layout":12,"tags":13,"body":16,"_type":1127,"_id":1128,"_source":1129,"_file":1130,"_stem":1131,"_extension":1132,"sitemap":1133},"/docs/tutorials/email/microsoft-teams","email",false,"","Email to Microsoft Teams","Route inbound email into a Microsoft Teams channel. Webhook Relay parses each email to JSON and a transform reshapes it into a Teams card.","Route inbound email into a Microsoft Teams channel automatically. Webhook Relay receives each email, parses it to JSON, and a transform reshapes it into a Teams card.","tutorial","doc",[14,15],"Email","Webhook Forwarding",{"type":17,"children":18,"toc":1118},"root",[19,41,62,84,91,96,126,147,153,158,164,176,190,203,648,654,666,672,692,991,1036,1069,1075,1088,1094,1112],{"type":20,"tag":21,"props":22,"children":23},"element","p",{},[24,27,32,34,39],{"type":25,"value":26},"text","Plenty of useful signals still arrive as ",{"type":20,"tag":28,"props":29,"children":30},"strong",{},[31],{"type":25,"value":5},{"type":25,"value":33}," — alert notifications from legacy systems, approval requests, scheduled reports, vendor updates. If your team lives in ",{"type":20,"tag":28,"props":35,"children":36},{},[37],{"type":25,"value":38},"Microsoft Teams",{"type":25,"value":40},", copy-pasting those messages out of a shared inbox is tedious and easy to drop. You want each email to land in a Teams channel automatically.",{"type":20,"tag":21,"props":42,"children":43},{},[44,53,55,60],{"type":20,"tag":45,"props":46,"children":50},"a",{"href":47,"rel":48},"https://webhookrelay.com",[49],"nofollow",[51],{"type":25,"value":52},"Webhook Relay",{"type":25,"value":54}," does exactly that. It gives you an inbound email address, ",{"type":20,"tag":28,"props":56,"children":57},{},[58],{"type":25,"value":59},"parses every message it receives into clean JSON",{"type":25,"value":61},", and POSTs it to your outputs. Add a small transform that reshapes the parsed email into a Teams card, point the output at your Teams webhook URL, and every email becomes a channel message — no glue server, no inbox polling.",{"type":20,"tag":63,"props":64,"children":65},"blockquote",{},[66],{"type":20,"tag":21,"props":67,"children":68},{},[69,74,76,82],{"type":20,"tag":28,"props":70,"children":71},{},[72],{"type":25,"value":73},"Build it visually first:",{"type":25,"value":75}," the free ",{"type":20,"tag":45,"props":77,"children":79},{"href":78},"/webhook-message-formatter",[80],{"type":25,"value":81},"webhook → Slack/Discord/Teams formatter",{"type":25,"value":83}," lets you paste a sample payload, template the message, preview it live, and copy the exact transform function — for any incoming payload, including a parsed email.",{"type":20,"tag":85,"props":86,"children":88},"h2",{"id":87},"how-it-works",[89],{"type":25,"value":90},"How it works",{"type":20,"tag":21,"props":92,"children":93},{},[94],{"type":25,"value":95},"The flow is a single hop with a transform in the middle:",{"type":20,"tag":97,"props":98,"children":101},"pre",{"className":99,"code":100,"language":25,"meta":7,"style":7},"language-text shiki shiki-themes github-dark","inbound email  ──▶  Webhook Relay  ──▶  transform to Teams card  ──▶  Teams channel\n (to your addr)     (parse to JSON)     (serverless function)        (message appears)\n",[102],{"type":20,"tag":103,"props":104,"children":105},"code",{"__ignoreMap":7},[106,117],{"type":20,"tag":107,"props":108,"children":111},"span",{"class":109,"line":110},"line",1,[112],{"type":20,"tag":107,"props":113,"children":114},{},[115],{"type":25,"value":116},"inbound email  ──▶  Webhook Relay  ──▶  transform to Teams card  ──▶  Teams channel\n",{"type":20,"tag":107,"props":118,"children":120},{"class":109,"line":119},2,[121],{"type":20,"tag":107,"props":122,"children":123},{},[124],{"type":25,"value":125}," (to your addr)     (parse to JSON)     (serverless function)        (message appears)\n",{"type":20,"tag":21,"props":127,"children":128},{},[129,131,137,139,145],{"type":25,"value":130},"Webhook Relay handles SMTP, parsing, SPF/DKIM/DMARC checks, and attachments for you. By the time the email reaches your transform it's already structured JSON — see ",{"type":20,"tag":45,"props":132,"children":134},{"href":133},"/email-to-webhook",[135],{"type":25,"value":136},"Email to Webhook",{"type":25,"value":138}," for the full picture of ",{"type":20,"tag":45,"props":140,"children":142},{"href":141},"/docs/email",[143],{"type":25,"value":144},"receiving emails as webhooks",{"type":25,"value":146},".",{"type":20,"tag":85,"props":148,"children":150},{"id":149},"step-1-create-a-bucket",[151],{"type":25,"value":152},"Step 1: Create a bucket",{"type":20,"tag":21,"props":154,"children":155},{},[156],{"type":25,"value":157},"A bucket is the container that ties an input (where data arrives) to outputs (where it goes). Create one in the dashboard — it's where you'll add the email input and the Teams output.",{"type":20,"tag":85,"props":159,"children":161},{"id":160},"step-2-add-an-email-input",[162],{"type":25,"value":163},"Step 2: Add an email input",{"type":20,"tag":21,"props":165,"children":166},{},[167,169,174],{"type":25,"value":168},"On the bucket, add an ",{"type":20,"tag":28,"props":170,"children":171},{},[172],{"type":25,"value":173},"email input",{"type":25,"value":175},". Webhook Relay generates a unique address:",{"type":20,"tag":97,"props":177,"children":179},{"className":99,"code":178,"language":25,"meta":7,"style":7},"\u003Cuuid>@in.webhookrelay-mail.com\n",[180],{"type":20,"tag":103,"props":181,"children":182},{"__ignoreMap":7},[183],{"type":20,"tag":107,"props":184,"children":185},{"class":109,"line":110},[186],{"type":20,"tag":107,"props":187,"children":188},{},[189],{"type":25,"value":178},{"type":20,"tag":21,"props":191,"children":192},{},[193,195,201],{"type":25,"value":194},"Any message sent to that address is parsed and POSTed to the bucket's outputs as JSON. The parsed payload looks like this (see the full ",{"type":20,"tag":45,"props":196,"children":198},{"href":197},"/docs/email/payload",[199],{"type":25,"value":200},"payload reference",{"type":25,"value":202},"):",{"type":20,"tag":97,"props":204,"children":208},{"className":205,"code":206,"language":207,"meta":7,"style":7},"language-json shiki shiki-themes github-dark","{\n  \"from\": \"alerts@example.com\",\n  \"from_name\": \"Monitoring\",\n  \"recipient\": \"\u003Cuuid>@in.webhookrelay-mail.com\",\n  \"to\": [\"\u003Cuuid>@in.webhookrelay-mail.com\"],\n  \"cc\": [],\n  \"subject\": \"Disk usage above 90% on db-01\",\n  \"date\": \"2026-06-28T11:59:00Z\",\n  \"message_id\": \"\u003C...>\",\n  \"text\": \"db-01 root volume is at 92%.\",\n  \"html\": \"\u003Cp>db-01 root volume is at 92%.\u003C/p>\",\n  \"headers\": {},\n  \"spf\": \"pass\",\n  \"dkim\": \"pass\",\n  \"dmarc\": \"pass\",\n  \"attachments\": [\n    { \"name\": \"report.csv\", \"content_type\": \"text/csv\", \"size\": 1024, \"content\": \"\", \"truncated\": false }\n  ]\n}\n","json",[209],{"type":20,"tag":103,"props":210,"children":211},{"__ignoreMap":7},[212,221,246,268,290,313,327,349,371,393,415,437,451,473,494,515,529,630,639],{"type":20,"tag":107,"props":213,"children":214},{"class":109,"line":110},[215],{"type":20,"tag":107,"props":216,"children":218},{"style":217},"--shiki-default:#E1E4E8",[219],{"type":25,"value":220},"{\n",{"type":20,"tag":107,"props":222,"children":223},{"class":109,"line":119},[224,230,235,241],{"type":20,"tag":107,"props":225,"children":227},{"style":226},"--shiki-default:#79B8FF",[228],{"type":25,"value":229},"  \"from\"",{"type":20,"tag":107,"props":231,"children":232},{"style":217},[233],{"type":25,"value":234},": ",{"type":20,"tag":107,"props":236,"children":238},{"style":237},"--shiki-default:#9ECBFF",[239],{"type":25,"value":240},"\"alerts@example.com\"",{"type":20,"tag":107,"props":242,"children":243},{"style":217},[244],{"type":25,"value":245},",\n",{"type":20,"tag":107,"props":247,"children":249},{"class":109,"line":248},3,[250,255,259,264],{"type":20,"tag":107,"props":251,"children":252},{"style":226},[253],{"type":25,"value":254},"  \"from_name\"",{"type":20,"tag":107,"props":256,"children":257},{"style":217},[258],{"type":25,"value":234},{"type":20,"tag":107,"props":260,"children":261},{"style":237},[262],{"type":25,"value":263},"\"Monitoring\"",{"type":20,"tag":107,"props":265,"children":266},{"style":217},[267],{"type":25,"value":245},{"type":20,"tag":107,"props":269,"children":271},{"class":109,"line":270},4,[272,277,281,286],{"type":20,"tag":107,"props":273,"children":274},{"style":226},[275],{"type":25,"value":276},"  \"recipient\"",{"type":20,"tag":107,"props":278,"children":279},{"style":217},[280],{"type":25,"value":234},{"type":20,"tag":107,"props":282,"children":283},{"style":237},[284],{"type":25,"value":285},"\"\u003Cuuid>@in.webhookrelay-mail.com\"",{"type":20,"tag":107,"props":287,"children":288},{"style":217},[289],{"type":25,"value":245},{"type":20,"tag":107,"props":291,"children":293},{"class":109,"line":292},5,[294,299,304,308],{"type":20,"tag":107,"props":295,"children":296},{"style":226},[297],{"type":25,"value":298},"  \"to\"",{"type":20,"tag":107,"props":300,"children":301},{"style":217},[302],{"type":25,"value":303},": [",{"type":20,"tag":107,"props":305,"children":306},{"style":237},[307],{"type":25,"value":285},{"type":20,"tag":107,"props":309,"children":310},{"style":217},[311],{"type":25,"value":312},"],\n",{"type":20,"tag":107,"props":314,"children":316},{"class":109,"line":315},6,[317,322],{"type":20,"tag":107,"props":318,"children":319},{"style":226},[320],{"type":25,"value":321},"  \"cc\"",{"type":20,"tag":107,"props":323,"children":324},{"style":217},[325],{"type":25,"value":326},": [],\n",{"type":20,"tag":107,"props":328,"children":330},{"class":109,"line":329},7,[331,336,340,345],{"type":20,"tag":107,"props":332,"children":333},{"style":226},[334],{"type":25,"value":335},"  \"subject\"",{"type":20,"tag":107,"props":337,"children":338},{"style":217},[339],{"type":25,"value":234},{"type":20,"tag":107,"props":341,"children":342},{"style":237},[343],{"type":25,"value":344},"\"Disk usage above 90% on db-01\"",{"type":20,"tag":107,"props":346,"children":347},{"style":217},[348],{"type":25,"value":245},{"type":20,"tag":107,"props":350,"children":352},{"class":109,"line":351},8,[353,358,362,367],{"type":20,"tag":107,"props":354,"children":355},{"style":226},[356],{"type":25,"value":357},"  \"date\"",{"type":20,"tag":107,"props":359,"children":360},{"style":217},[361],{"type":25,"value":234},{"type":20,"tag":107,"props":363,"children":364},{"style":237},[365],{"type":25,"value":366},"\"2026-06-28T11:59:00Z\"",{"type":20,"tag":107,"props":368,"children":369},{"style":217},[370],{"type":25,"value":245},{"type":20,"tag":107,"props":372,"children":374},{"class":109,"line":373},9,[375,380,384,389],{"type":20,"tag":107,"props":376,"children":377},{"style":226},[378],{"type":25,"value":379},"  \"message_id\"",{"type":20,"tag":107,"props":381,"children":382},{"style":217},[383],{"type":25,"value":234},{"type":20,"tag":107,"props":385,"children":386},{"style":237},[387],{"type":25,"value":388},"\"\u003C...>\"",{"type":20,"tag":107,"props":390,"children":391},{"style":217},[392],{"type":25,"value":245},{"type":20,"tag":107,"props":394,"children":396},{"class":109,"line":395},10,[397,402,406,411],{"type":20,"tag":107,"props":398,"children":399},{"style":226},[400],{"type":25,"value":401},"  \"text\"",{"type":20,"tag":107,"props":403,"children":404},{"style":217},[405],{"type":25,"value":234},{"type":20,"tag":107,"props":407,"children":408},{"style":237},[409],{"type":25,"value":410},"\"db-01 root volume is at 92%.\"",{"type":20,"tag":107,"props":412,"children":413},{"style":217},[414],{"type":25,"value":245},{"type":20,"tag":107,"props":416,"children":418},{"class":109,"line":417},11,[419,424,428,433],{"type":20,"tag":107,"props":420,"children":421},{"style":226},[422],{"type":25,"value":423},"  \"html\"",{"type":20,"tag":107,"props":425,"children":426},{"style":217},[427],{"type":25,"value":234},{"type":20,"tag":107,"props":429,"children":430},{"style":237},[431],{"type":25,"value":432},"\"\u003Cp>db-01 root volume is at 92%.\u003C/p>\"",{"type":20,"tag":107,"props":434,"children":435},{"style":217},[436],{"type":25,"value":245},{"type":20,"tag":107,"props":438,"children":440},{"class":109,"line":439},12,[441,446],{"type":20,"tag":107,"props":442,"children":443},{"style":226},[444],{"type":25,"value":445},"  \"headers\"",{"type":20,"tag":107,"props":447,"children":448},{"style":217},[449],{"type":25,"value":450},": {},\n",{"type":20,"tag":107,"props":452,"children":454},{"class":109,"line":453},13,[455,460,464,469],{"type":20,"tag":107,"props":456,"children":457},{"style":226},[458],{"type":25,"value":459},"  \"spf\"",{"type":20,"tag":107,"props":461,"children":462},{"style":217},[463],{"type":25,"value":234},{"type":20,"tag":107,"props":465,"children":466},{"style":237},[467],{"type":25,"value":468},"\"pass\"",{"type":20,"tag":107,"props":470,"children":471},{"style":217},[472],{"type":25,"value":245},{"type":20,"tag":107,"props":474,"children":476},{"class":109,"line":475},14,[477,482,486,490],{"type":20,"tag":107,"props":478,"children":479},{"style":226},[480],{"type":25,"value":481},"  \"dkim\"",{"type":20,"tag":107,"props":483,"children":484},{"style":217},[485],{"type":25,"value":234},{"type":20,"tag":107,"props":487,"children":488},{"style":237},[489],{"type":25,"value":468},{"type":20,"tag":107,"props":491,"children":492},{"style":217},[493],{"type":25,"value":245},{"type":20,"tag":107,"props":495,"children":497},{"class":109,"line":496},15,[498,503,507,511],{"type":20,"tag":107,"props":499,"children":500},{"style":226},[501],{"type":25,"value":502},"  \"dmarc\"",{"type":20,"tag":107,"props":504,"children":505},{"style":217},[506],{"type":25,"value":234},{"type":20,"tag":107,"props":508,"children":509},{"style":237},[510],{"type":25,"value":468},{"type":20,"tag":107,"props":512,"children":513},{"style":217},[514],{"type":25,"value":245},{"type":20,"tag":107,"props":516,"children":518},{"class":109,"line":517},16,[519,524],{"type":20,"tag":107,"props":520,"children":521},{"style":226},[522],{"type":25,"value":523},"  \"attachments\"",{"type":20,"tag":107,"props":525,"children":526},{"style":217},[527],{"type":25,"value":528},": [\n",{"type":20,"tag":107,"props":530,"children":532},{"class":109,"line":531},17,[533,538,543,547,552,557,562,566,571,575,580,584,589,593,598,602,607,611,616,620,625],{"type":20,"tag":107,"props":534,"children":535},{"style":217},[536],{"type":25,"value":537},"    { ",{"type":20,"tag":107,"props":539,"children":540},{"style":226},[541],{"type":25,"value":542},"\"name\"",{"type":20,"tag":107,"props":544,"children":545},{"style":217},[546],{"type":25,"value":234},{"type":20,"tag":107,"props":548,"children":549},{"style":237},[550],{"type":25,"value":551},"\"report.csv\"",{"type":20,"tag":107,"props":553,"children":554},{"style":217},[555],{"type":25,"value":556},", ",{"type":20,"tag":107,"props":558,"children":559},{"style":226},[560],{"type":25,"value":561},"\"content_type\"",{"type":20,"tag":107,"props":563,"children":564},{"style":217},[565],{"type":25,"value":234},{"type":20,"tag":107,"props":567,"children":568},{"style":237},[569],{"type":25,"value":570},"\"text/csv\"",{"type":20,"tag":107,"props":572,"children":573},{"style":217},[574],{"type":25,"value":556},{"type":20,"tag":107,"props":576,"children":577},{"style":226},[578],{"type":25,"value":579},"\"size\"",{"type":20,"tag":107,"props":581,"children":582},{"style":217},[583],{"type":25,"value":234},{"type":20,"tag":107,"props":585,"children":586},{"style":226},[587],{"type":25,"value":588},"1024",{"type":20,"tag":107,"props":590,"children":591},{"style":217},[592],{"type":25,"value":556},{"type":20,"tag":107,"props":594,"children":595},{"style":226},[596],{"type":25,"value":597},"\"content\"",{"type":20,"tag":107,"props":599,"children":600},{"style":217},[601],{"type":25,"value":234},{"type":20,"tag":107,"props":603,"children":604},{"style":237},[605],{"type":25,"value":606},"\"\"",{"type":20,"tag":107,"props":608,"children":609},{"style":217},[610],{"type":25,"value":556},{"type":20,"tag":107,"props":612,"children":613},{"style":226},[614],{"type":25,"value":615},"\"truncated\"",{"type":20,"tag":107,"props":617,"children":618},{"style":217},[619],{"type":25,"value":234},{"type":20,"tag":107,"props":621,"children":622},{"style":226},[623],{"type":25,"value":624},"false",{"type":20,"tag":107,"props":626,"children":627},{"style":217},[628],{"type":25,"value":629}," }\n",{"type":20,"tag":107,"props":631,"children":633},{"class":109,"line":632},18,[634],{"type":20,"tag":107,"props":635,"children":636},{"style":217},[637],{"type":25,"value":638},"  ]\n",{"type":20,"tag":107,"props":640,"children":642},{"class":109,"line":641},19,[643],{"type":20,"tag":107,"props":644,"children":645},{"style":217},[646],{"type":25,"value":647},"}\n",{"type":20,"tag":85,"props":649,"children":651},{"id":650},"step-3-add-the-teams-output",[652],{"type":25,"value":653},"Step 3: Add the Teams output",{"type":20,"tag":21,"props":655,"children":656},{},[657,659,664],{"type":25,"value":658},"Add an output to the bucket and set its destination to your ",{"type":20,"tag":28,"props":660,"children":661},{},[662],{"type":25,"value":663},"Teams Incoming Webhook",{"type":25,"value":665}," URL (created via a Power Automate Workflow, or a legacy Office 365 connector). Keep that URL handy — it's where the transformed message gets delivered.",{"type":20,"tag":85,"props":667,"children":669},{"id":668},"step-4-attach-a-transform",[670],{"type":25,"value":671},"Step 4: Attach a transform",{"type":20,"tag":21,"props":673,"children":674},{},[675,677,683,685,690],{"type":25,"value":676},"Right now the parsed email would be POSTed to Teams as-is, and Teams would reject it because the shape is wrong. Attach a ",{"type":20,"tag":45,"props":678,"children":680},{"href":679},"/docs/webhooks/functions",[681],{"type":25,"value":682},"transform function",{"type":25,"value":684}," to the output to convert the parsed email into a Teams ",{"type":20,"tag":28,"props":686,"children":687},{},[688],{"type":25,"value":689},"MessageCard",{"type":25,"value":691},":",{"type":20,"tag":97,"props":693,"children":697},{"className":694,"code":695,"language":696,"meta":7,"style":7},"language-js shiki shiki-themes github-dark","const email = JSON.parse(r.body);\n\nconst card = {\n  \"@type\": \"MessageCard\",\n  \"@context\": \"https://schema.org/extensions\",\n  summary: email.subject,\n  title: email.subject,\n  text: `**From:** ${email.from_name || email.from}\\n\\n${email.text}`\n};\n\nr.setBody(JSON.stringify(card));\nr.setHeader(\"Content-Type\", \"application/json\");\n","js",[698],{"type":20,"tag":103,"props":699,"children":700},{"__ignoreMap":7},[701,740,749,770,791,812,820,828,904,912,919,956],{"type":20,"tag":107,"props":702,"children":703},{"class":109,"line":110},[704,710,715,720,725,729,735],{"type":20,"tag":107,"props":705,"children":707},{"style":706},"--shiki-default:#F97583",[708],{"type":25,"value":709},"const",{"type":20,"tag":107,"props":711,"children":712},{"style":226},[713],{"type":25,"value":714}," email",{"type":20,"tag":107,"props":716,"children":717},{"style":706},[718],{"type":25,"value":719}," =",{"type":20,"tag":107,"props":721,"children":722},{"style":226},[723],{"type":25,"value":724}," JSON",{"type":20,"tag":107,"props":726,"children":727},{"style":217},[728],{"type":25,"value":146},{"type":20,"tag":107,"props":730,"children":732},{"style":731},"--shiki-default:#B392F0",[733],{"type":25,"value":734},"parse",{"type":20,"tag":107,"props":736,"children":737},{"style":217},[738],{"type":25,"value":739},"(r.body);\n",{"type":20,"tag":107,"props":741,"children":742},{"class":109,"line":119},[743],{"type":20,"tag":107,"props":744,"children":746},{"emptyLinePlaceholder":745},true,[747],{"type":25,"value":748},"\n",{"type":20,"tag":107,"props":750,"children":751},{"class":109,"line":248},[752,756,761,765],{"type":20,"tag":107,"props":753,"children":754},{"style":706},[755],{"type":25,"value":709},{"type":20,"tag":107,"props":757,"children":758},{"style":226},[759],{"type":25,"value":760}," card",{"type":20,"tag":107,"props":762,"children":763},{"style":706},[764],{"type":25,"value":719},{"type":20,"tag":107,"props":766,"children":767},{"style":217},[768],{"type":25,"value":769}," {\n",{"type":20,"tag":107,"props":771,"children":772},{"class":109,"line":270},[773,778,782,787],{"type":20,"tag":107,"props":774,"children":775},{"style":237},[776],{"type":25,"value":777},"  \"@type\"",{"type":20,"tag":107,"props":779,"children":780},{"style":217},[781],{"type":25,"value":234},{"type":20,"tag":107,"props":783,"children":784},{"style":237},[785],{"type":25,"value":786},"\"MessageCard\"",{"type":20,"tag":107,"props":788,"children":789},{"style":217},[790],{"type":25,"value":245},{"type":20,"tag":107,"props":792,"children":793},{"class":109,"line":292},[794,799,803,808],{"type":20,"tag":107,"props":795,"children":796},{"style":237},[797],{"type":25,"value":798},"  \"@context\"",{"type":20,"tag":107,"props":800,"children":801},{"style":217},[802],{"type":25,"value":234},{"type":20,"tag":107,"props":804,"children":805},{"style":237},[806],{"type":25,"value":807},"\"https://schema.org/extensions\"",{"type":20,"tag":107,"props":809,"children":810},{"style":217},[811],{"type":25,"value":245},{"type":20,"tag":107,"props":813,"children":814},{"class":109,"line":315},[815],{"type":20,"tag":107,"props":816,"children":817},{"style":217},[818],{"type":25,"value":819},"  summary: email.subject,\n",{"type":20,"tag":107,"props":821,"children":822},{"class":109,"line":329},[823],{"type":20,"tag":107,"props":824,"children":825},{"style":217},[826],{"type":25,"value":827},"  title: email.subject,\n",{"type":20,"tag":107,"props":829,"children":830},{"class":109,"line":351},[831,836,841,845,849,854,859,863,867,872,877,882,887,891,895,899],{"type":20,"tag":107,"props":832,"children":833},{"style":217},[834],{"type":25,"value":835},"  text: ",{"type":20,"tag":107,"props":837,"children":838},{"style":237},[839],{"type":25,"value":840},"`**From:** ${",{"type":20,"tag":107,"props":842,"children":843},{"style":217},[844],{"type":25,"value":5},{"type":20,"tag":107,"props":846,"children":847},{"style":237},[848],{"type":25,"value":146},{"type":20,"tag":107,"props":850,"children":851},{"style":217},[852],{"type":25,"value":853},"from_name",{"type":20,"tag":107,"props":855,"children":856},{"style":706},[857],{"type":25,"value":858}," ||",{"type":20,"tag":107,"props":860,"children":861},{"style":217},[862],{"type":25,"value":714},{"type":20,"tag":107,"props":864,"children":865},{"style":237},[866],{"type":25,"value":146},{"type":20,"tag":107,"props":868,"children":869},{"style":217},[870],{"type":25,"value":871},"from",{"type":20,"tag":107,"props":873,"children":874},{"style":237},[875],{"type":25,"value":876},"}",{"type":20,"tag":107,"props":878,"children":879},{"style":226},[880],{"type":25,"value":881},"\\n\\n",{"type":20,"tag":107,"props":883,"children":884},{"style":237},[885],{"type":25,"value":886},"${",{"type":20,"tag":107,"props":888,"children":889},{"style":217},[890],{"type":25,"value":5},{"type":20,"tag":107,"props":892,"children":893},{"style":237},[894],{"type":25,"value":146},{"type":20,"tag":107,"props":896,"children":897},{"style":217},[898],{"type":25,"value":25},{"type":20,"tag":107,"props":900,"children":901},{"style":237},[902],{"type":25,"value":903},"}`\n",{"type":20,"tag":107,"props":905,"children":906},{"class":109,"line":373},[907],{"type":20,"tag":107,"props":908,"children":909},{"style":217},[910],{"type":25,"value":911},"};\n",{"type":20,"tag":107,"props":913,"children":914},{"class":109,"line":395},[915],{"type":20,"tag":107,"props":916,"children":917},{"emptyLinePlaceholder":745},[918],{"type":25,"value":748},{"type":20,"tag":107,"props":920,"children":921},{"class":109,"line":417},[922,927,932,937,942,946,951],{"type":20,"tag":107,"props":923,"children":924},{"style":217},[925],{"type":25,"value":926},"r.",{"type":20,"tag":107,"props":928,"children":929},{"style":731},[930],{"type":25,"value":931},"setBody",{"type":20,"tag":107,"props":933,"children":934},{"style":217},[935],{"type":25,"value":936},"(",{"type":20,"tag":107,"props":938,"children":939},{"style":226},[940],{"type":25,"value":941},"JSON",{"type":20,"tag":107,"props":943,"children":944},{"style":217},[945],{"type":25,"value":146},{"type":20,"tag":107,"props":947,"children":948},{"style":731},[949],{"type":25,"value":950},"stringify",{"type":20,"tag":107,"props":952,"children":953},{"style":217},[954],{"type":25,"value":955},"(card));\n",{"type":20,"tag":107,"props":957,"children":958},{"class":109,"line":439},[959,963,968,972,977,981,986],{"type":20,"tag":107,"props":960,"children":961},{"style":217},[962],{"type":25,"value":926},{"type":20,"tag":107,"props":964,"children":965},{"style":731},[966],{"type":25,"value":967},"setHeader",{"type":20,"tag":107,"props":969,"children":970},{"style":217},[971],{"type":25,"value":936},{"type":20,"tag":107,"props":973,"children":974},{"style":237},[975],{"type":25,"value":976},"\"Content-Type\"",{"type":20,"tag":107,"props":978,"children":979},{"style":217},[980],{"type":25,"value":556},{"type":20,"tag":107,"props":982,"children":983},{"style":237},[984],{"type":25,"value":985},"\"application/json\"",{"type":20,"tag":107,"props":987,"children":988},{"style":217},[989],{"type":25,"value":990},");\n",{"type":20,"tag":21,"props":992,"children":993},{},[994,996,1002,1004,1010,1012,1018,1020,1026,1028,1034],{"type":25,"value":995},"The function reads ",{"type":20,"tag":103,"props":997,"children":999},{"className":998},[],[1000],{"type":25,"value":1001},"r.body",{"type":25,"value":1003}," (the parsed-email JSON string), pulls out the subject, sender and body, and writes a MessageCard back with ",{"type":20,"tag":103,"props":1005,"children":1007},{"className":1006},[],[1008],{"type":25,"value":1009},"r.setBody()",{"type":25,"value":1011},". Setting ",{"type":20,"tag":103,"props":1013,"children":1015},{"className":1014},[],[1016],{"type":25,"value":1017},"Content-Type: application/json",{"type":25,"value":1019}," with ",{"type":20,"tag":103,"props":1021,"children":1023},{"className":1022},[],[1024],{"type":25,"value":1025},"r.setHeader()",{"type":25,"value":1027}," ensures Teams accepts it. You can also call ",{"type":20,"tag":103,"props":1029,"children":1031},{"className":1030},[],[1032],{"type":25,"value":1033},"r.setResponseStatus()",{"type":25,"value":1035}," if you need to control the response returned to the sender.",{"type":20,"tag":21,"props":1037,"children":1038},{},[1039,1044,1046,1051,1053,1059,1061,1067],{"type":20,"tag":28,"props":1040,"children":1041},{},[1042],{"type":25,"value":1043},"A note on Adaptive Cards.",{"type":25,"value":1045}," Microsoft is migrating Incoming Webhooks away from Office 365 connectors toward Power Automate Workflows, where the modern format is an ",{"type":20,"tag":28,"props":1047,"children":1048},{},[1049],{"type":25,"value":1050},"Adaptive Card",{"type":25,"value":1052}," wrapped in an ",{"type":20,"tag":103,"props":1054,"children":1056},{"className":1055},[],[1057],{"type":25,"value":1058},"attachments",{"type":25,"value":1060}," array. The pattern is identical — parse the email, build the card object, ",{"type":20,"tag":103,"props":1062,"children":1064},{"className":1063},[],[1065],{"type":25,"value":1066},"r.setBody(JSON.stringify(...))",{"type":25,"value":1068}," — only the JSON shape differs to match whichever URL you were given.",{"type":20,"tag":85,"props":1070,"children":1072},{"id":1071},"step-5-test-it",[1073],{"type":25,"value":1074},"Step 5: Test it",{"type":20,"tag":21,"props":1076,"children":1077},{},[1078,1080,1086],{"type":25,"value":1079},"Send a plain email to your ",{"type":20,"tag":103,"props":1081,"children":1083},{"className":1082},[],[1084],{"type":25,"value":1085},"\u003Cuuid>@in.webhookrelay-mail.com",{"type":25,"value":1087}," address. Within a second or two the subject and body appear as a card in your Teams channel. If nothing shows up, open the request log in your dashboard to see exactly what was received, transformed, and delivered.",{"type":20,"tag":85,"props":1089,"children":1091},{"id":1090},"wrapping-up",[1092],{"type":25,"value":1093},"Wrapping up",{"type":20,"tag":21,"props":1095,"children":1096},{},[1097,1099,1103,1105,1110],{"type":25,"value":1098},"That's a complete email-to-Teams bridge: an email input parses each message, a transform reshapes it into a Teams card, and the output delivers it — all in the cloud with nothing to host. The same building blocks cover any destination; see ",{"type":20,"tag":45,"props":1100,"children":1101},{"href":133},[1102],{"type":25,"value":136},{"type":25,"value":1104}," for the broader pattern and the ",{"type":20,"tag":45,"props":1106,"children":1107},{"href":78},[1108],{"type":25,"value":1109},"formatter",{"type":25,"value":1111}," to template your card without writing code by hand.",{"type":20,"tag":1113,"props":1114,"children":1115},"style",{},[1116],{"type":25,"value":1117},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":248,"depth":248,"links":1119},[1120,1121,1122,1123,1124,1125,1126],{"id":87,"depth":119,"text":90},{"id":149,"depth":119,"text":152},{"id":160,"depth":119,"text":163},{"id":650,"depth":119,"text":653},{"id":668,"depth":119,"text":671},{"id":1071,"depth":119,"text":1074},{"id":1090,"depth":119,"text":1093},"markdown","content:docs:tutorials:email:microsoft-teams.md","content","docs/tutorials/email/microsoft-teams.md","docs/tutorials/email/microsoft-teams","md",{"loc":4},[1135,1138,1141,1144,1147,1150,1153,1156],{"_path":1136,"title":1137},"/docs/installation/cli","CLI",{"_path":1139,"title":1140},"/docs/installation/docker","Docker container",{"_path":1142,"title":1143},"/docs/installation/docker-compose","Docker Compose",{"_path":1145,"title":1146},"/docs/installation/kubernetes","Kubernetes",{"_path":1148,"title":1149},"/docs/installation/autostart-windows","Autostart (Windows)",{"_path":1151,"title":1152},"/docs/installation/autostart-linux","Autostart (Linux)",{"_path":1154,"title":1155},"/docs/installation/autostart-macos","Autostart (MacOS)",{"_path":1157,"title":1158},"/docs/installation/behind-proxy","HTTP proxy configuration",[1160],{"_path":1161,"title":1162},"/docs/webhooks/internal/localhost","Receiving webhooks on localhost",[1164,1167],{"_path":1165,"title":1166},"/docs/webhooks/public/public-destination","Forward to public URL",{"_path":1168,"title":1169},"/docs/webhooks/public/multiple-destination-urls","Multiple destinations",[1171,1174,1177,1180],{"_path":1172,"title":1173},"/docs/webhooks/auth/username-password","Username and password",{"_path":1175,"title":1176},"/docs/webhooks/auth/hmac","HMAC",{"_path":1178,"title":1179},"/docs/webhooks/auth/jwt","JWT authentication",{"_path":1181,"title":1182},"/docs/webhooks/auth/http-method","Auth using request method",[1184],{"_path":1185,"title":1186},"/docs/webhooks/cron/using-cron-webhooks","Schedule recurring webhooks",[1188,1191,1194,1197,1200,1203,1206],{"_path":1189,"title":1190},"/docs/service-connections","Service Connections",{"_path":1192,"title":1193},"/docs/service-connections/aws_s3","AWS S3",{"_path":1195,"title":1196},"/docs/service-connections/aws_sns","AWS SNS",{"_path":1198,"title":1199},"/docs/service-connections/aws_sqs","AWS SQS",{"_path":1201,"title":1202},"/docs/service-connections/azure","Azure",{"_path":1204,"title":1205},"/docs/service-connections/gcp_gcs","GCP Cloud Storage",{"_path":1207,"title":1208},"/docs/service-connections/gcp_pubsub","GCP Pub/Sub",[1210,1212,1214,1217],{"_path":141,"title":1211},"Receive emails as webhooks",{"_path":197,"title":1213},"Email webhook payload",{"_path":1215,"title":1216},"/docs/email/filtering-and-policy","Sender filtering & policy",{"_path":1218,"title":1219},"/docs/email/cli","Create & poll email addresses from the CLI",[1221,1224],{"_path":1222,"title":1223},"/docs/tunnels/demoing-your-website","Demoing your website",{"_path":1225,"title":1226},"/docs/tunnels/regions","Regions",[1228,1231,1234,1237],{"_path":1229,"title":1230},"/docs/account/account-management","Account management",{"_path":1232,"title":1233},"/docs/account/mfa","Multi-factor authentication (MFA)",{"_path":1235,"title":1236},"/docs/account/team","Teams and sub-accounts",{"_path":1238,"title":1239},"/docs/account/billing-and-subscriptions","Billing & subscriptions",[1241,1244,1247],{"_path":1242,"title":1243},"/docs/tutorials/n8n/email-trigger","n8n Email Trigger (Inbound Email)",{"_path":1245,"title":1246},"/docs/tutorials/n8n/webhook-trigger","n8n Webhook Trigger (No Public IP)",{"_path":1248,"title":1249},"/docs/tutorials/n8n/whatsapp-cloud-api-webhook","n8n WhatsApp Cloud API Webhook Setup",[1251,1254,1257,1260,1263,1266,1269],{"_path":1252,"title":1253},"/docs/tutorials/cicd/jenkins-bitbucket","Jenkins and Bitbucket",{"_path":1255,"title":1256},"/docs/tutorials/cicd/jenkins-github","Jenkins and GitHub",{"_path":1258,"title":1259},"/docs/tutorials/cicd/jenkins-plugin","Jenkins Plugin",{"_path":1261,"title":1262},"/docs/tutorials/cicd/jenkins-plugin-multibranch","Jenkins Multibranch Pipelines",{"_path":1264,"title":1265},"/docs/tutorials/cicd/kubernetes-operator","Kubernetes Operator",{"_path":1267,"title":1268},"/docs/tutorials/cicd/terraform-atlantis","Terraform Atlantis",{"_path":1270,"title":1271},"/docs/tutorials/cicd/webhook-exec","Execute scripts on webhook",[1273,1276,1279,1282,1285,1288,1289,1292],{"_path":1274,"title":1275},"/docs/tutorials/email/airtable","Email to Airtable",{"_path":1277,"title":1278},"/docs/tutorials/email/api","Email to API",{"_path":1280,"title":1281},"/docs/tutorials/email/database","Email to Database",{"_path":1283,"title":1284},"/docs/tutorials/email/discord","Email to Discord",{"_path":1286,"title":1287},"/docs/tutorials/email/google-sheets","Email to Google Sheets",{"_path":4,"title":8},{"_path":1290,"title":1291},"/docs/tutorials/email/notion","Email to Notion",{"_path":1293,"title":1294},"/docs/tutorials/email/slack","Email to Slack",[1296],{"_path":1297,"title":1298},"/docs/tutorials/warehouse/bigquery","GCP BigQuery",[1300,1303,1306],{"_path":1301,"title":1302},"/docs/tutorials/edge/home-assistant","Home Assistant",{"_path":1304,"title":1305},"/docs/tutorials/edge/javascript-app","JavaScript app",{"_path":1307,"title":1308},"/docs/tutorials/edge/node-red","Node-RED",[1310,1313],{"_path":1311,"title":1312},"/docs/tutorials/transform/docker-to-slack","DockerHub webhook to Slack notification",{"_path":1314,"title":1315},"/docs/tutorials/transform/enrich-webhooks","Enrich webhooks from APIs",[1317,1320,1323,1326,1329,1332,1335,1338,1341,1344,1346,1349,1352,1355],{"_path":1318,"title":1319},"/docs/webhooks/functions/manipulating-json","JSON encoding",{"_path":1321,"title":1322},"/docs/webhooks/functions/make-http-request","Make HTTP request",{"_path":1324,"title":1325},"/docs/webhooks/functions/modify-request","Read, write request data",{"_path":1327,"title":1328},"/docs/webhooks/functions/multipart-form-data","Multipart form to JSON",{"_path":1330,"title":1331},"/docs/webhooks/functions/url-encoded-data","URL Encoded Form",{"_path":1333,"title":1334},"/docs/webhooks/functions/working-with-time","Working with time",{"_path":1336,"title":1337},"/docs/webhooks/functions/send-emails","Sending emails",{"_path":1339,"title":1340},"/docs/webhooks/functions/crypto-functions","Base64, encryption",{"_path":1342,"title":1343},"/docs/webhooks/functions/integrate-into-cicd","Integrating into CI/CD",{"_path":1345,"title":1298},"/docs/webhooks/functions/big-query",{"_path":1347,"title":1348},"/docs/webhooks/functions/accessing-metadata","Accessing metadata",{"_path":1350,"title":1351},"/docs/webhooks/functions/response-functions","Response (post-delivery) functions",{"_path":1353,"title":1354},"/docs/webhooks/functions/alerting","Alerting from functions",{"_path":679,"title":1356},"Functions",1786379804575]