VOOZH about

URL: https://thenewstack.io/amazon-bedrock-data-automation/

⇱ Template-based data extraction is dead. Here's what comes next. - The New Stack


TNS
SUBSCRIBE
Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.
REQUIRED
It seems that you've previously unsubscribed from our newsletter in the past. Click the button below to open the re-subscribe form in a new tab. When you're done, simply close that tab and continue with this form to complete your subscription.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.
Welcome and thank you for joining The New Stack community!
Please answer a few simple questions to help us deliver the news and resources you are interested in.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Great to meet you!
Tell us a bit about your job so we can cover the topics you find most relevant.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Welcome!

We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.

What’s next?

Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.

Follow TNS on your favorite social media networks.

Become a TNS follower on LinkedIn.

Check out the latest featured and trending stories while you wait for your first TNS newsletter.

PREV
1 of 2
NEXT
VOXPOP
As a JavaScript developer, what non-React tools do you use most often?
Angular
0%
Astro
0%
Svelte
0%
Vue.js
0%
Other
0%
I only use React
0%
I don't use JavaScript
0%
Thanks for your opinion! Subscribe below to get the final results, published exclusively in our TNS Update newsletter:
NEW! Try Stackie AI
From clobbered drafts to real-time sync
Apr 14th 2026 10:00am, by David Moore
TypeScript 6.0 RC arrives as a bridge to a faster future
Mar 14th 2026 9:00am, by Darryl K. Taft
Mastra empowers web devs to build AI agents in TypeScript
Jan 28th 2026 11:00am, by Loraine Lawson
2026-06-25 12:00:00
Template-based data extraction is dead. Here's what comes next.
sponsor-andela,sponsored-post-contributed,
AI Infrastructure / Cloud Services / Data

Template-based data extraction is dead. Here’s what comes next.

Amazon Bedrock Data Automation turns messy PDFs and media into structured data using foundation models — no brittle templates required.
Jun 25th, 2026 12:00pm by Hafiz Hassan
👁 Featued image for: Template-based data extraction is dead. Here’s what comes next.
Getty Images for Unsplash+
Andela sponsored this post.

Modern businesses are in a constant, uphill battle against what to do with unstructured data: PDFs, contracts, scanned images, customer call recordings, meeting videos, and more. Traditional document automation workflows that rely heavily on template-based extraction or rigid rules used to make sense. But document formats have changed; they’re diverse and don’t fit standard formats, making costly, brittle, traditional systems a relic of the past. 

“Modern businesses are in a constant, uphill battle against what to do with unstructured data.”

Enterprises demand faster, more accurate processing, which raises the question: How can we reliably turn messy, multimodal content into structured, actionable insights without a mountain of manual effort?

That’s where Amazon Bedrock Data Automation (BDA) comes in.

What is Amazon Bedrock Data Automation (BDA)?

Amazon Bedrock Data Automation (BDA) is a generative AI-powered, fully managed service on Amazon Web Services for end-to-end document and media automation. It enables users to automate the extraction, classification, and transformation of unstructured content across modalities such as documents, images, audio, and video.

“At its core are Foundation models which enable intelligent extraction and understanding of content.”

At its core are Foundation models (FMs) which enable intelligent extraction and understanding of content. It allows users to configure standard output for common use cases, or even define custom extraction logic using blueprints tailored to your business. BDA is designed for scalability, accuracy, and auditability, making it ideal for enterprise workflows.

Walk-through: creating a project, standard output & custom output using blueprints

1. Create a project via console

In the Amazon Bedrock Console, navigate to Data AutomationCreate Project.

👁 The Data Automation → Create Project interface in Amazon Bedrock.

Enter the name of the project:

👁 The window to create a new BDA project.

2. Standard output:

Standard output gives you the model’s default, unstructured response (text, image, audio, or video) directly from the Data Automation pipeline.

👁 The standard output from the Data Automation pipeline.

In standard output, each modality has its own options for what is needed as an output. 

Document:

👁 The document modality options within the standard output tab.

Image & Video:

👁 Image and video modality options.

Audio:

👁 Audio modality options.

Now let’s test Document Modality for Standard Output:

First, click on “Test” in the upper right corner.

👁 The document processing interface within Data Automation.

Next, select the document from the system, sample, or S3 and choose the modality from the dropdown menu. 

👁 Test document processing interface

Click on the “Generate results” button:

👁 The "generate results" button within the test document processing pane.

After processing, it will show the summary and content of the document:

👁 Post-processing summary of the document, with the "document attributes" tab shown.
👁 Post-processing summary of the document, with the "page level" tab shown.
👁 Post-processing summary of the document, with the "element level" tab shown.

Custom output (blueprints):

Custom output lets you define a structured, predictable format using blueprints, which ensures the output matches your exact schema, fields, and business rules.

Let’s test custom output using blueprints for the same document:

Navigate to “Custom output” and click on “Add Blueprint”:

👁 The custom output tab in the test document processing interface of Amazon Bedrock.

From here, two options will appear. You can either use LLM power to generate the blueprint (where it inspects the document), or you can choose to enter field names, instructions, and other information manually.

👁 The "Create blueprint" pane within the custom output setup.

Below is a blueprint generated by LLM which has pulled all possible fields and tables from the document:

👁 Image showing a blueprint generated by an LLM.

It has extracted the information using the blueprint as demonstrated below, including the  Field name, Instruction, and Results:

👁 A summary table showing all extracted information using the blueprint.

It also provides the Extraction type (which can be Explicit or Inferred), Confidence percentage, and other relevant information.

👁 Image showing the type of each instance of extracted information.

Additionally, it can extract information in the form of a table, such as an account summary or transaction information:

👁 Extracted information in the form of a table; in this case, an account summary of the example bank statement.

Code examples

Amazon Bedrock Data Automation (BDA) Utility Module
Description:
 Helper functions to create BDA projects, blueprints, invoke jobs,
 monitor job status, and fetch results.
import boto3
import time
import json
import botocore
class BedrockDataAutomation:
 def __init__(self, region="us-east-1"):
 self.bda = boto3.client("bedrock-data-automation", region_name=region)
 self.runtime = boto3.client("bedrock-data-automation-runtime", region_name=region)

 # ------------------------------------------------------------
 # BLUEPRINT OPERATIONS
 # ------------------------------------------------------------
 def create_blueprint(self, name, schema, description="", stage="LIVE"):
 """
 Create a BDA Custom Output Blueprint from a JSON schema.
 """
 print(f"Creating blueprint: {name}")

 response = self.bda.create_blueprint(
 blueprintName=name,
 blueprintStage=stage,
 type="DOCUMENT",
 schema=json.dumps(schema)
 )
 return response["blueprint"]["blueprintArn"]

 # ------------------------------------------------------------
 # PROJECT OPERATIONS
 # ------------------------------------------------------------
 def create_project(self, name, description, standard_output_config, custom_output_config=None):
 """
 Create a BDA Project with Standard or Custom Output.
 """
 print(f"Creating project: {name}")

 response = self.bda.create_data_automation_project(
 projectName=name,
 projectDescription=description,
 projectStage="LIVE",
 standardOutputConfiguration=standard_output_config,
 customOutputConfiguration=custom_output_config or {}
 )
 return response["projectArn"]

 # ------------------------------------------------------------
 # INVOCATION OPERATIONS
 # ------------------------------------------------------------
 def invoke_project(self, project_arn, profile_arn, input_s3_uri, output_s3_uri, blueprints=None):
 """
 Invoke a BDA project using async invocation.
 """
 print(f"Invoking project: {project_arn}")

 kwargs = {
"inputConfiguration": {"s3Uri": input_s3_uri},
"outputConfiguration": {"s3Uri": output_s3_uri},
"dataAutomationConfiguration": {
"dataAutomationProjectArn": project_arn,
"stage": "DEVELOPMENT"
},
"dataAutomationProfileArn": profile_arn
}

 if blueprints:
kwargs["blueprints"] = blueprints

 response = self.runtime.invoke_data_automation_async(**kwargs)
 invocation_arn = response["invocationArn"]

 print("Invocation ARN:", invocation_arn)
 return invocation_arn

 # ------------------------------------------------------------
 # JOB STATUS POLLING
 # ------------------------------------------------------------
 def wait_for_job(self, invocation_arn, poll_interval=10):
 """
 Poll until job finishes.
 Returns final status object.
 """
 print("Polling job:", invocation_arn)

 while True:
 try:
 resp = self.runtime.get_data_automation_status(
 invocationArn=invocation_arn
 )
 except Exception as e:
 print("Error fetching status:", e)
 raise

 status = resp["status"]
 print(f"Status: {status}")

 if status in ("SUCCEEDED", "FAILED", "CANCELLED"):
 return resp

 time.sleep(poll_interval)



# --------------------------------------------------------------------
# EXAMPLE USAGE
# --------------------------------------------------------------------
if __name__ == "__main__":
 bda = BedrockDataAutomation(region="us-east-1")

 # 1. Create Blueprint
 blueprint_schema = {
 "type": "object",
 "properties": {
 "account_holder": {"type": "string"},
 "balance": {"type": "string"},
 "transactions": {
 "type": "array",
 "items": {
 "type": "object",
 "properties": {
 "date": {"type": "string"},
 "description": {"type": "string"},
 "amount": {"type": "string"}
 }
 }
 }
 },
 "required": ["account_holder", "transactions"]
 }

 blueprint_arn = bda.create_blueprint(
 name="BankStatementBlueprint",
 schema=blueprint_schema,
 description="Extract fields from bank statements."
 )

 # 2. Create Standard Output Config
 standard_config = {
 "document": {
 "extraction": {
 "granularity": {"types": ["PAGE", "LINE"]},
 "boundingBox": {"state": "ENABLED"}
 },
 "outputFormat": {
 "textFormat": {"types": ["PLAIN_TEXT", "CSV"]}
 }
 }
 }

 # 3. Create Project with Custom Blueprint
 project_arn = bda.create_project(
 name="BankStatementProject",
 description="Process PDF bank statements",
 standard_output_config=standard_config,
 custom_output_config={
 "blueprints": [
 {
 "blueprintArn": blueprint_arn,
 "blueprintStage": "DEVELOPMENT",
 "blueprintVersion": "1"
 }
 ]
 }
 )

 # 4. Invoke the project
 # Ensure you replace <ACCOUNT_ID> with your actual AWS Account ID
 profile_arn = "arn:aws:bedrock:us-east-1:<ACCOUNT_ID>:data-automation-profile/us.data-automation-v1"
 invocation_arn = bda.invoke_project(
 project_arn=project_arn,
 profile_arn=profile_arn,
 input_s3_uri="s3://your-bucket/input/statement.pdf",
 output_s3_uri="s3://your-bucket/output/",
 blueprints=[
 {
 "blueprintArn": blueprint_arn,
 "version": "1",
 "stage": "DEVELOPMENT"
 }
 ]
 )

 # 5. Poll job status
 final_status = bda.wait_for_job(invocation_arn)
 print("Final status:", json.dumps(final_status, indent=4))

Types of document blueprints

When processing documents, BDA supports five core automation types:

1. Classification: invoice, bank statement, ID card, contract, HR letter, etc.

2. Extraction: Extract entities, fields, tables, metadata.

  • Example: From a bank statement → Date, Description, Amount, Balance.

3. Transformation: Modify or restructure data.

  • Example: Convert Home Address into separate fields -> street, city, ZIP code, etc.

4. Normalization: Standardize data values.

  • Example: Convert multiple date formats (MM/DD/YYYY → YYYY-MM-DD).

5. Validation: Validate extracted fields against rules.

  • Example: Amount must be numeric; dates must match the format; balances must reconcile.

Use cases that illustrate business value

Real-world scenarios where BDA provides significant ROI include:

  • Financial Services: Automate processing of bank statements, invoices, and loan applications, reducing manual labor and speeding up reconciliation or underwriting.
  • Insurance: Ingest and extract data from claims forms, medical reports, and damaged-asset photos.
  • HR / Legal: Process resumes, contracts, and offer letters; extract structured data, including skills, clauses, salaries, and parties.
  • Customer Support: Transcribe and summarize calls, extract intent and sentiment, and feed those insights into CRM or case systems.
  • Security & Compliance: Analyze CCTV footage or meeting recordings to detect key actions, summarize context, and flag compliance issues.

BDA proves itself flexible and powerful, as it supports both standard outputs for basic workflows and fine-tuned custom schemas via blueprints. It is scalable and robust, with projects that enable batch processing and versions (development vs. live) for safe testing. It’s also audit-friendly, providing structured fields with types, normalization rules, and validation logic. 

“Compared with rule-based systems, foundation models achieve better semantic extraction across the board.”

A true key benefit is that BDA is multimodal across formats. Users can use the BDA framework to process documents, images, audio, and video. And, best of all, it’s highly accurate. Compared with rule-based systems, foundation models achieve better semantic extraction across the board. 

Amazon Bedrock Data Automation empowers businesses to transform unstructured, multimodal content into structured, trustworthy, and actionable data. With minimal setup, highly customizable blueprints, and a scalable project-based architecture, BDA helps organizations reduce manual workload and unlock insights faster.

Andela provides the world’s largest private marketplace for global remote tech talent driven by an AI-powered platform to manage the complete contract hiring lifecycle. Andela helps companies scale teams & deliver projects faster via specialized areas: App Engineering, AI, Cloud, Data & Analytics.
Learn More
The latest from Andela
Hear more from our sponsor
TRENDING STORIES
Hafiz Syed Ashir Hassan is a Data and AI Engineer with over seven years of experience, specializing in crafting scalable data solutions and integrating AI-driven workflows. As an AWS Certified Solutions Architect, AI Practitioner and active member of the AWS...
Read more from Hafiz Hassan
Andela sponsored this post.
SHARE THIS STORY
TRENDING STORIES
TNS owner Insight Partners is an investor in: Real.
SHARE THIS STORY
TRENDING STORIES
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.