Discussions
Invocing payment terms
Hey, I'm just wondering if there is a way to change my serviceM8 invoice due date to 10 days from job completion/dispatch of invoice. I know you go into settings > preferences > invoicing > invoicing terms but there are only options for COD, Pre paid, 7, 14 and 30 days. I know you can make a specific one for each client but just wondering if theres an easier solution.
Posted by Sam Butler about 2 months ago
How to get the job details from ServiceM8 to Zoho CRM?
Hi folks,
I'm trying to push the job details from ServiceM8 to Zoho CRM when a job is created. However, I'm not sure what endpoint to use to get the **Email, Name, Phone, and Mobile**.
This one is a good example, however, it does not have the above details I need: **curl -u email:password "<https://api.servicem8.com/api_1.0/job.json?%24filter=company_uuid%20eq%20'10420f98-7626-4405-bf43-043f1036623b'">**
Also, if you can please suggest a way to get the job details pushed to Zoho CRM (Webhook, Rest API, etc), I would highly appreciate it.
I'm not a programmer, so every step that I take here would require me a lot of research. Please make it layman's.
Thank you!
Posted by Cabal N MV about 2 months ago
Can I know which API endpoint I have to use to remove the job from the queue?
Can I know which API endpoint I have to use to remove the job from the queue?
Posted by Ali 2 months ago
Form Response API
Hi, I need your help regarding the form response:
1. I want to capture "Job Id" when the form submit (example: When a form is submit using JobId=2141 then I want to get that Id in a JSON response when a form submit.
2. How can I send email using a specific jobID
Posted by Ali 2 months ago
Oauth2
Can someone please help me. I need just the oauth2 steps to add to the start of my excel power queries as now 2 factor has been implemented they no longer work with just basic private log in.
This below is what I have so far and it returns the jobs in the power query window but will not upload to worksheet as the down load has discontinued due to this error in the token response:
DataSource.Error: Web.Contents with the Content option is only supported when connecting anonymously.
Details: DataSourceKind=Web DataSourcePath=<https://api.servicem8.com/oauth/authorize>
And this error at end of query: 'We couldn't authenticate with the credentials provided. Please try again.'
Query:
let
// Get the API Token
api_url = "<https://api.servicem8.com/">,
token_path = "oauth/authorize",
ClientID = "588360",
Secret = "0874cda820434972bf572069342b53db",
```
EncodedCredentials = "Basic " & Binary.ToText(Text.ToBinary(ClientID & ":" & Secret), BinaryEncoding.Base64),
Token_Response = Json.Document(Web.Contents(api_url,
[
RelativePath = token_path,
Headers = [#"Content-Type"="application/x-www-form-urlencoded",#"Authorization"=EncodedCredentials],
Content=Text.ToBinary("grant_type=client_credentials")
]
)
),
// Get the token from the API response
token = Token_Response[access_token],
```
// Query the API for Transactions between startDate and endDate and return all fields
path = "api_1.0/job",
endDate = "2023-09-17 00:00:00",
startDate= "2023-09-11 23:59:59",
fields = "all",
```
data= Json.Document(Web.Contents("https://api.servicem8.com/api_1.0/job.json?%24filter=active%20eq%20%271%27")),
#"Converted to Table" = Table.FromList(data, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"uuid", "date", "job_address", "work_done_description", "generated_job_id", "completion_date", "company_uuid", "payment_processed", "total_invoice_amount", "purchase_order_number", "status"}, {"Column1.uuid", "Column1.date", "Column1.job_address", "Column1.work_done_description", "Column1.generated_job_id", "Column1.completion_date", "Column1.company_uuid", "Column1.payment_processed", "Column1.total_invoice_amount", "Column1.purchase_order_number", "Column1.status"})
```
in
#"Expanded Column1"
Posted by Andrew Gould 2 months ago
Return Paramenters
In the response body where you create a job it returns an ok code.
It doesn't give the UUIUD or the Job number so we can't map it back to anything.
This is severely limited what am I missing when I create a new job how can I see what job number was allocated?
Posted by James Buchanan 2 months ago
Zapier Price
Hey,
At the moment we use zapier to create jobs in service m8 when they have been won by the sales team in another CRM. It creates a new quote and can add name,phone,email etc. but there is no option to move the price over.
Is there a way to make this possible?
Posted by Jeff 2 months ago
When using the api to add an attachment to a job it is marked as inactive and is not showing in the job
Even using the API reference to test is as show here has the same results
var options = new RestClientOptions("<https://api.servicem8.com/api_1.0/attachment.json")>;
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Basic REDACTED");
request.AddJsonBody("{\"active\":1,\"related_object\":\"Job\",\"related_object_uuid\":\"98e0214e-6061-4437-bfde-206884498f5b\",\"attachment_name\":\"TV Version.png\",\"file_type\":\".png\",\"attachment_source\":\"M:\\\\RFMS\\\\Swift\\\\\",\"uuid\":\"4429a30b-c2af-450c-983b-20688a951e4b\"}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
Posted by Shane Way 2 months ago
Webhooks
Using the API to intergrate a 3rd party schedule
Is it possible to have the option for the Job webhook to be fired on a Job Update or Job Change? Their Zapier app only fires on New Jobs for servicem8
Posted by Byron Sanders 2 months ago
Calling the job material list via API (Python/Zapier)
Hi there,
I have a zapier integration that is meant to be calling the job materials list from servicem8 when a job gets assigned to a specific que. I can trigger the action when the job lands in the que and pass it along to my python script which is meant to provide a line item array of all the materials filtered by the uuid of the job which triggered my zap.
I am able to return only the first entry in the material list. Any idea why the rest of the array is being truncated?
e.g my python script:
```
import requests
# 'jobuuid' is the field containing the UUID in the input_data
job_uuid = input_data['jobuuid']
url = f"https://api.servicem8.com/api_1.0/jobmaterial.json?%24filter=job_uuid eq {job_uuid}"
headers = {
"accept": "application/json",
"authorization": "Basic MYCREDENTIALS"
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
materials_data = response.json()
# Return the materials_data to pass it to the next steps in Zap
return materials_data
else:
return {
"error": f"Request failed with status code: {response.status_code}"
}
```
This is my return:
```
uuid: ccec4318-0077-4082-a309-410abb46e9c5
tax_rate_uuid: da374289-575b-4e78-bb6a-1de9409945cb
quantity: 1.0000
name: Bunnings inv. 2016/90315302
price: 61.9800
active: 1
displayed_amount_is_tax_inclusive: 1
displayed_amount: 61.9800
edit_date: 2023-09-19 14:42:36
job_uuid: 5d88a6c0-05c7-434e-86ef-200d2f1ffd6b
material_uuid: 16434f99-94d1-408c-aadb-f7337fcddc3b
sort_order: 0
cost: 56.3455
displayed_cost: 61.9800
id: RqNp2R6aEc50ExK10lucvpcXishvE2A5
runtime_meta
memory_used_mb: 47
duration_ms: 710
logs
```
I was expecting a json array to be returned however I am only getting which ever material is at the top of the list.
Really hoping I can generate the full list, would have really useful stock reordering applications.
Thanks for any help!
Nate
Posted by Nate Kennedy 2 months ago