Track and update action item status from natural language updates like 'Seanのメールには返信しておいた' or 'Lu対応予定'. Integrates with daily-comms-ops workflow. Use when managing action items across communication channels.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
SF CLI経由でSalesforceレポートを作成するスキル。Metadata APIとREST APIの使い分け、フィールド命名規則、列数制限、レポートタイプ設定を網羅。カスタムオブジェクトレポート作成時の注意点も含む。
Use when creating Salesforce reports via CLI, deploying report types, or automating report generation.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
실행 점수 미검증
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
SF CLIを使用してSalesforceレポートを作成・デプロイするためのスキル。
このスキルは以下の機能を提供します:
以下の場面でこのスキルを使用してください:
トリガーフレーズ:
# Salesforce CLI (sf) がインストールされていること
sf --version
# 認証済みのSalesforce組織があること
sf org list
# Web認証フロー
sf org login web --alias myorg
# JWTフロー(CI/CD向け)
sf org login jwt --client-id <consumer-key> --jwt-key-file <path> --username <user>
# 既存の認証を確認
sf org display --target-org myorg
| 項目 | Metadata API | REST API (Analytics) |
|---|---|---|
| 方式 | XMLファイルをデプロイ | HTTP POSTで直接作成 |
| コマンド | sf project deploy start | Python/curlでAPI呼び出し |
| カスタムレポートタイプ | フィールド参照でエラーが発生しやすい | 推奨(安定動作) |
| 保存場所 | force-app/main/default/reports/ | Salesforce組織内のみ |
| バージョン管理 | 可能(GitでXML管理) | 不可(組織内のみ) |
推奨事項:
レポートでのフィールド参照形式はAPIによって異なります。
REST API形式:
Object.FieldName # 基本形式
Object.Relationship.Name # 関連オブジェクトのName表示
Metadata API (XML)形式:
Object.FieldName # カスタムレポートタイプ
OBJECT.FIELDNAME # 標準レポートタイプ(大文字)
Lookupフィールドの変換:
# APIフィールド名 → レポートフィールド名
"OwnerId" → "Owner"
"RecordTypeId" → "RecordType"
"CreatedById" → "CreatedBy"
"LastModifiedById" → "LastModifiedBy"
"ParentId" → "Parent"
"AccountId" → "Account"
"ReportsToId" → "ReportsTo"
関連オブジェクトの値表示:
# Owner名を表示したい場合
"Account.Owner.Name" # ✓ 正しい
"Account.OwnerId" # ✗ IDのみ表示
# Account名を表示したい場合
"Contact.Account.Name" # ✓ 正しい
"Contact.AccountId" # ✗ IDのみ表示
| 制限種別 | 値 | 適用場面 |
|---|---|---|
| REST API detailColumns | 100列 | Analytics API |
| 推奨設定値 | 99列 | 安全マージン |
| 絶対最大 | 200列 | Salesforce強制制限 |
| SOQL文字数 | 20,000文字 | クエリ制限 |
対応方法:
# 列数を99に制限
filtered_columns = columns[:99]
以下のフィールドはレポートで使用できない場合があります:
EXCLUDED_FIELDS = {
"IsDeleted", # システムフィールド
"MasterRecordId", # マージ用
"SystemModstamp", # システム更新日時
"LastActivityDate", # 活動日
"LastViewedDate", # 参照日
"LastReferencedDate", # 参照日
"Jigsaw", "JigsawCompanyId", "JigsawContactId", # Data.com
"PhotoUrl", # 写真URL
"CleanStatus", # Data.comステータス
}
EXCLUDED_FIELD_TYPES = ["address", "location"] # 複合フィールド
EXCLUDED_FIELD_SUFFIXES = ["__pc"] # Person Account
カスタムオブジェクトのレポートを作成するには、まずレポートタイプを定義します。
# フィールド一覧を取得
sf sobject describe --sobject Property__c --target-org myorg --json | \
python3 -c "import sys,json; [print(f['name']) for f in json.load(sys.stdin)['fields']]"
レポートタイプXML例:
<?xml version="1.0" encoding="UTF-8"?>
<ReportType xmlns="http://soap.sforce.com/2006/04/metadata">
<baseObject>Property__c</baseObject>
<category>other</category>
<deployed>true</deployed>
<description>Property All Fields Report Type</description>
<label>Property All Fields</label>
<sections>
<columns>
<checkedByDefault>false</checkedByDefault>
<field>Name</field>
<table>Property__c</table>
</columns>
<!-- 追加のcolumns... -->
</sections>
</ReportType>
カテゴリ選択:
accounts - Account関連opportunities - Opportunity関連cases - Case関連leads - Lead関連other - その他(カスタムオブジェクト)# レポートタイプのみデプロイ
sf project deploy start \
--source-dir force-app/main/default/reportTypes \
--target-org myorg
# デプロイ結果確認
sf project deploy report --target-org myorg
方法A: REST API(推奨)
import json
import subprocess
import urllib.request
# 認証情報取得
result = subprocess.run(
["sf", "org", "display", "--target-org", "myorg", "--json"],
capture_output=True, text=True
)
data = json.loads(result.stdout)
access_token = data['result']['accessToken']
instance_url = data['result']['instanceUrl']
# レポート作成
url = f"{instance_url}/services/data/v62.0/analytics/reports"
body = {
"reportMetadata": {
"name": "Property All Fields Report",
"description": "All fields report for data verification",
"reportFormat": "TABULAR",
"reportType": {"type": "Property_All_Fields__c"},
"detailColumns": [
"Property__c.Name",
"Property__c.CreatedDate",
"Property__c.Owner.Name"
],
"standardDateFilter": {
"column": "Property__c.CreatedDate",
"durationValue": "CUSTOM"
}
}
}
req = urllib.request.Request(
url,
data=json.dumps(body).encode('utf-8'),
headers={
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
},
method='POST'
)
with urllib.request.urlopen(req) as resp:
result = json.loads(resp.read().decode())
print(f"Created report: {result['reportMetadata']['id']}")
方法B: Metadata API(XMLデプロイ)
<?xml version="1.0" encoding="UTF-8"?>
<Report xmlns="http://soap.sforce.com/2006/04/metadata">
<columns>
<field>Property__c.Name</field>
</columns>
<columns>
<field>Property__c.CreatedDate</field>
</columns>
<description>Property All Fields Report</description>
<format>Tabular</format>
<name>Property All Fields</name>
<reportType>Property_All_Fields__c</reportType>
<scope>organization</scope>
<showDetails>true</showDetails>
<timeFrameFilter>
<dateColumn>Property__c.CreatedDate</dateColumn>
<interval>INTERVAL_CUSTOM</interval>
</timeFrameFilter>
</Report>
sf project deploy start \
--source-dir force-app/main/default/reports \
--target-org myorg
# REST APIでフォルダ移動
def move_report_to_folder(instance_url, access_token, report_id, folder_id):
url = f"{instance_url}/services/data/v62.0/analytics/reports/{report_id}"
body = {"reportMetadata": {"folderId": folder_id}}
req = urllib.request.Request(
url,
data=json.dumps(body).encode('utf-8'),
headers={
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
},
method='PATCH'
)
urllib.request.urlopen(req)
原因: Metadata APIでカスタムレポートタイプのフィールド参照が正しくない
解決策:
Object.Field vs OBJECT.FIELD)原因: REST APIの列数制限(100列)を超過
解決策:
# 列数を99に制限
columns = columns[:99]
原因: Lookupフィールドの参照形式が間違っている
解決策:
# ✗ 間違い
"Account.OwnerId"
# ✓ 正しい
"Account.Owner" # 関連オブジェクトとして参照
"Account.Owner.Name" # Owner名を表示
原因: レポートタイプ名が一致しない、または__cサフィックスの問題
解決策:
# レポートタイプはSalesforce内で__cが付く
# XML: Property_All_Fields.reportType-meta.xml
# 参照時: Property_All_Fields__c
原因: レポートフォルダが存在しない
解決策:
# フォルダを先にデプロイ
sf project deploy start \
--source-dir force-app/main/default/reports/MyFolder.reportFolder-meta.xml \
--target-org myorg
| ファイル | 内容 |
|---|---|
references/metadata_api_vs_rest_api.md | API比較の詳細ガイド |
references/field_naming_rules.md | フィールド命名規則の詳細 |
references/column_limits_guide.md | 列数制限と対応方法 |
references/report_type_configuration.md | レポートタイプ設定の詳細 |
| ファイル | 用途 |
|---|---|
scripts/create_reports_via_api.py | REST APIでレポートを作成するPythonスクリプト |
| ファイル | 用途 |
|---|---|
assets/report_type_template.xml | レポートタイプXMLテンプレート |
assets/report_metadata_template.xml | レポートメタデータXMLテンプレート |
# オブジェクトのフィールド一覧取得
sf sobject describe --sobject Account --target-org myorg --json
# レポートタイプのデプロイ
sf project deploy start --source-dir force-app/main/default/reportTypes --target-org myorg
# レポートのデプロイ
sf project deploy start --source-dir force-app/main/default/reports --target-org myorg
# デプロイ状況確認
sf project deploy report --target-org myorg
# 組織情報取得(認証トークン含む)
sf org display --target-org myorg --json
# レポート作成
POST /services/data/v62.0/analytics/reports
# レポート更新(フォルダ移動など)
PATCH /services/data/v62.0/analytics/reports/{reportId}
# レポートタイプ情報取得
GET /services/data/v62.0/analytics/reportTypes/{reportType}
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Track and update action item status from natural language updates like 'Seanのメールには返信しておいた' or 'Lu対応予定'. Integrates with daily-comms-ops workflow. Use when managing action items across communication channels.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
AI活用提案の専門コンサルタントスキル。LLM・AIエージェントの活用事例知識を基に、業界別、部門別、シーン別に最適なAI導入提案を行います。システム化、業務改善、効率化を得意とし、具体的な活用事例、期待効果、導入ステップを含む実践的な提案を提供します。Use when proposing AI/LLM adoption strategies for specific industries, departments, or business scenarios.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Generate AI-powered BPO service proposals for Japanese companies in the US market. Use when creating outsourcing proposals with AI service menus, ROI estimation, implementation roadmaps, and bilingual (JA/EN) proposal documents for 在米日系企業向けAI実装.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
AI(LLM)が生成した日本語テキストの「AI臭」を検出・診断し、人間らしい文章にリライトするスキル。 Use when: 「AIっぽい文章を直して」「人間らしくリライトして」「AI臭を消して」「この文章をもっと自然にして」 「テキストのAI感を減らして」「機械っぽさを取りたい」 "make this sound more human", "remove AI tone", "humanize this text", "detect if this is AI-generated". 6つのAI特有パターン(視覚的マーカー、単調なリズム、マニュアル的構成、非コミット姿勢、抽象語の濫用、 定型メタファー)を正規表現ベースで検出し、0-100のAI臭スコアを算出。3つの人間化技法 (バランスを崩す・客観を崩す・論理を崩す)でリライトを実行する。 Note: 検出スクリプトは日本語テキスト専用。英語テキストの場合はClaude自身がreferences/を参照して分析・リライトする。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Generate audit-ready internal control design documents from As-Is business process inventories. Produces control IDs, assertion mappings, procedures, SoD analysis, KPIs, materiality thresholds, and implementation roadmaps. Use when building internal controls for new audit engagements, SOX/J-SOX compliance, or process improvement initiatives.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Review audit-related documents (control design documents, bottleneck analyses, requirements definitions, etc.) for quality, scoring them 0-100 with a severity-rated findings list. Use when reviewing audit documents, checking control design quality, or verifying cross-document consistency. Supports documents governed by US GAAP, IFRS, or J-GAAP.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.