CMS integrations

Contentful

GrowGanic writes each finished article into your Contentful space as a published entry.

A primary destination. Your article lives here and the canonical URL points at it, so this is the site Google credits. About 4 minutes.

#What connecting does

Every article GrowGanic finishes is written into your space as an entry and published, ready for your front end to query.

Contentful is headless, which changes one thing worth knowing up front: the Content Management API does not return a public URL, because on a headless setup the public URL is your front end's business, not the CMS's. GrowGanic shows a link into Contentful rather than inventing an address on your site.

The content type picker under the token field lists the types in your space and says which of them can actually hold an article, so you are not guessing at an id.

#Before you start

  • A content type for articles. GrowGanic defaults to one called blogPost with the field ids title, slug, body, excerpt, metaTitle, metaDescription and featuredImageUrl, all as Symbol or Text.
  • The body field must be Symbol or Text, not RichText. Contentful's own blog template uses RichText, which GrowGanic refuses at connect time rather than accepting the connection and then rejecting every article. If you need RichText, publish through a Custom Integration and convert on your side.
  • New Contentful organisations block API tokens by default. Open Organization Settings, then Tokens, and turn off Enforce organization access via authorized automation tokens, or add this token to the allowlist.

#Connect

Set it up

  1. Open your CMA tokens page and click the Content management tokens tab (NOT Content Delivery, which is read-only).
  2. Click Create personal token, give it a name, click Generate, then copy it. It is shown once.
  3. Your Space ID is on Settings, then General Settings (top of the page).
  4. New Contentful orgs default-block API tokens: open Organization Settings, then Tokens, and turn OFF Enforce organization access via authorized automation tokens, or every CMA token gets blocked with OrganizationAccessGrantRequired.

What you paste

FieldRequiredWhere to find it
Space IDYesContentful, then Settings, then General Settings, at the top of the page.
Personal access tokenYesYour CMA tokens page, on the Content management tokens tab. Not a Content Delivery key, which is read-only.
Content type IDOptionalFilled by the picker above the field. Defaults to blogPost.
EnvironmentOptionalDefaults to master. Change it only if your space uses another environment.

If it will not connect

  • Schema requirement: your space needs a content type called blogPost with these field IDs as Symbol/Text: title, slug, body, excerpt, metaTitle, metaDescription, featuredImageUrl.
  • The default Contentful blog template uses RichText for body, which our adapter does not support. Use a Long text (Text) field instead, or connect via our Custom Integration and convert on your side.

#Permissions we ask for

Every permission below is used by a call GrowGanic actually makes. We ask for nothing we do not use.

PermissionUsed forWhy
Content Management API tokenReading your content type's field definitions and locales, and creating, updating, publishing and deleting entriesContentful issues one personal access token rather than per-scope keys. It carries what your own account can do, and revoking it in Contentful revokes it here.

GrowGanic reads the content type you name and your space's locales, and writes entries of that one type. It does not read your other content types, your assets, your users or your organisation settings.

#What we write

FieldWhat goes in it
titleThe article title.
slugThe article slug.
bodyThe article body as HTML, in a Symbol or Text field.
excerptThe excerpt.
metaTitleThe meta title.
metaDescriptionThe meta description.
featuredImageUrlThe hero image address, as a string.

Fields your setup does not have are skipped rather than guessed at, and the article publishes with the ones it does have.

The hero image

The hero is written as a URL string into your featuredImageUrl field and served from our CDN. It is not uploaded into Contentful's asset library, because a headless space's assets are modelled by you and we will not create asset records in a model we did not design.

If you would rather host the image yourself, read the URL from the entry and copy it into your own pipeline. The address is stable.

#Publishing behaviour

Entries are created with a deterministic id derived from the article, so a retry after a lost response updates the same entry instead of creating a second one.

Every entry is created and then published in a second call. If the publish fails, the entry exists as a draft in your space and GrowGanic retries rather than creating another.

Draft mode is not offered for Contentful. On a headless space, "it is in your drafts" is not a promise we can stand behind: whether an unpublished entry appears anywhere depends on your front end, not on us.

The locale is your space's own default unless you have pinned one.

If this destination is ever unreachable, the article is not held. It publishes to your GrowGanic blog and moves here on its own once the connection is healthy again. GrowGanic never holds a finished article back waiting for you.

#Disconnect

Disconnecting stops writing to Contentful. Entries already in your space stay exactly as they are and stay yours.

You can also delete the personal access token in Contentful. GrowGanic finds out on the next call, switches the connection off and emails you. The token you pasted is kept, so that once the problem is fixed clicking Test puts the connection back with nothing re-entered. Disconnect if you want it gone from our database.

Open Integrations in GrowGanic, find this destination and click Disconnect. The stored credential is deleted from our database in the same step, not marked inactive. Articles already published stay exactly where they are, and they are yours.

#Troubleshooting

What you seeWhyFix
Your Contentful organization blocks API tokens by default.Enforce organization access via authorized automation tokens is on, which is the default for new organisations.Open Organization Settings, then Tokens, turn it off or allowlist this token, regenerate the token, then reconnect.
Wrong token or missing permissions.A Content Delivery key was pasted. Delivery keys are read-only.Use a Content Management API token, from Settings, API Keys, Content management tokens.
Content type not found in your Contentful space.The content type id does not exist in this space or environment.Use the picker to list the types in your space and choose one, or check the Environment field.
Your Contentful space has no locale with that code.A locale was pinned that this space does not define.Use one of the locale codes the message lists, or clear the pin and let us use the space default.
Articles connect but every publish is refused.The body field is RichText.Change body to a Long text field, or publish through a Custom Integration and convert to RichText on your side.

Still stuck? Email [email protected] and tell us the sentence you are seeing. Or read the other destinations.