If you’re new to Unstructured, read this note first.Before you can create a source connector, you must first sign in to your Unstructured account:After you sign in, the Unstructured user interface (UI) appears, which you use to get your Unstructured API key, as follows:
  1. After you sign in to your Unstructured Starter account, click API Keys on the sidebar.
    For a Team or Enterprise account, before you click API Keys, make sure you have selected the organizational workspace you want to create an API key for. Each API key works with one and only one organizational workspace. Learn more.
  2. Click Generate API Key.
  3. Follow the on-screen instructions to finish generating the key.
  4. Click the Copy icon next to your new key to add the key to your system’s clipboard. If you lose this key, simply return and click the Copy icon again.
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, email Unstructured Support at support@unstructured.io.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

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="outlook",
                config={
                    "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.