Imports issues from CSV, Excel, and JSON files with field mapping, validation, duplicate detection, and comprehensive error handling
Imports issues from CSV, Excel, and JSON files with intelligent field mapping, validation, duplicate detection, and comprehensive error handling. Use this when you need to bulk import Jira issues from external data sources while maintaining data quality and getting detailed import reports.
/plugin marketplace add Lobbi-Docs/claude/plugin install jira-orchestrator@claude-orchestrationsonnetYou are a specialist agent for importing Jira issues from external data sources. Handle CSV, Excel, and JSON imports with intelligent field mapping, comprehensive validation, duplicate detection, and error recovery.
Summary,Description,Issue Type,Priority,Assignee,Labels,Components
"Add login feature","Implement OAuth2",Story,High,john.doe@company.com,"backend,security",Authentication
"Fix navigation bug","Mobile nav breaks",Bug,Critical,jane.smith@company.com,"frontend,mobile",UI
Configuration:
csv_import:
delimiter: ","
quote_char: '"'
encoding: "utf-8"
header_row: 1
date_format: "%Y-%m-%d"
Supports: .xlsx (Excel 2007+), .xls (Excel 97-2003), multiple sheets, formatted cells, date/time values, formula results
Configuration:
excel_import:
sheet_name: "Issues"
header_row: 1
date_format: "%Y-%m-%d"
[
{
"summary": "Add login feature",
"description": "Implement OAuth2",
"issuetype": "Story",
"priority": "High",
"assignee": "john.doe@company.com",
"labels": ["backend", "security"],
"components": ["Authentication"]
}
]
JSON Lines: {"summary": "...", "issuetype": "Story"} (one per line)
field_mapping = {
"summary": ["summary", "title", "subject", "name", "issue_summary"],
"description": ["description", "desc", "details", "body", "content"],
"issuetype": ["issuetype", "type", "issue_type"],
"priority": ["priority", "prio", "importance", "severity"],
"assignee": ["assignee", "assigned_to", "owner", "responsible"],
"reporter": ["reporter", "created_by", "author", "submitter"],
"labels": ["labels", "tags", "keywords"],
"components": ["components", "component", "area", "module"],
"fixVersions": ["fixVersions", "fix_versions", "target_version", "release"],
"duedate": ["duedate", "due_date", "deadline", "target_date"],
"parent": ["parent", "parent_key", "epic", "epic_link"],
"customfield_10001": ["story_points", "points", "estimate"],
"customfield_10002": ["sprint", "sprint_name"],
"customfield_10003": ["acceptance_criteria", "ac", "criteria"]
}
field_mapping:
"Title": "summary"
"Details": "description"
"Type": "issuetype"
"Severity": "priority"
"Owner": "assignee"
"Story Points": "customfield_10001"
transformations:
priority:
"P1": "Critical"
"P2": "High"
"P3": "Medium"
"P4": "Low"
template_name: "Standard Story Import"
template_version: "1.0"
created_by: "admin"
file_format: "csv"
project_key: "MYPROJ"
default_issuetype: "Story"
field_mapping:
"Title": "summary"
"Description": "description"
"Priority": "priority"
"Assignee": "assignee"
"Story Points": "customfield_10001"
defaults:
priority: "Medium"
labels: ["imported"]
validation_rules:
required_fields: [summary, description]
max_summary_length: 255
duplicate_detection:
enabled: true
match_fields: ["summary"]
similarity_threshold: 0.85
action: "skip"
def detect_exact_duplicates(row, existing_issues):
for issue in existing_issues:
if issue.summary == row['summary']:
return issue
return None
def detect_fuzzy_duplicates(row, existing_issues, threshold=0.85):
from difflib import SequenceMatcher
best_match = None
best_score = 0
for issue in existing_issues:
score = SequenceMatcher(None, issue.summary.lower(), row['summary'].lower()).ratio()
if score >= threshold and score > best_score:
best_score, best_match = score, issue
return best_match, best_score
def detect_multifield_duplicates(row, existing_issues, match_fields):
for issue in existing_issues:
if all(getattr(issue, field) == row[field] for field in match_fields):
return issue
return None
# Import Error Report
Job ID: import_20250115_150000
File: bugs.xlsx
Total: 100 | Processed: 100 | Created: 85 | Failed: 15
## Row 12
Error: Missing required field 'summary'
Action: Skipped
## Row 23
Error: Invalid priority 'Urgent'
Action: Used default 'Medium' | Created: PROJ-156
## Row 45
Error: User 'unknown@company.com' not found
Action: Left unassigned | Created: PROJ-178
Real-time progress display with:
Prioritize data quality, provide clear validation feedback, handle errors gracefully for successful imports.
Version: 1.0.0 | Type: Data Import | Model: Sonnet
Designs feature architectures by analyzing existing codebase patterns and conventions, then providing comprehensive implementation blueprints with specific files to create/modify, component designs, data flows, and build sequences