Error 500 when creating member in Ghost

Describe the problem/error/question

Hello, I am coming from Make/Zapier combination. I am now starting to do workflows that were not possible on the free tiers of those services. At the moment I would like to build a workflow that can create or update a member of Ghost Blog based on a purchase on Stripe but I am having issues with the Ghost part.

What is the error message (if any)?

I found on Ghost Admin API documentation Ghost Admin API Documentation most of the information and I can GET a list of my members, I can DELETE my members but I am unable to update (PUT) or create (POST) them.
When I try to create a member I get an error 500 (“context”:“An unexpected error occurred, please try again. obj needs to be an object”), but I am not sure that I am filling the HTTP Request node correctly. I found a lot in Ghost Admin API: create members but some of the nodes were updated since then.

I tried to make the entry single line and I tried to use the response from GET members (without the UUID and ID). I also tried turning off the Cloudflare Cache and Bot Fight Mode (Make had issues with these). But since the error is not changing, I expect that I got something wrong.

Please share your workflow

I bet that there is a mistake somewhere but I am battling with this for days and I need a small push.

Share the output returned by the last node

ERROR: The service was not able to process your request

{“errors”:[{“message”:“Internal server error, cannot save member.”,“context”:“An unexpected error occurred, please try again. obj needs to be an object”,“type”:“InternalServerError”,“details”:null,“property”:null,“help”:null,“code”:“UNEXPECTED_ERROR”,“id”:“b8037f80-16b6-11ee-85ec-b5bb23a6d04e”,“ghostErrorCode”:null}]}

This is the actual error message.

Information on your n8n setup

  • n8n version: 0.233.1
  • Database (default: SQLite): postgres
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app): Docker
  • Operating system: Linux 5.19.17-Unraid x86_64

Thank you for your time

Hey @Drearily5829,

Welcome to the community :raised_hands:

Try the workflow below, in your request what you were sending was…

{
  "members": "{ \"members\": [ { \"email\": \"[email protected]\" } ] }"
}

But Ghost is expecting…

{
    "members": [
        {
            "email": "[email protected]",
        }
    ]
}

So what I have done is set the field name to members[0].email then added the email in the value. Another option would be to use what you had but change the Specify Body option to Using JSON

3 Likes

Thank you @Jon, you are the best! Of course it works. I knew that it could be done through the fields option. I hope I will learn more over the time.

2 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.