-
Notifications
You must be signed in to change notification settings - Fork 3
Add documentation for Silo Entry States #104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
e34e4e6 to
782abcc
Compare
66c44c7 to
4c8548e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a difficult one as there are quite a few subtle details to consider.
introduction/silo-entry-state.mdx
Outdated
|
|
||
| The service we use to store GOBL documents is called **Silo**. Hence, every document uploaded to this service is referred to as a **Silo Entry**. | ||
|
|
||
| Each silo entry follows a JSON schema with multiple fields. You can find a full breakdown of these fields in the Invopop API Reference under [Fetch an entry](/api-ref/silo/entries/fetch-an-entry). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is accurate. There is no JSON Schema for silo entries.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the clarification. I might’ve misunderstood the structure. My assumption was based on the idea that since silo entries are returned as structured JSON objects with consistent fields like id, state, created_at, etc. they were implicitly defined by some kind of internal schema, even if not exposed as a formal JSON Schema like GOBL documents are.
That said, I see your point. There isn’t an official JSON Schema for silo entries like there is for GOBL documents. Would it be more accurate to say that silo entries follow a consistent JSON structure with various fields, rather than referring to a schema?
My goal is to implicitly convey the meaning behind the term “silo entry state”: “silo entry” because it refers to an entry stored in the silo, and “state” because it relates to the state field.
introduction/silo-entry-state.mdx
Outdated
|
|
||
| Each silo entry follows a JSON schema with multiple fields. You can find a full breakdown of these fields in the Invopop API Reference under [Fetch an entry](/api-ref/silo/entries/fetch-an-entry). | ||
|
|
||
| One of these fields is the state field, which we refer to as the **Silo Entry State**. Invopop provides a predefined set of values for this field to help standardize usage across workflows. These values reflect the current stage of a document within your workflow. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They actually can be configured for each workspace, we just haven't enabled that functionality yet...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great first version! This is a really complex and abstract topic, and I think you've done a solid job starting to break it down.
A couple of suggestions from my side that might help simplify the guide and make it easier for users to grasp:
-
I’d avoid diving into how the state is technically a field of the silo entry — most users won’t know or care about that detail. What matters is understanding what the state is (whatever the user wants it to be) and how to set it (via workflows).
-
I would write something like this:
Silo entries are documents stored in Invopop — like invoices, parties, etc.
When created, they start with an empty state.
The state is just a flag that helps users organize and identify entries easily.For example, most of our templates set the state of an invoice to "error" when an error occurs. This makes it easier to spot problematic invoices without digging into the faults object.
But states can mean whatever the user wants — someone might decide to use "registered" to mean the same thing. While weird, it is totally valid!Silo Entry States:
(…list here…)How do I set a Silo Entry state?
This is done in workflows, using the Set State step. Every time a silo entry goes through that step, its state would change to the one defined in the step.
For instance, you want your suppliers to show as registered in Invopop after they have successfully registered in Verifactu. In this case, after the step Registered with Verifactu, you want to add a Set State step with the value "registered"(as we do in our templates - ref to template of Verifactu).
If you skip this step, the state will remain empty — which doesn't mean the entry wasn’t registered, just that no state was set.States don’t reflect any official status in the real world of invoices. They’re just a flexible tool in Invopop to help you track and debug things more easily.
We strongly recommend using states — but remember, they’re fugazzi ✨ and only mean what you decide they mean.
Feel free to polish it up — you’ve definitely got a better touch with wording than I do 😅.
- Finally, I think adding some screenshots from the console would really help make this clearer for users.
Hope this helps! Let me know if I can support further.
This PR adds a new section explaining the purpose and usage of the state field in Silo entries.