"Procore core workflow b \u2014 construction management platform integration.\n\
Scanned 9/2/2026
Install to Claude Code
npx -y skills add jeremylongshore/tons-of-skills-marketplace --skill procore-core-workflow-b --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Procore Core Workflow B?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/jeremylongshore-procore-core-workflow-b-f0e5de8c)More formats (shields.io, HTML) on the badges page.
---
name: procore-core-workflow-b
description: "Procore core workflow b \u2014 construction management platform integration.\n\
Use when working with Procore API for project management, RFIs, or submittals.\n\
Trigger with phrases like \"procore core workflow b\", \"procore-core-workflow-b\"\
.\n"
allowed-tools: Read, Write, Edit, Bash(npm:*), Bash(pip:*), Bash(curl:*), Grep
version: 1.5.0
license: MIT
author: Jeremy Longshore <jeremy@intentsolutions.io>
tags:
- saas
- procore
- construction
- project-management
compatibility: Designed for Claude Code
---
# Procore Core Workflow B
## Overview
Build a submittal workflow: create submittals, assign reviewers, track approvals, and manage the review cycle.
## Prerequisites
- Completed `procore-core-workflow-a` (RFIs)
## Instructions
### Step 1: Create Submittal
```python
submittal = requests.post(
f"{BASE}/projects/{project_id}/submittals",
headers={**headers, "Content-Type": "application/json"},
json={
"submittal": {
"title": "Concrete mix design — Foundation",
"specification_section": "03 30 00",
"description": "Concrete mix design for foundation pour, 4000 PSI.",
"received_from_id": 33333, # Subcontractor
"approver_id": 44444, # Project engineer
"due_date": "2026-04-20",
}
},
)
submittal_id = submittal.json()["id"]
print(f"Submittal #{submittal.json()['number']} created")
```
### Step 2: Update Submittal Status
```python
# Approve the submittal
requests.patch(
f"{BASE}/projects/{project_id}/submittals/{submittal_id}",
headers={**headers, "Content-Type": "application/json"},
json={"submittal": {"status_id": 2}}, # 2 = Approved
)
```
### Step 3: List Submittals with Filters
```python
# Get all pending submittals
pending = requests.get(
f"{BASE}/projects/{project_id}/submittals",
headers=headers,
params={"filters[status_id]": 1}, # 1 = Open/Pending
)
for s in pending.json():
print(f" #{s['number']}: {s['title']} — Due: {s['due_date']}")
```
## Output
- Submittals created with specification sections
- Review workflow with approve/reject
- Filtered submittal listing
## Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| `422 Missing approver` | Required field | Set approver_id |
| `403 Cannot approve` | Not the approver | Only assigned approver can approve |
## Resources
- [Submittals API](https://developers.procore.com/reference/rest/submittals)
- [Procore Developers](https://developers.procore.com/)
## Next Steps
Handle events: `procore-webhooks-events`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!