Assetflow
by @ncreighton
Organize and store digital assets across cloud providers with automated workflows. Use when the user needs DAM integration, file organization, or asset metad...
clawhub install assetflowπ About This Skill
name: Automated Asset Tracking Workflow with Slack Notifications & Google Sheets Updates description: "Organize and store digital assets across cloud providers with automated workflows. Use when the user needs DAM integration, file organization, or asset metadata management for creative teams." version: 1.0.0 homepage: https://github.com/ncreighton/empire-skills metadata: { "openclaw": { "requires": { "env": ["ASSETFLOW_DAM_API_KEY", "ASSETFLOW_STORAGE_PROVIDER", "ASSETFLOW_WORKSPACE_ID"], "bins": [] }, "os": ["macos", "linux", "win32"], "files": ["SKILL.md"], "emoji": "π¦" } }
Overview
AssetFlow is a production-ready Digital Asset Management (DAM) orchestration skill that automates the organization, storage, and retrieval of digital assets across multiple cloud platforms and DAM systems. It eliminates manual file management overhead, ensures consistent metadata tagging, and integrates seamlessly with existing creative workflows.
Why AssetFlow Matters
Creative teams lose 30-40% of productivity managing dispersed assets across drives, cloud storage, and project folders. AssetFlow centralizes asset management with:
Quick Start
Try these example prompts immediately:
Example 1: Organize Marketing Assets
Organize all marketing materials from our Q4 campaign.
Automatically sort by asset type (images, videos, PDFs),
create project folders for each channel (social, email, web),
and tag with campaign name, brand guidelines compliance, and
expiration dates. Store in AWS S3 /marketing/Q4_2024 bucket.
Example 2: Set Up Photo Archive Workflow
Create an automated workflow for our photography team.
Ingest RAW files from Dropbox upload folder, auto-tag by
photographer and location metadata, generate thumbnails,
create proof sets, and move finalized images to archive
in Google Drive. Flag images that need licensing info.
Example 3: DAM System Sync
Sync all approved design files from our Figma workspace
to our Adobe Experience Manager DAM. Create asset collections
by brand, design system version, and usage rights. Auto-generate
previews and maintain version history. Alert team when assets
are updated or deprecated.
Example 4: Compliance & Retention
Implement automatic compliance workflow: tag all assets with
creation date, creator, usage rights, and expiration. Archive
assets older than 2 years to cold storage. Generate compliance
reports monthly. Flag any files missing required metadata.
Capabilities
Automated Asset Organization
Multi-Provider Integration
| Provider | Capability | Status | |----------|-----------|--------| | AWS S3 | Full read/write, lifecycle policies | β Native | | Google Drive | Folder management, sharing control | β Native | | Dropbox | Auto-ingest, selective sync | β Native | | Azure Blob | Archive storage, retention policies | β Native | | Adobe Experience Manager | DAM sync, metadata standards | β API Integration | | Canto | Asset collections, approval workflows | β API Integration | | Widen Collective | Brand management, usage rights | β API Integration | | Slack | Asset notifications, quick share | β Webhook Integration |
Metadata & Searchability
Workflow Automation
Access & Permissions
Configuration
Environment Variables (Required)
# Primary DAM or storage provider authentication
ASSETFLOW_DAM_API_KEY="your-dam-api-key"
ASSETFLOW_STORAGE_PROVIDER="s3" # Options: s3, gcs, azure, dropbox, box
ASSETFLOW_WORKSPACE_ID="workspace-12345"AWS S3 (if using S3)
AWS_ACCESS_KEY_ID="your-aws-key"
AWS_SECRET_ACCESS_KEY="your-aws-secret"
AWS_REGION="us-east-1"Google Cloud (if using Google Drive)
GOOGLE_APPLICATION_CREDENTIALS="/path/to/credentials.json"Secondary integrations (optional)
ADOBE_XDM_API_KEY="adobe-api-key"
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/..."
Setup Instructions
Step 1: Choose Your Primary Provider
Supported configurations:
AWS S3 + Adobe Experience Manager
Google Drive + Canto DAM
Dropbox + Widen Collective
Azure Blob Storage + custom metadata
Step 2: Define Asset Organization Schema
# Example taxonomy for marketing team
organization_rules:
by_type:
- images/
- hero/
- social/
- email/
- video/
- shorts/
- long-form/
- documents/
- brand-guidelines/
- campaign-briefs/
by_project:
- [BRAND]_[QUARTER]_[CAMPAIGN_NAME]/
- metadata_tags: [brand, quarter, campaign]
retention_policy:
approved_assets: "indefinite"
drafts: "30 days"
archival: "7 years cold storage"
Step 3: Configure Metadata Templates
# Required fields for all assets
metadata_template:
core:
- created_date (auto)
- creator (auto)
- asset_type (auto-detected)
- usage_rights (required)
- expiration_date (if applicable)
custom:
- brand
- campaign
- approved_by
- version
- file_format_quality
Step 4: Enable Integrations
Slack notifications: Enable to post asset updates to team channels
Email digests: Weekly summary of new, modified, and archived assets
Webhook endpoints: For triggering external workflows
API access: For custom integrations with your tools
Example Outputs
Output 1: Asset Organization Report
AssetFlow Organization Complete β
π Summary:
Files Processed: 4,892
Files Organized: 4,721 (96.5%)
Errors: 171 (flagged for review)
Time: 23 minutes π Folder Structure Created:
marketing/
βββ 2024/
β βββ Q1_Launch/
β β βββ images/ (1,203 files)
β β βββ video/ (87 files)
β β βββ documents/ (45 files)
β βββ Q2_Growth/
β βββ images/ (892 files)
β βββ video/ (156 files)
β βββ documents/ (234 files)
π·οΈ Metadata Applied:
Tags: 14,832 (avg 3.2 per asset)
Descriptions: 4,721 auto-generated
Usage Rights: 4,703 classified
Expiration Dates: 892 flagged β οΈ Requires Review:
Missing Creator Info: 87 files
Unclear Usage Rights: 56 files
Potential Duplicates: 28 files
Output 2: DAM Sync Status
Adobe Experience Manager Sync: IN PROGRESSFiles Synced: 1,234 / 1,456
Success Rate: 84.8%
β
Completed Syncs:
Brand Assets (2024): 456 files
Design System v3.2: 223 files
Campaign Templates: 189 files π In Progress:
Video Archive: 156 files (12 minutes remaining)
Historical Assets: 892 files (35 minutes remaining) β οΈ Failed Syncs (Requires Action):
metadata_mismatch.zip: 12 files
β Solution: Re-map custom metadata fieldsNext Steps:
1. Review failed sync report
2. Update Adobe XDM schema if needed
3. Retry failed files (automatic retry in 2 hours)
Output 3: Asset Search Result
π Search Results: "winter campaign social media"Found 347 assets matching your criteria
πΈ Top Results:
1. winter_campaign_instagram_1.jpg
Size: 1.2 MB | Created: 2024-01-15
Tags: winter, campaign, instagram, carousel
Status: Approved β
Downloads: 23
2. winter_campaign_tiktok_15s.mp4
Size: 45 MB | Created: 2024-01-18
Tags: winter, campaign, tiktok, short-form
Status: Approved β
Downloads: 18
3. winter_campaign_twitter_hero.png
Size: 2.8 MB | Created: 2024-01-12
Tags: winter, campaign, twitter, hero
Status: In Review β³
Downloads: 5
[View all 347 results] [Save Search] [Create Collection]
Tips & Best Practices
For Maximum Organization Efficiency
1. Establish Clear Naming Conventions Early
- Use consistent format: [BRAND]_[DATE]_[PROJECT]_[TYPE]_[VERSION]
- Example: ACME_2024-Q1_Newsletter_Header_v3.psd
- AssetFlow will auto-parse and apply metadata from filenames
2. Leverage Automated Workflows - Set up ingest workflows for recurring uploads (e.g., daily photo drops) - Use conditional rules to route assets based on type or size - Schedule organization jobs during off-hours to avoid performance impact
3. Implement Approval Workflows Early - Create approval chains for brand assets and customer-facing materials - Use Slack notifications to keep review cycles tight (target: 24-hour approval) - Archive rejected assets in a separate folder for reference
4. Maintain Metadata Discipline - Require usage rights metadata before assets can be marked "approved" - Set expiration dates on trend-based or campaign-specific assets - Use tags for cross-project discovery (e.g., "client_XYZ", "summer_2024")
5. Monitor Storage & Costs - Review storage usage monthly; archive cold assets to cheaper tier - Set up lifecycle policies to move assets to cold storage after 2+ years - Use preview versions to reduce bandwidth for large files
6. Optimize Search Experience - Regularly review and refine your taxonomy based on search patterns - Create saved searches for frequently requested asset types - Use object detection tags to improve discoverability of visual content
Safety & Guardrails
What AssetFlow Will NOT Do
Boundaries & Limitations
| Limitation | Details | Mitigation | |-----------|---------|-----------| | File Size | Max individual file: 10 GB | Split large videos; compress RAW batches | | API Rate Limits | 1,000 requests/minute per provider | Batch jobs during off-peak hours | | Metadata Fields | Max 100 custom fields per asset | Use tagging system for additional classification | | Search Indexing | Indexes file names, metadata, OCR; not full content | Use clear naming conventions | | Concurrent Operations | Max 50 concurrent file operations | Monitor batch job queue |
Privacy & Compliance
Troubleshooting
Common Issues & Solutions
Issue: "Authentication Failed" Error
Error: ASSETFLOW_DAM_API_KEY is invalid or expiredSolution:
1. Verify API key in your provider dashboard (AWS/Google/Adobe)
2. Check key expiration date
3. Regenerate key if needed
4. Update environment variable: export ASSETFLOW_DAM_API_KEY="new-key"
5. Test connection: assetflow test-connection
Issue: Files Not Organizing Correctly
Problem: Assets ending up in wrong foldersTroubleshooting:
1. Review your organization_rules YAML for typos or logic errors
2. Check file extensions match your rules (case-sensitive on Linux)
3. Verify metadata extraction is working:
β assetflow debug --inspect-metadata [filename]
4. If using AI-based sorting, check confidence scores:
β assetflow list-low-confidence --threshold 0.7
5. Manually correct folder assignments and retrain model
Prevention: Start with simple rules (by type, then by date)
and gradually add complexity.
Issue: Slow Organization Performance
Symptom: Processing 10,000+ assets takes hoursOptimization Steps:
1. Reduce concurrent operations:
β assetflow organize --batch-size 25 --concurrency 10
2. Disable AI tagging for initial run (enable after):
β assetflow organize --skip-ai-tags
3. Split into smaller batches by date or folder
4. Check for network latency to cloud storage:
β ping your-bucket-region.amazonaws.com
5. Consider running during off-peak hours (2-6 AM)
Expected Performance:
Local SSD storage: ~1,000 files/minute
Cloud storage (S3/GCS): ~200-400 files/minute
With AI tagging: ~50-100 files/minute
Issue: Duplicate Assets Not Being Detected
``` Problem: Similar or identical files scattered across folders
Debug: 1. Check duplicate detection is enabled: β assetflow config --show | grep duplicate 2. Review hash algorithm (MD5 for exact, perceptual for similar): β assetflow organize --duplicate-method perceptual 3. Adjust similarity threshold (0-100, default 85): β assetflow organize --similarity-
π‘ Examples
Try these example prompts immediately:
Example 1: Organize Marketing Assets
Organize all marketing materials from our Q4 campaign.
Automatically sort by asset type (images, videos, PDFs),
create project folders for each channel (social, email, web),
and tag with campaign name, brand guidelines compliance, and
expiration dates. Store in AWS S3 /marketing/Q4_2024 bucket.
Example 2: Set Up Photo Archive Workflow
Create an automated workflow for our photography team.
Ingest RAW files from Dropbox upload folder, auto-tag by
photographer and location metadata, generate thumbnails,
create proof sets, and move finalized images to archive
in Google Drive. Flag images that need licensing info.
Example 3: DAM System Sync
Sync all approved design files from our Figma workspace
to our Adobe Experience Manager DAM. Create asset collections
by brand, design system version, and usage rights. Auto-generate
previews and maintain version history. Alert team when assets
are updated or deprecated.
Example 4: Compliance & Retention
Implement automatic compliance workflow: tag all assets with
creation date, creator, usage rights, and expiration. Archive
assets older than 2 years to cold storage. Generate compliance
reports monthly. Flag any files missing required metadata.
βοΈ Configuration
Environment Variables (Required)
# Primary DAM or storage provider authentication
ASSETFLOW_DAM_API_KEY="your-dam-api-key"
ASSETFLOW_STORAGE_PROVIDER="s3" # Options: s3, gcs, azure, dropbox, box
ASSETFLOW_WORKSPACE_ID="workspace-12345"AWS S3 (if using S3)
AWS_ACCESS_KEY_ID="your-aws-key"
AWS_SECRET_ACCESS_KEY="your-aws-secret"
AWS_REGION="us-east-1"Google Cloud (if using Google Drive)
GOOGLE_APPLICATION_CREDENTIALS="/path/to/credentials.json"Secondary integrations (optional)
ADOBE_XDM_API_KEY="adobe-api-key"
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/..."
Setup Instructions
Step 1: Choose Your Primary Provider
Supported configurations:
AWS S3 + Adobe Experience Manager
Google Drive + Canto DAM
Dropbox + Widen Collective
Azure Blob Storage + custom metadata
Step 2: Define Asset Organization Schema
# Example taxonomy for marketing team
organization_rules:
by_type:
- images/
- hero/
- social/
- email/
- video/
- shorts/
- long-form/
- documents/
- brand-guidelines/
- campaign-briefs/
by_project:
- [BRAND]_[QUARTER]_[CAMPAIGN_NAME]/
- metadata_tags: [brand, quarter, campaign]
retention_policy:
approved_assets: "indefinite"
drafts: "30 days"
archival: "7 years cold storage"
Step 3: Configure Metadata Templates
# Required fields for all assets
metadata_template:
core:
- created_date (auto)
- creator (auto)
- asset_type (auto-detected)
- usage_rights (required)
- expiration_date (if applicable)
custom:
- brand
- campaign
- approved_by
- version
- file_format_quality
Step 4: Enable Integrations
Slack notifications: Enable to post asset updates to team channels
Email digests: Weekly summary of new, modified, and archived assets
Webhook endpoints: For triggering external workflows
API access: For custom integrations with your tools
π Tips & Best Practices
Common Issues & Solutions
Issue: "Authentication Failed" Error
Error: ASSETFLOW_DAM_API_KEY is invalid or expiredSolution:
1. Verify API key in your provider dashboard (AWS/Google/Adobe)
2. Check key expiration date
3. Regenerate key if needed
4. Update environment variable: export ASSETFLOW_DAM_API_KEY="new-key"
5. Test connection: assetflow test-connection
Issue: Files Not Organizing Correctly
Problem: Assets ending up in wrong foldersTroubleshooting:
1. Review your organization_rules YAML for typos or logic errors
2. Check file extensions match your rules (case-sensitive on Linux)
3. Verify metadata extraction is working:
β assetflow debug --inspect-metadata [filename]
4. If using AI-based sorting, check confidence scores:
β assetflow list-low-confidence --threshold 0.7
5. Manually correct folder assignments and retrain model
Prevention: Start with simple rules (by type, then by date)
and gradually add complexity.
Issue: Slow Organization Performance
Symptom: Processing 10,000+ assets takes hoursOptimization Steps:
1. Reduce concurrent operations:
β assetflow organize --batch-size 25 --concurrency 10
2. Disable AI tagging for initial run (enable after):
β assetflow organize --skip-ai-tags
3. Split into smaller batches by date or folder
4. Check for network latency to cloud storage:
β ping your-bucket-region.amazonaws.com
5. Consider running during off-peak hours (2-6 AM)
Expected Performance:
Local SSD storage: ~1,000 files/minute
Cloud storage (S3/GCS): ~200-400 files/minute
With AI tagging: ~50-100 files/minute
Issue: Duplicate Assets Not Being Detected
``` Problem: Similar or identical files scattered across folders
Debug: 1. Check duplicate detection is enabled: β assetflow config --show | grep duplicate 2. Review hash algorithm (MD5 for exact, perceptual for similar): β assetflow organize --duplicate-method perceptual 3. Adjust similarity threshold (0-100, default 85): β assetflow organize --similarity-