If you’re new to Unstructured, read this note first.

Before you can create a source connector, you must first sign up for Unstructured and get your Unstructured API key. After you sign up, the Unstructured user interface (UI) appears, which you use to get the key. To learn how, watch this 40-second how-to video.

After you create the source connector, add it along with a destination connector to a workflow. Then run the worklow as a job. To learn how, try out the hands-on Workflow Endpoint quickstart, go directly to the quickstart notebook, or watch the two 4-minute video tutorials for the Unstructured Python SDK.

You can also create source connectors with the Unstructured user interface (UI). Learn how.

If you need help, reach out to the community on Slack, or contact us directly.

You are now ready to start creating a source connector! Keep reading to learn how.

Ingest your files into Unstructured from Outlook.

The requirements are as follows.

  • The Outlook user’s email address.

  • A Microsoft Entra ID app registration in the same Azure account as the Outlook account. You will need this app registration’s application (client) ID, client secret, and directory (tenant) ID. Learn how.

  • The Entra ID app registration must have the following Graph API permission levels of the application (not delegated) type:

    • Mail.Read
    • Mail.ReadBasic
    • User.Read.All

    Learn how.

To create an Outlook source connector, see the following examples.

import os

from unstructured_client import UnstructuredClient
from unstructured_client.models.operations import CreateSourceRequest
from unstructured_client.models.shared import (
    CreateSourceConnector,
    SourceConnectorType,
    OutlookSourceConnectorConfigInput
)

with UnstructuredClient(api_key_auth=os.getenv("UNSTRUCTURED_API_KEY")) as client:
    response = client.sources.create_source(
        request=CreateSourceRequest(
            create_source_connector=CreateSourceConnector(
                name="<name>",
                type=SourceConnectorType.OUTLOOK,
                config=OutlookSourceConnectorConfigInput(
                    client_id="<client-id>",
                    authority_url="<authority-url>",
                    tenant="<tenant>",
                    client_cred="<client-cred>",
                    user_email="<user-email>",
                    outlook_folders=["<folder-name>","<folder-name>"],
                    recursive=<True|False>
                )
            )
        )
    )

    print(response.source_connector_information)

Replace the preceding placeholders as follows:

  • <name> (required) - A unique name for this connector.
  • <client-id> (required) - The application (client) ID of the Microsoft Entra ID app registration that has access to the Outlook account.
  • <authority-url> - The authentication token provider URL for the Entra ID app registration. The default is https://login.microsoftonline.com if not otherwise specified.
  • <tenant> (required) - The directory (tenant) ID of the Entra ID app registration.
  • <client-cred> (required) - The client secret for the Entra ID app registration.
  • <user-email> (required) - The user’s email address for the target Outlook account.
  • outlook_folders is a required array of strings, with each <folder-name> specifying the name of a folder to access, for example: ["Inbox","Sent"]. Do not specify any subfolder names.
  • For recursive (source connector only), set to true to access any and all subfolders within each of the specified top-level folders. The default is false if not otherwise specified.