New to Kestra?
Use blueprints to kickstart your first workflows.
Orchestrate automated document ingestion, chunking, embedding generation, Qdrant vector store indexing, and Slack operational status alerts in Kestra.
In modern Retrieval-Augmented Generation (RAG) applications, keeping vector databases synchronized with fresh documentation and catalog data is critical. Manual indexing pipelines are error-prone, hard to observe, and often fail silently when APIs throttle or upstream document schemas change.
This blueprint automates an end-to-end RAG ingestion pipeline: it downloads incoming enterprise documents, extracts and chunks raw text, computes dense embeddings, indexes vectors into a Qdrant collection, and sends an operational status summary to Slack.
download_document (io.kestra.plugin.core.http.Request): Downloads the latest raw enterprise document or CSV dataset from source storage.generate_embeddings_and_index (io.kestra.plugin.scripts.python.Script): Runs a containerized Python worker that chunks the payload, computes vector embeddings, and connects to the Qdrant vector database to upsert points with metadata payloads.check_and_notify (io.kestra.plugin.core.flow.If): Validates successful document retrieval and invokes notify_slack_success (io.kestra.plugin.slack.notifications.SlackIncomingWebhook) to dispatch a rich execution notification to the team Slack channel with indexed document counts and target collection status.alert_on_failure (errors block): Triggers immediately if any step in the pipeline fails, dispatching an incident alert with the execution ID to Slack.qdrant-client, requests).Building reliable AI pipelines requires coordinating HTTP requests, containerized Python ML runtimes, vector database APIs, and enterprise notification systems. Kestra coordinates this multi-step workflow without dedicated infrastructure, provides built-in secrets management for API credentials, and handles retries, triggers, and comprehensive monitoring out of the box.
SLACK_WEBHOOK_URL: Slack Incoming Webhook endpoint for workflow alerts.QDRANT_API_KEY: API key for authentication with your Qdrant cluster (if secured).QDRANT_URL: URL of your Qdrant vector database instance (e.g., https://your-cluster.qdrant.tech:6333).SLACK_WEBHOOK_URL secret in your Kestra namespace.QDRANT_URL and QDRANT_API_KEY secrets if connecting to an external Qdrant instance.schedule_sync trigger cron expression to match your organization's document refresh cadence.io.kestra.plugin.aws.s3.Download) or Google Cloud Storage (io.kestra.plugin.gcp.gcs.Download) for private bucket ingestion.io.kestra.plugin.openai) or Hugging Face embedding endpoints for production model inference.