MailDeltaFetch
Summary
Combines Microsoft Graph delta tracking with full message retrieval so clients receive every new or updated mail (including body content) since their last stored delta token.
createdDateTimeis returned for each message so consumers can quickly separate brand-new items from updates to existing ones.
Graph Endpoint
GET /me/messages/deltaGET /me/messages/{id}
Parameters
Required
mailDelta: string— Delta token from a priorMailDeltaFetchorMailInitDeltacall. Use this to resume change tracking.
Optional
deltaLink: string— Legacy alias formailDelta. Only one ofmailDeltaordeltaLinkis needed.folder: string— Folder ID or well-known name (e.g.,Inbox). Used when starting without a token or when the token becomes invalid.
Usage (app.businessFunction)
Minimal
app.businessFunction({
functionName: 'MicrosoftGraph',
methodName: 'Mail',
operation: 'DeltaFetch',
parameters: {
mailDelta: storedToken
}
})With options
app.businessFunction({
functionName: 'MicrosoftGraph',
methodName: 'Mail',
operation: 'DeltaFetch',
parameters: {
mailDelta: storedToken,
folder: 'Inbox'
}
})Response
Returns the full messages (same shape as
MailGet) plus the next delta token to persist for the following call.
{
"items": [
{
"id": "AAMkAGVmM...",
"subject": "Quarterly report",
"from": {
"name": "Finance",
"address": "finance@contoso.com"
},
"toRecipients": [
{
"name": "Me",
"address": "me@contoso.com"
}
],
"receivedDateTime": "2025-01-16T08:22:11Z",
"createdDateTime": "2025-01-16T08:22:08Z",
"isRead": false,
"body": {
"contentType": "HTML",
"content": "<p>Attached you will find...</p>"
},
"webLink": "https://outlook.office.com/mail/inbox/id/AAMk..."
}
],
"deltaLink": "https://graph.microsoft.com/v1.0/me/messages/delta?$deltatoken=..."
}Notes
Use
MailInitDeltato bootstrap the firstmailDeltatoken. Afterwards, persist thedeltaLinkreturned by eachMailDeltaFetch.Messages marked as removed by Microsoft Graph are skipped; clients should continue to rely on
MailDeltaif they need delete notifications.If the delta token is expired or invalid, the operation throws a friendly error so callers can fall back to
MailInitDelta.createdDateTimestays constant for the lifetime of a message, allowing consumers to ignore older mails that were only modified (e.g., read/unread changes) while still upserting updates where needed.
Last updated
Was this helpful?