Skip to main content
Microsoft Outlook logo

Overview

Add Microsoft Outlook to any ModuleX agent or workflow. Send, draft, search, and organize email; manage contacts, folders, and categories in Microsoft Outlook via Microsoft Graph (graph.microsoft.com/v1.0). Uses delegated permissions on behalf of an authenticated Microsoft 365 user.
Categories: Communication · Email · Productivity · Communication · Microsoft · Auth: OAuth2 · Actions: 20

Authentication

OAuth2 Authentication

Connect with your Microsoft account using OAuth 2.0 against the Microsoft identity platform.
1

Step 1

Register an application at https://entra.microsoft.com (Azure AD > App registrations)
2

Step 2

Under ‘Authentication’, add the redirect URI: https://api.modulex.dev/credentials/oauth2/callback
3

Step 3

Under ‘API permissions’, add Microsoft Graph delegated permissions: Mail.ReadWrite, Mail.Send, MailboxSettings.Read, Contacts.ReadWrite, User.Read, User.ReadBasic.All, offline_access
4

Step 4

Under ‘Certificates & secrets’, create a new client secret
5

Step 5

Copy the Application (client) ID and the client secret into ModuleX

Required Credentials

FieldDescriptionRequiredFormat
Client IDMicrosoft Entra Application (client) ID for the Microsoft Graph app.Yes00000000-0000-0000-0000-000000000000
Client SecretMicrosoft Entra client secret for the Microsoft Graph app.Yes-

OAuth Configuration

  • Authorization URL: https://login.microsoftonline.com/common/oauth2/v2.0/authorize
  • Token URL: https://login.microsoftonline.com/common/oauth2/v2.0/token
  • Scopes: offline_access, User.Read, User.ReadBasic.All, Mail.ReadWrite, Mail.Send, MailboxSettings.Read, Contacts.ReadWrite

Available Actions

Parameters

message_id
string
required
The identifier of the message to update.
label
string
required
The name of the label/category to add.
user_id
string
The User ID of a shared mailbox. If not provided, defaults to the authenticated user’s mailbox.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Id"
    },
    "subject": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Subject"
    },
    "categories": {
      "items": {
        "type": "string"
      },
      "title": "Categories",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "AddLabelToEmailOutput",
  "type": "object"
}

Parameters

recipients
array
required
Array of recipient email addresses.
subject
string
required
Subject of the approval email.
resume_url
string
required
URL the recipient clicks to approve / resume the workflow.
cancel_url
string
required
URL the recipient clicks to cancel the workflow.
user_id
string
The User ID of a shared mailbox. If not provided, defaults to the authenticated user’s mailbox.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "sent": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sent"
    }
  },
  "required": [
    "success"
  ],
  "title": "ApproveWorkflowOutput",
  "type": "object"
}

Parameters

given_name
string
Given name of the contact.
surname
string
Surname of the contact.
email_addresses
array
Email addresses for the contact (list of strings).
business_phones
array
Array of phone numbers (list of strings).
expand
object
Additional contact details to merge into the request body. See https://docs.microsoft.com/en-us/graph/api/resources/contact

Response

{
  "$defs": {
    "ContactSummary": {
      "additionalProperties": false,
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "displayName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Displayname"
        },
        "givenName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Givenname"
        },
        "surname": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Surname"
        },
        "emailAddresses": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Emailaddresses",
          "type": "array"
        },
        "businessPhones": {
          "items": {
            "type": "string"
          },
          "title": "Businessphones",
          "type": "array"
        }
      },
      "title": "ContactSummary",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "contact": {
      "anyOf": [
        {
          "$ref": "#/$defs/ContactSummary"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "success"
  ],
  "title": "CreateContactOutput",
  "type": "object"
}

Parameters

recipients
array
Array of TO recipient email addresses (list of strings).
cc_recipients
array
Array of CC recipient email addresses (list of strings).
bcc_recipients
array
Array of BCC recipient email addresses (list of strings).
subject
string
Subject of the email.
content_type
string
Content type of the body. Valid values: text, html. (Default: text)
content
string
Body content of the email in text or HTML.
file_urls
array
Array of file URLs to fetch and attach to the message (list of strings).
expand
object
Additional Message resource fields merged into the request. See https://docs.microsoft.com/en-us/graph/api/resources/message
user_id
string
The User ID of a shared mailbox. If not provided, defaults to the authenticated user’s mailbox.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Id"
    },
    "subject": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Subject"
    },
    "isDraft": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Isdraft"
    },
    "webLink": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Weblink"
    }
  },
  "required": [
    "success"
  ],
  "title": "CreateDraftEmailOutput",
  "type": "object"
}

Parameters

message_id
string
required
The identifier of the message to reply to.
comment
string
Content of the reply in text format.
recipients
array
Array of TO recipient email addresses to override on the draft (list of strings).
cc_recipients
array
Array of CC recipient email addresses (list of strings).
bcc_recipients
array
Array of BCC recipient email addresses (list of strings).
subject
string
Subject override for the reply.
file_urls
array
Array of file URLs to attach to the reply (list of strings).
expand
object
Additional Message resource fields merged into the message body.
user_id
string
The User ID of a shared mailbox.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Id"
    },
    "subject": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Subject"
    },
    "isDraft": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Isdraft"
    }
  },
  "required": [
    "success"
  ],
  "title": "CreateDraftReplyOutput",
  "type": "object"
}

Parameters

message_id
string
required
The identifier of the message containing the attachment.
attachment_id
string
required
The identifier of the attachment to download.
user_id
string
The User ID of a shared mailbox.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "content_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Content Type"
    },
    "size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Size"
    },
    "content_bytes_base64": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Content Bytes Base64"
    }
  },
  "required": [
    "success"
  ],
  "title": "DownloadAttachmentOutput",
  "type": "object"
}

Parameters

search_string
string
required
Provide email address, given name, surname, or display name (case sensitive).
max_results
integer
The maximum number of results to return. (Default: 100)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "count": {
      "default": 0,
      "title": "Count",
      "type": "integer"
    },
    "contacts": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Contacts",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "FindContactsOutput",
  "type": "object"
}

Parameters

Search query. Can use property syntax like “to:example@example.com” or “subject:example”. Not for use with filter or order_by.
filter
string
OData $filter expression, e.g. contains(subject, ‘meet for lunch?’). Not for use with search.
order_by
string
OData $orderby expression, e.g. receivedDateTime desc. Not for use with search.
max_results
integer
Maximum number of messages to return. (Default: 100)
include_attachments
boolean
If true, expands attachments on each returned message. (Default: false)
select
string
Comma-separated message property names to return (e.g. id,subject,from,receivedDateTime). Shrinks payload size.
user_id
string
The User ID of a shared mailbox.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "count": {
      "default": 0,
      "title": "Count",
      "type": "integer"
    },
    "messages": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Messages",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "FindEmailOutput",
  "type": "object"
}

Parameters

user_id
string
required
The user ID owning the shared folder.
shared_folder_id
string
required
The ID of the shared folder to search.
search
string
Search query. Not for use with filter or order_by.
filter
string
OData $filter expression.
order_by
string
OData $orderby expression.
max_results
integer
Maximum number of messages to return. (Default: 100)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "count": {
      "default": 0,
      "title": "Count",
      "type": "integer"
    },
    "messages": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Messages",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "FindSharedFolderEmailOutput",
  "type": "object"
}

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Id"
    },
    "displayName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Displayname"
    },
    "mail": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Mail"
    },
    "userPrincipalName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Userprincipalname"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetCurrentUserOutput",
  "type": "object"
}

Parameters

message_id
string
required
The Microsoft Graph message ID.
include_attachments
boolean
If true, expands attachments on the returned message. (Default: false)
user_id
string
The User ID of a shared mailbox.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "message": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Message"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetMessageOutput",
  "type": "object"
}

Parameters

filter_address
string
If provided, only contacts with the given email address will be retrieved.
max_results
integer
Maximum number of contacts to return. (Default: 100)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "count": {
      "default": 0,
      "title": "Count",
      "type": "integer"
    },
    "contacts": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Contacts",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "ListContactsOutput",
  "type": "object"
}

Parameters

max_results
integer
Maximum number of folders to return. (Default: 100)
include_subfolders
boolean
If true, recursively include subfolders. (Default: false)
include_hidden_folders
boolean
If true, include hidden folders. (Default: false)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "count": {
      "default": 0,
      "title": "Count",
      "type": "integer"
    },
    "folders": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Folders",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "ListFoldersOutput",
  "type": "object"
}

Parameters

max_results
integer
Maximum number of messages to return. (Default: 100)
user_id
string
The User ID of a shared mailbox.

Response

{
  "$defs": {
    "ImportantMailItem": {
      "additionalProperties": false,
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "subject": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Subject"
        },
        "sender": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sender"
        },
        "receivedDateTime": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Receiveddatetime"
        }
      },
      "title": "ImportantMailItem",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "count": {
      "default": 0,
      "title": "Count",
      "type": "integer"
    },
    "data": {
      "items": {
        "$ref": "#/$defs/ImportantMailItem"
      },
      "title": "Data",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "ListImportantMailOutput",
  "type": "object"
}

Parameters

user_id
string
The User ID of a shared mailbox.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "count": {
      "default": 0,
      "title": "Count",
      "type": "integer"
    },
    "labels": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Labels",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "ListLabelsOutput",
  "type": "object"
}

Parameters

message_id
string
required
The identifier of the message to move.
folder_id
string
required
The identifier of the destination folder.
user_id
string
The User ID of a shared mailbox.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Id"
    },
    "parentFolderId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Parentfolderid"
    }
  },
  "required": [
    "success"
  ],
  "title": "MoveEmailToFolderOutput",
  "type": "object"
}

Parameters

message_id
string
required
The identifier of the message to update.
label
string
required
The name of the label/category to remove.
user_id
string
The User ID of a shared mailbox.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Id"
    },
    "categories": {
      "items": {
        "type": "string"
      },
      "title": "Categories",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "RemoveLabelFromEmailOutput",
  "type": "object"
}

Parameters

message_id
string
required
The identifier of the message to reply to.
comment
string
Content of the reply in text format.
recipients
array
Optional override for TO recipients (list of strings).
cc_recipients
array
CC recipient email addresses (list of strings).
bcc_recipients
array
BCC recipient email addresses (list of strings).
subject
string
Optional subject override.
file_urls
array
Array of file URLs to attach (list of strings).
expand
object
Additional Message resource fields merged into the reply body.
user_id
string
The User ID of a shared mailbox.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "sent": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sent"
    }
  },
  "required": [
    "success"
  ],
  "title": "ReplyToEmailOutput",
  "type": "object"
}

Parameters

recipients
array
TO recipient email addresses (list of strings).
cc_recipients
array
CC recipient email addresses (list of strings).
bcc_recipients
array
BCC recipient email addresses (list of strings).
subject
string
Subject of the email.
content_type
string
Content type of the body. Valid values: text, html. (Default: text)
content
string
Body content of the email.
file_urls
array
Array of file URLs to fetch and attach (list of strings).
expand
object
Additional Message resource fields merged into the request.
user_id
string
The User ID of a shared mailbox.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "sent": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sent"
    }
  },
  "required": [
    "success"
  ],
  "title": "SendEmailOutput",
  "type": "object"
}

Parameters

contact_id
string
required
The ID of the contact to update.
given_name
string
Given name of the contact.
surname
string
Surname of the contact.
email_addresses
array
Replacement email addresses for the contact (list of strings).
business_phones
array
Replacement phone numbers (list of strings).
expand
object
Additional contact fields merged into the request body.

Response

{
  "$defs": {
    "ContactSummary": {
      "additionalProperties": false,
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "displayName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Displayname"
        },
        "givenName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Givenname"
        },
        "surname": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Surname"
        },
        "emailAddresses": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Emailaddresses",
          "type": "array"
        },
        "businessPhones": {
          "items": {
            "type": "string"
          },
          "title": "Businessphones",
          "type": "array"
        }
      },
      "title": "ContactSummary",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "contact": {
      "anyOf": [
        {
          "$ref": "#/$defs/ContactSummary"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "success"
  ],
  "title": "UpdateContactOutput",
  "type": "object"
}

Limits & Quotas

  • Microsoft Graph throttles per-app and per-mailbox. Mail endpoints allow approximately 10,000 requests per 10 minutes per app per mailbox; consult Microsoft’s throttling guidance for exact tiers.
  • Search uses Microsoft Graph KQL semantics; combining search with filter or order_by is rejected by Microsoft Graph and short-circuited locally with a success=False error.
  • Attachments are accepted as URLs only; the integration fetches each URL and base64-encodes the bytes for Microsoft Graph’s fileAttachment payload. download_attachment returns base64-encoded bytes rather than writing files to disk.
  • The approve_workflow action does not internally suspend a workflow; the caller must supply both resume_url and cancel_url. The action only sends the approval email.
  • Error model: non-2xx responses are caught and returned as success=False + error; the calling agent can retry or surface the error.

Gmail

AgentMail

Mailgun