Shop Floor

Shop Floor AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

The Shop Floor module provides a simplified interface for production workers to manage assigned job cards, update operation status, record production details, and track manufacturing activities directly from the factory floor.

Download Shop Floor OpenAPI Document
End Points

Attribute

jobcard_id
string
ID of the Job Card. Note: This value is a set of numeric characters.
manufacturingorder_id
string
ID of the manufacturing order this job card belongs to. Note: This value is a set of numeric characters.
manufacturingorder_number
string
Number of the manufacturing order this job card belongs to.
finished_product
string
Name of the finished product being manufactured.
workcenter_type_id
string
ID of the workcenter type for this job card. Note: This value is a set of numeric characters.
workcenter_id
string
ID of the workcenter where this job card is executed. Note: This value is a set of numeric characters.
workcenter_name
string
Name of the workcenter where this job card is executed.
jobcard_number
string
Auto-generated unique number assigned to the job card.
jobcard_name
string
Name of the job card, typically the operation name.
workers
array
List of workers assigned to this job card.
Show Sub-Attributes arrow
jobcard_worker_id
string
worker_id
string
worker_name
string
status
string
Current status of the job card. Allowed Values: not_started, in_progress, paused, completed, blocked, quality_pending and cancelled.
quantity_to_be_produced
double
Total quantity scheduled to be produced by this job card.
quantity_produced
double
Quantity that has been produced so far.
posted_date
string
Date and time when the job card was posted.
planned_start_time
string
Planned start time for this job card. Format: yyyy-MM-dd HH:mm.
planned_end_time
string
Planned end time for this job card. Format: yyyy-MM-dd HH:mm.
actual_start_time
string
Actual time when production started.
actual_end_time
string
Actual time when production ended.
planned_duration
string
Planned total duration for completing this job card. Format: MM:SS.
planned_working_duration
string
Effective planned working duration factoring in calendar and breaks. Format: MM:SS.
actual_duration
string
Actual time spent on this job card. Format: MM:SS.
elapsed_time_since_start
string
Time elapsed since the job card was started.
description
string
Operation instructions or notes for this job card.
operation_id
string
ID of the operation being performed. Note: This value is a set of numeric characters.
comments
array
List of comments on this job card.
blocked_by_jobcards
array
List of job cards that must be completed before this job card can begin.
Show Sub-Attributes arrow
jobcard_id
string
jobcard_number
string
jobcard_name
string
status
string
schedules
array
List of workcenter schedule slots assigned to this job card.
Show Sub-Attributes arrow
schedule_id
string
ID of the schedule entry. Note: This value is a set of numeric characters.
start_time
integer
Epoch timestamp of the scheduled start time.
end_time
integer
Epoch timestamp of the scheduled end time.
duration
string
quality_queue_status
string
Quality queue status. Allowed Values: not_applicable, pending and completed.

Example

{ "jobcard_id": "3863095000000039809", "manufacturingorder_id": "3863095000000039205", "manufacturingorder_number": "MFG-00001", "finished_product": "Pencil", "workcenter_type_id": "3863095000000039053", "workcenter_id": "3863095000000039078", "workcenter_name": "TMC Testing WC", "jobcard_number": "JOB-00010", "jobcard_name": "Testing OPR", "workers": [ { "jobcard_worker_id": "982000000045201", "worker_id": "982000000000097", "worker_name": "John Smith" } ], "status": "not_started", "quantity_to_be_produced": 1000, "quantity_produced": 0, "posted_date": "2026-05-06 16:32:16", "planned_start_time": "2026-05-07 14:39", "planned_end_time": "2026-05-07 15:49", "actual_start_time": "", "actual_end_time": "", "planned_duration": "70:00", "planned_working_duration": "70:00", "actual_duration": "", "elapsed_time_since_start": "", "description": "", "operation_id": "3863095000000039107", "comments": [ {} ], "blocked_by_jobcards": [ { "jobcard_id": "3863095000000039807", "jobcard_number": "JOB-00009", "jobcard_name": "Manufacturing OPR", "status": "completed" } ], "schedules": [ { "schedule_id": "3863095000000039817", "start_time": 1778144975000, "end_time": 1778149175000, "duration": "1h 10m" } ], "quality_queue_status": "not_applicable" }

List shop floor job cards AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

List all shop floor job cards.
OAuth Scope : ERP.manufacturing.READ

Query Parameters

organization_id
string
(Required)
ID of the organization.
sort_column
string
Specify the column field for sorting results. Allowed Values: created_time and jobcard_number.
sort_order
string
Sort order for results. Allowed Values: A (ascending) and D (descending).
filter_by
string
Filter shop floor job cards by status. Allowed Values: Status.All, Status.Draft, Status.NotStarted, Status.InProgress, Status.Paused and Status.UnAssigned.
status
string
Filter job cards by status. Allowed Values: not_started, in_progress, paused, completed, blocked and quality_pending.
search_text
string
Search across job card name, job card number, and manufacturing order number.
workcenter_id
string
Filter job cards by the workcenter they are executed at. Note: This value is a set of numeric characters.
manufacturingorder_id
string
Filter job cards by the manufacturing order they belong to. Note: This value is a set of numeric characters.
manufacturingorder_number
string
Filter by manufacturing order number. Available variants include manufacturingorder_number_startswith and manufacturingorder_number_contains.
job_card_name
string
Filter by job card name. Available variants include job_card_name_startswith and job_card_name_contains.
job_card_number
string
Filter by job card number. Available variants include job_card_number_startswith and job_card_number_contains.
location_id
string
Filter job cards by the location identifier.
quantity_to_be_produced
double
Filter by planned production quantity. Available variants include quantity_to_be_produced_start, quantity_to_be_produced_end, quantity_to_be_produced_less_than, quantity_to_be_produced_less_equals, quantity_to_be_produced_greater_than and quantity_to_be_produced_greater_equals.
quantity_produced
double
Filter by produced quantity. Available variants include quantity_produced_start, quantity_produced_end, quantity_produced_less_than, quantity_produced_less_equals, quantity_produced_greater_than and quantity_produced_greater_equals.
posted_date
string
Filter by posted date. Available variants include posted_date_start, posted_date_end, posted_date_before and posted_date_after. Format: yyyy-MM-dd HH:mm.
planned_start_time
string
Filter by planned start time. Available variants include planned_start_time_start, planned_start_time_end, planned_start_time_before and planned_start_time_after. Format: yyyy-MM-dd HH:mm.
planned_end_time
string
Filter by planned end time. Available variants include planned_end_time_start, planned_end_time_end, planned_end_time_before and planned_end_time_after. Format: yyyy-MM-dd HH:mm.
actual_start_time
string
Filter by actual start time. Available variants include actual_start_time_start, actual_start_time_end, actual_start_time_before and actual_start_time_after. Format: yyyy-MM-dd HH:mm.
actual_end_time
string
Filter by actual end time. Available variants include actual_end_time_start, actual_end_time_end, actual_end_time_before and actual_end_time_after. Format: yyyy-MM-dd HH:mm.
page
integer
Page number for pagination. Default is 1.
per_page
integer
Number of records to be fetched per page. Default value is 200.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.in/erp/v3/shopfloor/jobcards?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.in/erp/v3/shopfloor/jobcards?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.in/erp/v3/shopfloor/jobcards?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.in") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/erp/v3/shopfloor/jobcards?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.in", "port": null, "path": "/erp/v3/shopfloor/jobcards?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.in/erp/v3/shopfloor/jobcards?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "jobcards": [ { "jobcard_id": "3863095000000039809", "manufacturingorder_id": "3863095000000039205", "workcenter_id": "3863095000000039078", "workcenter_name": "TMC Testing WC", "jobcard_number": "JOB-00010", "jobcard_name": "Testing OPR", "manufacturingorder_number": "MFG-00001", "status": "not_started", "posted_date": "2026-04-24 07:38:19", "planned_start_time": "2026-04-24 09:00", "planned_end_time": "2026-04-24 09:10", "actual_start_time": "", "actual_end_time": "", "planned_duration": "10:07", "planned_working_duration": "10:07", "actual_duration": "", "created_time": "" }, {...}, {...} ], "page_context": { "page": 1, "per_page": 200, "has_more_page": false, "report_name": "Job Cards", "applied_filter": "Status.All", "sort_column": "jobcard_number", "sort_order": "D" } }

Get a shop floor job card AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Get the details of a shop floor job card.
OAuth Scope : ERP.manufacturing.READ

Path Parameters

jobcard_id
string
(Required)
ID of the job card. Note: This value is a set of numeric characters.

Query Parameters

organization_id
string
(Required)
ID of the organization.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.in/erp/v3/shopfloor/jobcards/3863095000000039809?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.in/erp/v3/shopfloor/jobcards/3863095000000039809?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.in/erp/v3/shopfloor/jobcards/3863095000000039809?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.in") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/erp/v3/shopfloor/jobcards/3863095000000039809?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.in", "port": null, "path": "/erp/v3/shopfloor/jobcards/3863095000000039809?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.in/erp/v3/shopfloor/jobcards/3863095000000039809?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "jobcard": { "jobcard_id": "3863095000000039809", "manufacturingorder_id": "3863095000000039205", "manufacturingorder_number": "MFG-00001", "finished_product": "Pencil", "workcenter_type_id": "3863095000000039053", "workcenter_id": "3863095000000039078", "workcenter_name": "TMC Testing WC", "jobcard_number": "JOB-00010", "jobcard_name": "Testing OPR", "workers": [ { "jobcard_worker_id": "982000000045201", "worker_id": "982000000000097", "worker_name": "John Smith" } ], "status": "not_started", "quantity_to_be_produced": 1000, "quantity_produced": 0, "posted_date": "2026-05-06 16:32:16", "planned_start_time": "2026-05-07 14:39", "planned_end_time": "2026-05-07 15:49", "actual_start_time": "", "actual_end_time": "", "planned_duration": "70:00", "planned_working_duration": "70:00", "actual_duration": "", "elapsed_time_since_start": "", "description": "", "operation_id": "3863095000000039107", "comments": [ {...} ], "blocked_by_jobcards": [ { "jobcard_id": "3863095000000039807", "jobcard_number": "JOB-00009", "jobcard_name": "Manufacturing OPR", "status": "completed" } ], "schedules": [ { "schedule_id": "3863095000000039817", "start_time": 1778144975000, "end_time": 1778149175000, "duration": "1h 10m" } ], "quality_queue_status": "not_applicable" } }

Update job card status AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Update the status of a shop floor job card.
OAuth Scope : ERP.manufacturing.UPDATE

Arguments

action
string
(Required)
Action to perform on the job card status. Allowed Values: start, pause, resume and complete.
quantity_completed
double
Quantity completed at the time of status update. Required when action is complete. Must be greater than or equal to 0.
actual_start_time
string
Actual time when production started. Format: yyyy-MM-dd HH:mm.
actual_end_time
string
Actual time when production ended. Required when action is complete. Format: yyyy-MM-dd HH:mm.

Path Parameters

jobcard_id
string
(Required)
ID of the job card. Note: This value is a set of numeric characters.

Query Parameters

organization_id
string
(Required)
ID of the organization.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.in/erp/v3/shopfloor/jobcards/3863095000000039809/status?organization_id=10234695" type: PUT headers: headers_data content-type: application/json parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("https://www.zohoapis.in/erp/v3/shopfloor/jobcards/3863095000000039809/status?organization_id=10234695") .put(body) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'PUT', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.in/erp/v3/shopfloor/jobcards/3863095000000039809/status?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.in") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("PUT", "/erp/v3/shopfloor/jobcards/3863095000000039809/status?organization_id=10234695", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "PUT", "hostname": "www.zohoapis.in", "port": null, "path": "/erp/v3/shopfloor/jobcards/3863095000000039809/status?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "application/json" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({field1: 'value1', field2: 'value2'})); req.end();
curl --request PUT \ --url 'https://www.zohoapis.in/erp/v3/shopfloor/jobcards/3863095000000039809/status?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "action": "start", "quantity_completed": 20, "actual_start_time": "2026-05-07 14:39", "actual_end_time": "2026-05-07 15:49" }

Response Example

{ "code": 0, "message": "Job Card status updated.", "jobcard": { "jobcard_id": "3863095000000039809", "manufacturingorder_id": "3863095000000039205", "manufacturingorder_number": "MFG-00001", "finished_product": "Pencil", "workcenter_type_id": "3863095000000039053", "workcenter_id": "3863095000000039078", "workcenter_name": "TMC Testing WC", "jobcard_number": "JOB-00010", "jobcard_name": "Testing OPR", "workers": [ { "jobcard_worker_id": "982000000045201", "worker_id": "982000000000097", "worker_name": "John Smith" } ], "status": "not_started", "quantity_to_be_produced": 1000, "quantity_produced": 0, "posted_date": "2026-05-06 16:32:16", "planned_start_time": "2026-05-07 14:39", "planned_end_time": "2026-05-07 15:49", "actual_start_time": "", "actual_end_time": "", "planned_duration": "70:00", "planned_working_duration": "70:00", "actual_duration": "", "elapsed_time_since_start": "", "description": "", "operation_id": "3863095000000039107", "comments": [ {...} ], "blocked_by_jobcards": [ { "jobcard_id": "3863095000000039807", "jobcard_number": "JOB-00009", "jobcard_name": "Manufacturing OPR", "status": "completed" } ], "schedules": [ { "schedule_id": "3863095000000039817", "start_time": 1778144975000, "end_time": 1778149175000, "duration": "1h 10m" } ], "quality_queue_status": "not_applicable" } }